《Java EE Web组件开发》实验二
[实验任务] 使用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 数据表
[任务目标]
- 掌握Servlet和JSP运行原理;
- 掌握JavaBean、EL表达式和JSP标签库(JSTL)的使用;
- 熟练应用Servlet技术、JavaBean技术完成数据访问。
[实现思路]
- 先建立登录界面,通过调用数据库用户账号和密码,如果账号或密码正确,进入用户信息列表界面。
- 用户信息列表通过调用UserDao中的findALL方法,将对应数据库中的数据取出。
- 添加用户信息,同样调用UserDao中的insert方法,将数据插入数据库中,并跳转回用户信息界面
- 修改用户信息,调用UserDao中的update方法,修改数据库中的数据,并跳转回用户信息界面
- 删除用户信息,调用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.创建数据库和数据表(在相应位置贴上SQL语句) (1)利用资源管理器,在D盘建立以自己的姓名为名称的文件夹,以便保存数据库. (2)登录并连接到SQL Server 服务器. ...
- 数据库原理与应用实验指导书 实验四:数据查询
数据库原理与应用 实验指导书 实验四:数据查询 一.实验目的 掌握SELECT语句的基本语法: 熟练掌握模糊查询的用法: 熟练掌握连接查询的用法: 熟练掌握子查询的用法. 二.实验内容 表数据的查询 ...
- 数据库原理与应用实验指导书 实验一:熟悉SQL Server 2012数据库管理系统
数据库原理与应用实验指导书 实验一:熟悉SQL Server 2012数据库管理系统 实验类型: 综合性 实验要求: 必修 适用对象: 信息管理与信息系统.计算机科学与技术.软件工程.物联网工程 一. ...
- 数据库原理及应用实验报告-实验10-触发器
数据库原理及应用实验报告 实验题目 实验10触发器 10.1 实验目的 通过实验使学生加深对数据完整性的理解,学会理解.创建和使用触发器. 10.2 实验内容 (用实验9的Teacher表) (1 ...
- 数据库原理及应用实验报告-实验8-参照完整性
数据库原理及应用实验报告 实验题目 实验8参照完整性 实验目的 学习建立外键,以及利用FOREIGN KEY-REFERENCES子句以及各种约束保证参照完整性. 实验内容 为演示参照完整性,建立表 ...
- 单片机原理及应用 实验二 数据处理与RAM转存
单片机原理及应用(C51语言版) 实验二 数据处理与RAM转存 实现功能如下: 对100-200之间的每个整数进行检查.将不能被3整除的数依次转存到地0x30开始的RAM中,能被整除的不做转存. 步骤 ...
- 数据库原理及应用实验三参考答案
本题中所用的数据库是上次实验中所建立的Study数据库.请写出相应的查询语句.并将查询结果贴在下方. 查询所有同学的基本信息,包括:学号s_no.班级号class_no.姓名s_name.性别s_se ...
- k近邻算法原理c语言,实验二 K-近邻算法及应用
作业信息 一.[实验目的] 理解K-近邻算法原理,能实现算法K近邻算法: 掌握常见的距离度量方法: 掌握K近邻树实现算法: 针对特定应用场景及数据,能应用K近邻解决实际问题. 二.[实验内容] 实现曼 ...
- educoder 数据库原理与应用 实验六 约束与索引
实验六 约束与索引 数据结构说明 第1关:添加约束一 第2关:添加约束二 第3关:添加约束三 第4关:创建索引 数据结构说明 表结构如下: 学生表:Student 字段名 类型 主码 备注 Sno c ...
- 多思计组原理虚拟实验室 实验二 运算器实验
电路图 链接:https://pan.baidu.com/s/1UF8STkWRZYxt0SMp7NsdrA?pwd=2333 提取码:2333 –来自百度网盘超级会员V5的分享 以下为电路连接图 电 ...
最新文章
- WCF中常见的几种Host,承载WCF服务的方法详解
- 笔记-项目采购管理-索赔的处理
- PHP读取TXT UTF-8,2)PHP中把读取.txt中内容并转为UTF-8格式
- ×××站点的路由(隧道、接口)模式和策略模式
- mysql的timestamp类型_MySQL数据库中的timestamp类型与时区
- (需要大神,请求解决,遇见runtime error 错误)poj 1009 java
- 支付时报错java.lang.RuntimeException: 【微信统一支付】发起支付, returnCode != SUCCESS, returnMsg = appid和mch_id不匹配
- 获取会话名称时错误 5_5种可重复的数据科学工具
- springday04-go1
- 解决serv-u中文乱码的问题
- hadoop配置流程
- 射雕zero找不到服务器,神秘领域《射雕ZERO》未揭秘场景盘点
- 腾讯云数据库TDSQL——数据库迁移备份与恢复
- MySQL基础 - 带搜索条件的查询
- 机器人 铁血兵团 魂斗罗_【魂斗罗铁血兵团中文版】魂斗罗铁血兵团中文版下载-街机中国...
- python中get函数是什么意思_详解python中get函数的用法(附代码)_后端开发
- 无线网络 笔记本连接正常上网,手机之类的就不能上网
- SF简易IDC系统V1.0免授权
- Maven(Maven是干什么用)
- 企业应该如何搭建私有云服务器数据中心?需要注意哪些问题
热门文章