[实验任务] 使用jsp页面完成注册、登录并显示

[任务介绍]

1.任务描述

网上购物是人们日常生活的重要事情之一。在超市中有很多日常生活的用品,如电饭煲、蒸锅、洗衣机、电冰箱等。

本任务要求,通过所学Servlet、JavaBean和JDBC知识读取数据库数据,以JSP页面的形式呈现数据,用于数据浏览。

备注:

1)本任务需要编写4个JSP页面、6个Servlet文件(注册、登录、显示、验证码、修改、删除)、1个JavaBean文件、1个dao文件(用于实现增删改查功能)、1个数据库连接文件;

2)本任务所需要的类文件,需要按如下图所示结构创建;

3)用户先进行注册,注册成功跳转到登录页面,输入用户名和密码进行登录;登录成功跳转到显示页面,登录不成功则需要重新登录。

2.运行结果

图1 注册页面 

图2 登录界面

图3 用户列表页面

图4 修改用户页面

图5 修改成功页面

图6 数据表

[任务目标]

  1. 掌握Servlet和JSP运行原理;
  2. 掌握JavaBean、EL表达式和JSP标签库(JSTL)的使用;
  3. 熟练应用Servlet技术、JavaBean技术完成数据访问。

[实现思路]

  1. 先建立登录界面,通过调用数据库用户账号和密码,如果账号或密码正确,进入用户信息列表界面。
  2. 用户信息列表通过调用UserDao中的findALL方法,将对应数据库中的数据取出。
  3. 添加用户信息,同样调用UserDao中的insert方法,将数据插入数据库中,并跳转回用户信息界面
  4. 修改用户信息,调用UserDao中的update方法,修改数据库中的数据,并跳转回用户信息界面
  5. 删除用户信息,调用UserDao中的delete方法,删除数据库中对应的数据。

[实现代码以及运行效果]

最重要的当然是连接数据库啦~

注意:

String url = "jdbc:mysql://localhost:3306/users?useUnicode=true&characterEncoding=utf-8";

这里面users是自己建的数据库哦(⊙o⊙)

如下所示为我建的数据库users,以及数据表user

 id为自动编号!!!

最后一定要导入jar包!!!(打圈圈的那个哦,这个jar包网上可以下载,如果MySQL版本比较高,可能得导入8.0.27的

废话不多说,直接上代码!!! 

GetDBConnection.java

package conn;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class GetDBConnection {private static Connection con;public static Connection getConnection() {try {Class.forName("com.mysql.jdbc.Driver");String url = "jdbc:mysql://localhost:3306/users?useUnicode=true&characterEncoding=utf-8";String username = "root";String password = "root";con = DriverManager.getConnection(url, username, password);} catch (Exception e) {e.printStackTrace();}return con;}public static void release(Statement stat,Connection con){if(stat!=null){try{stat.close();}catch(Exception e){e.printStackTrace();}stat=null;}if(con!=null){try{con.close();}catch(Exception e){e.printStackTrace();}con=null;}}public static void release(ResultSet rs,Statement stat,Connection con){if(rs!=null){try{rs.close();}catch(Exception e){e.printStackTrace();}rs=null;}if(stat!=null){try{stat.close();}catch(Exception e){e.printStackTrace();}stat=null;}if(con!=null){try{con.close();}catch(Exception e){e.printStackTrace();}con=null;}}
}

User.java

package javabean;public class User {private int id;private String username;private String password;private String realname;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getRealname() {return realname;}public void setRealname(String realname) {this.realname = realname;}
}

UserDao.java

package javabean;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import conn.GetDBConnection;
public class UserDao {private Connection con = null;PreparedStatement preStat = null;private ResultSet rs = null;public ArrayList<User> findAll(){ArrayList<User> list = new ArrayList<User>();String sql = "select * from user";con = GetDBConnection.getConnection();try{preStat = con.prepareStatement(sql);rs = preStat.executeQuery();while (rs.next()){User user = new User();user.setUsername(rs.getString(2));user.setPassword(rs.getString(3));user.setRealname(rs.getString(4));list.add(user);}return list;}catch (Exception e) {// TODO: handle exceptione.printStackTrace();}finally{GetDBConnection.release(rs, preStat, con);}return null;}//查找public User findByName(String name){User user = new User();try{con = GetDBConnection.getConnection();String sql = "select * from user where username=?";preStat = con.prepareStatement(sql);preStat.setString(1, name);rs = preStat.executeQuery();if (rs.next()){user.setUsername(rs.getString(2));user.setPassword(rs.getString(3));user.setRealname(rs.getString(4));}return user;}catch (Exception e) {// TODO: handle exceptione.printStackTrace();}finally{GetDBConnection.release(preStat, con);}return null;}//登录public boolean Login(String name, String pwd){try{con = GetDBConnection.getConnection();String sql = "select * from user where username=? and password=?";preStat = con.prepareStatement(sql);preStat.setString(1, name);preStat.setString(2, pwd);rs = preStat.executeQuery();if (rs.next()) return true;}catch (Exception e) {// TODO: handle exceptione.printStackTrace();}finally{GetDBConnection.getConnection();}return false;}//插入public boolean insert(User user){try{con = GetDBConnection.getConnection();String sql = "insert into user values(null,?,?,?)";preStat = con.prepareStatement(sql);preStat.setString(1, user.getUsername());preStat.setString(2, user.getPassword());preStat.setString(3, user.getRealname());if (preStat.executeUpdate() == 1) return true;}catch (Exception e) {// TODO: handle exceptione.printStackTrace();}finally{GetDBConnection.release(preStat, con);}return false;}//更新public boolean update(User user) {try{con = GetDBConnection.getConnection();String sql = "update user set password=?,realname=? where username=?";preStat = con.prepareStatement(sql);preStat.setString(1, user.getPassword());preStat.setString(2, user.getRealname());preStat.setString(3, user.getUsername());if (preStat.executeUpdate() == 1) return true;}catch (Exception e) {// TODO: handle exceptione.printStackTrace();}finally{GetDBConnection.release(preStat, con);}return false;}//删除public boolean delete(String name){try{con = GetDBConnection.getConnection();String sql = "delete from user where username=?";preStat = con.prepareStatement(sql);preStat.setString(1, name);if (preStat.executeUpdate() == 1) return true;}catch (Exception e) {// TODO: handle exceptione.printStackTrace();}finally{GetDBConnection.release(preStat, con);}return false;}
}

LoginServlet.java

package MyServlet;import java.io.IOException;
import java.io.PrintWriter;
import javabean.UserDao;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class LoginServlet extends HttpServlet {public LoginServlet() {super();}public void destroy() {super.destroy(); // Just puts "destroy" string in log// Put your code here}public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {this.doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String username = request.getParameter("username");//帐号String password = request.getParameter("password");//密码if(username != null && !username.equals("")){UserDao userdao = new UserDao();boolean falg=userdao.Login(username, password);if(falg == false){request.setAttribute("msg1", "帐号或密码输入有误,登录失败!");RequestDispatcher dispatcher = request.getRequestDispatcher("/index.jsp");dispatcher.forward(request, response);}else{//request.setAttribute("msg1", "登录成功!");request.getSession().setAttribute("userid",username);response.sendRedirect("ListUserServlet");}}}public void init() throws ServletException {// Put your code here}}

registerUser.java

package MyServlet;import java.io.IOException;
import java.io.PrintWriter;
import javabean.User;
import javabean.UserDao;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class registerUser extends HttpServlet {public registerUser() {super();}public void destroy() {super.destroy(); // Just puts "destroy" string in log// Put your code here}public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html");PrintWriter out = response.getWriter();out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");out.println("<HTML>");out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");out.println("  <BODY>");out.print("    This is ");out.print(this.getClass());out.println(", using the GET method");out.println("  </BODY>");out.println("</HTML>");out.flush();out.close();}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=utf-8");request.setCharacterEncoding("utf-8");PrintWriter out = response.getWriter();String username = request.getParameter("username");String password = request.getParameter("password");String realname = request.getParameter("realname");User user = new User();user.setUsername(username);user.setPassword(password);user.setRealname(realname);UserDao userDao = new UserDao();boolean flag = userDao.insert(user);if (flag){out.println("用户添加成功!");request.getRequestDispatcher("/index.jsp").forward(request, response);}else {out.println("用户添加失败!");}}public void init() throws ServletException {// Put your code here}}

ListUserServlet.java

package MyServlet;import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import javabean.User;
import javabean.UserDao;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class ListUserServlet extends HttpServlet {public ListUserServlet() {super();}public void destroy() {super.destroy(); // Just puts "destroy" string in log// Put your code here}public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {UserDao userDao = new UserDao();ArrayList<User> list = userDao.findAll();request.setAttribute("list", list);request.getRequestDispatcher("/UserList.jsp").forward(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {this.doGet(request, response);}public void init() throws ServletException {// Put your code here}}

addUserServlet.java

package MyServlet;import java.io.IOException;
import java.io.PrintWriter;
import javabean.User;
import javabean.UserDao;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class addUserServlet extends HttpServlet {public addUserServlet() {super();}public void destroy() {super.destroy(); // Just puts "destroy" string in log// Put your code here}public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html");PrintWriter out = response.getWriter();out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");out.println("<HTML>");out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");out.println("  <BODY>");out.print("    This is ");out.print(this.getClass());out.println(", using the GET method");out.println("  </BODY>");out.println("</HTML>");out.flush();out.close();}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=utf-8");request.setCharacterEncoding("utf-8");PrintWriter out = response.getWriter();String username = request.getParameter("username");String password = request.getParameter("password");String realname = request.getParameter("realname");User user = new User();user.setUsername(username);user.setPassword(password);user.setRealname(realname);UserDao userDao = new UserDao();boolean flag = userDao.insert(user);if (flag){out.println("用户添加成功!");response.sendRedirect("../servlet/ListUserServlet");}else {out.println("用户添加失败!");}}public void init() throws ServletException {// Put your code here}}

delUserServlet.java

package MyServlet;import java.io.IOException;
import java.io.PrintWriter;import javabean.UserDao;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class delUserServlet extends HttpServlet {public delUserServlet() {super();}public void destroy() {super.destroy(); // Just puts "destroy" string in log// Put your code here}public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {this.doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charste=utf-8");request.setCharacterEncoding("utf-8");PrintWriter out = response.getWriter();String username = request.getParameter("id");UserDao userDao = new UserDao();boolean flag = userDao.delete(username);if (flag){out.println("用户删除成功!");response.sendRedirect("../servlet/ListUserServlet");}else{out.println("用户删除失败!");}}public void init() throws ServletException {// Put your code here}}

 updateUserServlet.java

package MyServlet;import java.io.IOException;
import java.io.PrintWriter;import javabean.User;
import javabean.UserDao;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class updateUserServlet extends HttpServlet {public updateUserServlet() {super();}public void destroy() {super.destroy(); // Just puts "destroy" string in log// Put your code here}public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");String username = request.getParameter("id");UserDao userDao = new UserDao();User user = new User();user = userDao.findByName(username);request.setAttribute("user", user);request.getRequestDispatcher("/updateUser.jsp").forward(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=utf-8");request.setCharacterEncoding("utf-8");PrintWriter out = response.getWriter();String username = request.getParameter("username");String password = request.getParameter("password");String realname = request.getParameter("realname");User user = new User();user.setUsername(username);user.setPassword(password);user.setRealname(realname);UserDao userDao = new UserDao();boolean flag = userDao.update(user);if (flag){out.println("用户修改成功!");response.sendRedirect("ListUserServlet");}else{out.println("用户修改失败!");}}public void init() throws ServletException {// Put your code here}}

 ✨jsp部分✨

小剧场~

你:在登录部分为啥没有验证码❓❗❗❗给我写出来

《Java EE Web组件开发》实验二相关推荐

  1. 数据库原理及应用实验二参考答案

    一.实验内容及要求 1.创建数据库和数据表(在相应位置贴上SQL语句) (1)利用资源管理器,在D盘建立以自己的姓名为名称的文件夹,以便保存数据库. (2)登录并连接到SQL Server 服务器. ...

  2. 数据库原理与应用实验指导书 实验四:数据查询

    数据库原理与应用 实验指导书 实验四:数据查询 一.实验目的 掌握SELECT语句的基本语法: 熟练掌握模糊查询的用法: 熟练掌握连接查询的用法: 熟练掌握子查询的用法. 二.实验内容 表数据的查询 ...

  3. 数据库原理与应用实验指导书 实验一:熟悉SQL Server 2012数据库管理系统

    数据库原理与应用实验指导书 实验一:熟悉SQL Server 2012数据库管理系统 实验类型: 综合性 实验要求: 必修 适用对象: 信息管理与信息系统.计算机科学与技术.软件工程.物联网工程 一. ...

  4. 数据库原理及应用实验报告-实验10-触发器

    数据库原理及应用实验报告 实验题目  实验10触发器 10.1 实验目的 通过实验使学生加深对数据完整性的理解,学会理解.创建和使用触发器. 10.2 实验内容  (用实验9的Teacher表) (1 ...

  5. 数据库原理及应用实验报告-实验8-参照完整性

    数据库原理及应用实验报告 实验题目  实验8参照完整性 实验目的 学习建立外键,以及利用FOREIGN KEY-REFERENCES子句以及各种约束保证参照完整性. 实验内容 为演示参照完整性,建立表 ...

  6. 单片机原理及应用 实验二 数据处理与RAM转存

    单片机原理及应用(C51语言版) 实验二 数据处理与RAM转存 实现功能如下: 对100-200之间的每个整数进行检查.将不能被3整除的数依次转存到地0x30开始的RAM中,能被整除的不做转存. 步骤 ...

  7. 数据库原理及应用实验三参考答案

    本题中所用的数据库是上次实验中所建立的Study数据库.请写出相应的查询语句.并将查询结果贴在下方. 查询所有同学的基本信息,包括:学号s_no.班级号class_no.姓名s_name.性别s_se ...

  8. k近邻算法原理c语言,实验二 K-近邻算法及应用

    作业信息 一.[实验目的] 理解K-近邻算法原理,能实现算法K近邻算法: 掌握常见的距离度量方法: 掌握K近邻树实现算法: 针对特定应用场景及数据,能应用K近邻解决实际问题. 二.[实验内容] 实现曼 ...

  9. educoder 数据库原理与应用 实验六 约束与索引

    实验六 约束与索引 数据结构说明 第1关:添加约束一 第2关:添加约束二 第3关:添加约束三 第4关:创建索引 数据结构说明 表结构如下: 学生表:Student 字段名 类型 主码 备注 Sno c ...

  10. 多思计组原理虚拟实验室 实验二 运算器实验

    电路图 链接:https://pan.baidu.com/s/1UF8STkWRZYxt0SMp7NsdrA?pwd=2333 提取码:2333 –来自百度网盘超级会员V5的分享 以下为电路连接图 电 ...

最新文章

  1. WCF中常见的几种Host,承载WCF服务的方法详解
  2. 笔记-项目采购管理-索赔的处理
  3. PHP读取TXT UTF-8,2)PHP中把读取.txt中内容并转为UTF-8格式
  4. ×××站点的路由(隧道、接口)模式和策略模式
  5. mysql的timestamp类型_MySQL数据库中的timestamp类型与时区
  6. (需要大神,请求解决,遇见runtime error 错误)poj 1009 java
  7. 支付时报错java.lang.RuntimeException: 【微信统一支付】发起支付, returnCode != SUCCESS, returnMsg = appid和mch_id不匹配
  8. 获取会话名称时错误 5_5种可重复的数据科学工具
  9. springday04-go1
  10. 解决serv-u中文乱码的问题
  11. hadoop配置流程
  12. 射雕zero找不到服务器,神秘领域《射雕ZERO》未揭秘场景盘点
  13. 腾讯云数据库TDSQL——数据库迁移备份与恢复
  14. MySQL基础 - 带搜索条件的查询
  15. 机器人 铁血兵团 魂斗罗_【魂斗罗铁血兵团中文版】魂斗罗铁血兵团中文版下载-街机中国...
  16. python中get函数是什么意思_详解python中get函数的用法(附代码)_后端开发
  17. 无线网络 笔记本连接正常上网,手机之类的就不能上网
  18. SF简易IDC系统V1.0免授权
  19. Maven(Maven是干什么用)
  20. 企业应该如何搭建私有云服务器数据中心?需要注意哪些问题

热门文章

  1. EXCEL 合并两列的内容
  2. HTML设置滚动条样式
  3. 面向对象的优势和特点
  4. 奇怪的 -2147483648;为什么Java中 2147483647加一是-2147483648
  5. 【微缩电影】黑泽明《罗生门》深度鉴解!
  6. 计算机三级数据库技术自学第二节课
  7. 1004. 最大连续1的个数 III
  8. python列表推导式生成随机数_python列表推导式
  9. tokudb_TokuDB安装
  10. 各路由协议的协议号_协议号和端口号大全