javaweb+servlet+mysql登录+注册+增删改查源码

叁歲伎倆 2022-04-23 19:30 395阅读 0赞

一.项目功能简介

20190409104320807.gif

功能流程图

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyMzIwMDQ4_size_16_color_FFFFFF_t_70

源码:

百度网盘链接:https://pan.baidu.com/s/1QpbX1Sz0nZJwlvzEvx7zEw
提取码:ynzu

数据库:

链接:https://pan.baidu.com/s/1p2LIfcOeQ1EKdCDS4D29PA
提取码:mbpc

二.项目详解

1.创建javaweb项目

2.创建目录

src/com.neusoft.dao存放实体类和数据库操作的java文件

src/com.neusoft.servlet存放servlet的文件,用来接收前台发来的请求和数据,传到数据库,再返回给前台

webContent文件夹一般存放jsp、html、js等文件

web.xml存放在WEB-INF文件夹下

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyMzIwMDQ4_size_16_color_FFFFFF_t_70 120190408203932119.png20190408203956415.png

3.login.jsp(JSP页面用了Bootstrap http://www.bootcss.com/,联网状态加入下边标签,然后标签的class中引入Bootstrap中已有的class即可)

  1. <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
  2. <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
  3. <%
  4. String path = request.getContextPath();
  5. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  6. %>
  7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  8. <html>
  9. <head>
  10. <base href="<%=basePath%>">
  11. <title>My JSP 'login.jsp' starting page</title>
  12. <meta http-equiv="pragma" content="no-cache">
  13. <meta http-equiv="cache-control" content="no-cache">
  14. <meta http-equiv="expires" content="0">
  15. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  16. <meta http-equiv="description" content="This is my page">
  17. <!--
  18. <link rel="stylesheet" type="text/css" href="styles.css">
  19. -->
  20. <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
  21. </head>
  22. <body style="background:url('http://localhost:8080/webDomo2/login4.jpg') no-repeat;background-size: cover;">
  23. <div style="width:30% ;height:376px;margin:136px 10px 10px 825px;border-radius:25px;box-shadow: 5px 5px 5px 5px #888888;background-color:">
  24. <div style="height:70px;margin-left: 172px;margin-top:3px;float:left;">
  25. <h1 style="font: bold em Brush Script MT ; color:#222; text-shadow: 0px 2px 3px #666;float:left;"> Login<h1/>
  26. </div>
  27. <form name="myform" method="post" action="LoginServlet" class="form-group"style="position:absolute;left:889px;top:216px;">
  28. 用户名: <input type="text" name="username" class="form-control" style="width:285px;"/><br/><br/>
  29. 密码:<input type="text" name="userpwd" class="form-control" style="width:285px;"/><br/><br/>
  30. <input type="submit" class="btn btn-default" value="登录"/>
  31. <a href="registerStudent.html">注册</a>
  32. </form>
  33. </div>
  34. </body>
  35. </html>

4.LoginServlet.java,接收login.jsp发来的请求,调用数据库文件StudentDAO.java中的doLogin()方法,查询数据返回回来后,根据查询结果跳转页面。

  1. package com.neusoft.servlet;
  2. import java.io.IOException;
  3. import java.io.PrintWriter;
  4. import java.sql.SQLException;
  5. import javax.servlet.ServletException;
  6. import javax.servlet.http.HttpServlet;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9. import com.neusoft.dao.StudentDAO;
  10. import com.neusoft.dao.StudentPO;
  11. public class LoginServlet extends HttpServlet {
  12. public void doGet(HttpServletRequest request, HttpServletResponse response)
  13. throws ServletException, IOException {
  14. request.setCharacterEncoding("utf-8");
  15. String username=request.getParameter("username");
  16. String userpwd=request.getParameter("userpwd");
  17. StudentDAO sd = new StudentDAO();
  18. try {
  19. StudentPO sp=sd.doLogin(username, userpwd);;
  20. if(sp==null){
  21. response.sendRedirect("/login.jsp");
  22. }else{
  23. request.setAttribute("student", sp);
  24. if(sp.getUserPower()==1)
  25. request.getRequestDispatcher("/main.jsp").forward(request, response);//request对象提供了一个getRequestDispatcher方法,该方法返回一个RequestDispatcher对象,调用这个对象的forward方法可以实现请求转发。
  26. else if(sp.getUserPower()==0)
  27. request.getRequestDispatcher("/user.jsp").forward(request, response);
  28. }
  29. } catch (SQLException e) {
  30. // TODO Auto-generated catch block
  31. e.printStackTrace();
  32. }
  33. }
  34. public void doPost(HttpServletRequest request, HttpServletResponse response)
  35. throws ServletException, IOException {
  36. doGet(request, response);
  37. }
  38. }

5.StudentDAO.java 存放数据库操作的java文件,由servlet调用

  1. package com.neusoft.dao;
  2. import java.sql.Connection;
  3. import java.sql.DriverManager;
  4. import java.sql.PreparedStatement;
  5. import java.sql.ResultSet;
  6. import java.sql.SQLException;
  7. import java.util.ArrayList;
  8. import java.util.List;
  9. public class StudentDAO {
  10. //链接数据库
  11. public Connection getConnection(){
  12. // 数据库连接对象
  13. Connection conn = null;
  14. //JDBC驱动
  15. String driverName="com.mysql.jdbc.Driver";
  16. // 数据库连接地址
  17. String connectionString="jdbc:mysql://localhost:3306/test?"+"user=root&password=123456&useUnicode=true&characterEncoding=utf-8";
  18. try{
  19. //加载驱动
  20. Class.forName(driverName);
  21. //通过DriverManager类的getConenction方法指定三个参数,连接数据库
  22. conn=DriverManager.getConnection(connectionString);
  23. //conn.close();
  24. }catch(ClassNotFoundException e){
  25. e.printStackTrace();
  26. } catch (SQLException e) {
  27. // TODO Auto-generated catch block
  28. e.printStackTrace();
  29. }
  30. return conn;
  31. }
  32. //用户登录
  33. public StudentPO doLogin(String username,String userpwd) throws SQLException{
  34. //定义SQL语句
  35. String sql="select * from test where loginname=? and loginpwd=?";
  36. //获取连接
  37. Connection conn = getConnection();
  38. PreparedStatement ps = null; //向数据库中发送数据集
  39. ResultSet rs = null; //接受返回的数据集对象-结果集
  40. StudentPO sp = null; //将传回的行封装为列对象
  41. try {
  42. ps=conn.prepareStatement(sql);// 创建一个Statement对象
  43. ps.setString(1, username); //向sql语句的问号添加数据
  44. ps.setString(2, userpwd);
  45. //返回结果集
  46. rs = ps.executeQuery();
  47. /*用Connection接口的createStatement()方法获得Statement对象传递Sql语句
  48. * 用它的ExecuteQuery()方法获取单个ResultSet对象.
  49. * String Sql = "select * from login";
  50. *stt = conn.createStatement();
  51. *set = stt.executeQuery(Sql);
  52. */
  53. //获取数据,遍历结果集,将数据封装到集合中
  54. while(rs.next()){
  55. sp = new StudentPO();
  56. sp.setUserName(rs.getString("loginname"));/*********/
  57. sp.setUserPwd(rs.getString("loginpwd"));
  58. sp.setuserPower(rs.getInt("power"));
  59. sp.setUserId(rs.getInt("id"));
  60. sp.setRealName(rs.getString("name"));
  61. }
  62. } catch (SQLException e) {
  63. // TODO Auto-generated catch block
  64. e.printStackTrace();
  65. }finally{
  66. rs.close();
  67. ps.close();
  68. conn.close();
  69. }
  70. return sp;
  71. }
  72. //按id查找
  73. public StudentPO selectbyid(int id) throws SQLException{
  74. //定义SQL语句
  75. String sql="select * from test where id=?";
  76. //获取连接
  77. Connection conn = getConnection();
  78. PreparedStatement ps = null; //向数据库中发送数据集
  79. ResultSet rs = null; //接受返回的数据集对象-结果集
  80. StudentPO sp = null; //将传回的行封装为列对象
  81. try {
  82. ps=conn.prepareStatement(sql);// 创建一个Statement对象
  83. ps.setInt(1, id); //向sql语句的问号添加数据
  84. //返回结果集
  85. rs = ps.executeQuery();
  86. /*用Connection接口的createStatement()方法获得Statement对象传递Sql语句
  87. * 用它的ExecuteQuery()方法获取单个ResultSet对象.
  88. * String Sql = "select * from login";
  89. *stt = conn.createStatement();
  90. *set = stt.executeQuery(Sql);
  91. */
  92. //获取数据,遍历结果集,将数据封装到集合中
  93. while(rs.next()){
  94. sp = new StudentPO();
  95. sp.setUserName(rs.getString("loginname"));/*********/
  96. sp.setUserPwd(rs.getString("loginpwd"));
  97. sp.setuserPower(rs.getInt("power"));
  98. sp.setUserId(rs.getInt("id"));
  99. sp.setRealName(rs.getString("name"));
  100. }
  101. } catch (SQLException e) {
  102. // TODO Auto-generated catch block
  103. e.printStackTrace();
  104. }finally{
  105. rs.close();
  106. ps.close();
  107. conn.close();
  108. }
  109. return sp;
  110. }
  111. public int executeNonQuery(String sql,Object[]args) throws SQLException{
  112. Connection conn = getConnection();
  113. PreparedStatement ps=null;
  114. int result=0;
  115. try {
  116. ps = conn.prepareStatement(sql);
  117. if(args!=null){
  118. for(int i=0;i<args.length;i++){
  119. System.err.println("2T "+args[i]);
  120. ps.setObject(i+1, args[i]);
  121. }
  122. }
  123. result=ps.executeUpdate();//返回执行成功的记录的条数 int
  124. } catch (SQLException e) {
  125. // TODO Auto-generated catch block
  126. e.printStackTrace();
  127. }finally{
  128. ps.close();
  129. conn.close();
  130. }
  131. return result;
  132. }
  133. //用户注册
  134. public int add(int id,String name,String loginpwd,int userage,String realname,int userpower) throws SQLException{
  135. String sql="insert into test(id,loginname,loginpwd,age,name,power)"
  136. +"values(?,?,?,?,?,?)";
  137. Object[] args={id,name,loginpwd,userage,realname,userpower};
  138. for(int i=0;i<5;i++)
  139. System.err.println("1T "+args[i]);
  140. int result=executeNonQuery(sql, args);
  141. return result;
  142. }
  143. //刷新用户(在哪调用)
  144. public int update(int id,String username,String loginpwd,int age,String name) throws SQLException{
  145. String sql="update test set loginname=? ,loginpwd=? ,name=?,age=?"
  146. +" where id=?";
  147. Object[] args={username,loginpwd,name,age,id};
  148. int result = executeNonQuery(sql, args);
  149. return result;
  150. }
  151. //删除用户信息
  152. public int delete(int id) throws SQLException{
  153. String sql="delete from test where id="+id;
  154. int result=executeNonQuery(sql, null);
  155. return result;
  156. }
  157. //封装数据集
  158. public List<StudentPO> queryAllStudent() throws SQLException{
  159. String sql="select * from test";
  160. Connection conn = getConnection();
  161. PreparedStatement ps = null;
  162. ResultSet rs = null;
  163. List<StudentPO> list = new ArrayList<StudentPO>();
  164. try {
  165. ps=conn.prepareStatement(sql);
  166. rs = ps.executeQuery();
  167. //遍历结果集,将数据封装到集合中
  168. while(rs.next()){
  169. int userid=rs.getInt("id");//***********
  170. int userage=rs.getInt("age");
  171. int userpower=rs.getInt("power");
  172. String username = rs.getString("loginname");
  173. String userpwd = rs.getString("loginpwd");
  174. String realname=rs.getString("name");
  175. StudentPO sp = new StudentPO();
  176. sp.setUserId(userid);
  177. sp.setUserName(username);
  178. sp.setRealName(realname);
  179. sp.setUserPwd(userpwd);
  180. sp.setUserAge(userage);
  181. sp.setuserPower(userpower);
  182. list.add(sp);
  183. }
  184. } catch (SQLException e) {
  185. // TODO Auto-generated catch block
  186. e.printStackTrace();
  187. }finally{
  188. rs.close();
  189. ps.close();
  190. conn.close();
  191. }
  192. return list;
  193. }
  194. //注册检索
  195. public List<StudentPO> queryStudentById(int id) throws SQLException{
  196. String sql="select * from test where id="+id;
  197. Connection conn = getConnection();
  198. PreparedStatement ps = null;
  199. ResultSet rs = null;
  200. List<StudentPO> list = new ArrayList<StudentPO>();
  201. try {
  202. ps=conn.prepareStatement(sql);
  203. rs = ps.executeQuery();
  204. //遍历结果集,将数据封装到集合中
  205. while(rs.next()){
  206. int userid=rs.getInt("id");//**************/
  207. int userage=rs.getInt("age");
  208. int userpower=rs.getInt("power");
  209. String username = rs.getString("loginname");
  210. String userpwd = rs.getString("loginpwd");
  211. String realname=rs.getString("name");
  212. StudentPO sp = new StudentPO();
  213. sp.setUserId(userid);
  214. sp.setUserName(username);
  215. sp.setUserPwd(userpwd);
  216. sp.setUserAge(userage);
  217. sp.setRealName(realname);
  218. sp.setuserPower(userpower);
  219. list.add(sp);
  220. }
  221. } catch (SQLException e) {
  222. // TODO Auto-generated catch block
  223. e.printStackTrace();
  224. }finally{
  225. rs.close();
  226. ps.close();
  227. conn.close();
  228. }
  229. return list;
  230. }
  231. }

6.registerStudent.html 注册页面

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3. <head>
  4. <title>registerStudent.html</title>
  5. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  6. <meta http-equiv="description" content="this is my page">
  7. <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  8. <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
  9. </head>
  10. <body style="background:url('http://localhost:8080/webDomo2/login4.jpg') no-repeat;background-size: cover;">
  11. <center>
  12. <form name="myform" method="post" action="RegisterServlet" style="margin-top:200px">
  13. 用户ID : <input type="text" name="userid"><br/>
  14. 用户姓名:<input type="text" name="username"/><br/>
  15. 真实姓名:<input type="text" name="realname"><br/>
  16. 用户密码:<input type="text" name="userpwd"><br/>
  17. 用户年龄:<input type="text" name="userage"><br/>
  18. <input type="radio" name="power" value="0" checked>员工
  19. <input type="radio" name="power" value="1" checked="true">管理员<br/>
  20. <input type="submit" value="注册"/>
  21. </form>
  22. </center>
  23. </body>
  24. </html>

7.RegisterServlet.java 接收注册页面传来的请求,调用数据库的add()方法,将用户信息添加至数据库,然后跳转登录页面

  1. package com.neusoft.servlet;
  2. import java.io.IOException;
  3. import java.io.PrintWriter;
  4. import java.sql.SQLException;
  5. import javax.servlet.ServletException;
  6. import javax.servlet.annotation.WebServlet;
  7. import javax.servlet.http.HttpServlet;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10. import com.neusoft.dao.StudentDAO;
  11. public class RegisterServlet extends HttpServlet{
  12. /*
  13. * HttpServlet中有两个方法需要我们自己重写
  14. * 需要在web.xml文件中进行注册
  15. */
  16. @Override
  17. protected void doPost(HttpServletRequest req, HttpServletResponse resp)
  18. throws ServletException, IOException {
  19. System.err.println("进入POST");
  20. req.setCharacterEncoding("utf-8");
  21. resp.setCharacterEncoding("utf-8");
  22. //1.接受客户端数据
  23. //按照客户端调教数据的name-value的形式来提取数据
  24. String userid=req.getParameter("userid");
  25. String username = req.getParameter("username");
  26. String realname=req.getParameter("realname");
  27. String userpwd=req.getParameter("userpwd");
  28. String userage=req.getParameter("userage");
  29. String userpower=req.getParameter("power");
  30. System.err.println("查到power"+userage);
  31. int id = Integer.parseInt(userid);
  32. int age = Integer.parseInt(userage);
  33. int power=Integer.parseInt(userpower);
  34. //2.使用JDBC,将数据添加到数据库中
  35. StudentDAO sd = new StudentDAO();
  36. //3.HttpServletResponse对象
  37. //将HTML代码以数据流的形式响应给客户端
  38. //客户端使用IE浏览器来解析响应的HTML数据流
  39. //获得一个输出流对象
  40. // PrintWriter out = resp.getWriter();
  41. //
  42. // out.println("<html>");
  43. // out.println("<head>");
  44. // out.println("<meta http-equiv='content-type' content='text/html; charset=UTF-8'>");
  45. // out.println("</head>");
  46. // out.println("<body>");
  47. try {
  48. int result=sd.add(id,username,userpwd,age,realname,power);
  49. System.err.println(result);
  50. if(result>0){
  51. //1.站内跳转,请求转发
  52. //只能转发网站内部的资源
  53. //转发的是同一个请求和响应对象
  54. req.getRequestDispatcher("/login.jsp").forward(req, resp);
  55. //2.重定向跳转
  56. //可以请求外部资源
  57. //由于是客户端重新发起的请求,所以请求和响应对象不是同一个
  58. //resp.sendRedirect("/webDemo/success.jsp");
  59. //out.println("添加成功");
  60. }else{
  61. //out.println("添加失败");
  62. }
  63. } catch (SQLException e) {
  64. //out.println("添加失败");
  65. }
  66. }
  67. @Override
  68. protected void doGet(HttpServletRequest req, HttpServletResponse resp)
  69. throws ServletException, IOException {
  70. doPost(req, resp);
  71. }
  72. }

8.main.jsp 管理员主页面 调用QueryAllStudent.java

  1. <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
  2. <%@page import="com.neusoft.dao.StudentPO"%>
  3. <%
  4. //java脚本
  5. //写java的代码
  6. String path = request.getContextPath();
  7. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  8. %>
  9. <%
  10. StudentPO stu=(StudentPO)request.getAttribute("student");
  11. %>
  12. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  13. <html>
  14. <head>
  15. <base href="<%=basePath%>">
  16. <title>My JSP 'main.jsp' starting page</title>
  17. <meta http-equiv="pragma" content="no-cache">
  18. <meta http-equiv="cache-control" content="no-cache">
  19. <meta http-equiv="expires" content="0">
  20. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  21. <meta http-equiv="description" content="This is my page">
  22. <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
  23. <script src="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script>
  24. <script src="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
  25. <!--
  26. <link rel="stylesheet" type="text/css" href="styles.css">
  27. -->
  28. </head>
  29. <body style="background:url('http://localhost:8080/webDomo2/login4.jpg') no-repeat;background-size: cover;">
  30. <div style="height:70px;margin-left: 458px;margin-top:261px;float:left;">
  31. <h1 style="font: bold em Brush Script MT ; color:#222; text-shadow: 0px 2px 3px #666;float:left;"> User Management<h1/>
  32. </div>
  33. <a href="QueryAllStudent" style="float:left;margin-left: 15px;margin-top: 281px;">
  34. <button type="button" class="btn btn-default btn-lg">
  35. <span class="glyphicon glyphicon-user"></span> <%=stu.getUserName() %>
  36. </button>
  37. </a>
  38. </body>
  39. </html>

9.QueryAllStudent.java 查询出所有用户信息,跳转至用户信息列表页面

  1. package com.neusoft.servlet;
  2. import java.io.IOException;
  3. import java.io.PrintWriter;
  4. import java.sql.SQLException;
  5. import java.util.List;
  6. import javax.servlet.ServletException;
  7. import javax.servlet.http.HttpServlet;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10. import com.neusoft.dao.StudentDAO;
  11. import com.neusoft.dao.StudentPO;
  12. public class QueryAllStudent extends HttpServlet {
  13. /**
  14. * The doGet method of the servlet. <br>
  15. *
  16. * This method is called when a form has its tag value method equals to get.
  17. *
  18. * @param request the request send by the client to the server
  19. * @param response the response send by the server to the client
  20. * @throws ServletException if an error occurred
  21. * @throws IOException if an error occurred
  22. */
  23. public void doGet(HttpServletRequest request, HttpServletResponse response)
  24. throws ServletException, IOException {
  25. StudentDAO sd = new StudentDAO();
  26. try {
  27. List<StudentPO> list=sd.queryAllStudent();
  28. request.setAttribute("students", list);
  29. request.getRequestDispatcher("/showStudent.jsp").forward(request, response);
  30. } catch (SQLException e) {
  31. // TODO Auto-generated catch block
  32. e.printStackTrace();
  33. }
  34. }
  35. public void doPost(HttpServletRequest request, HttpServletResponse response)
  36. throws ServletException, IOException {
  37. doGet(request, response);
  38. }
  39. }

10.showStudents.jsp 用户信息页面,实现查询、更新、删除功能,分别调用各自servlet文件,分别为select.java Edit.java Delete.java

  1. <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
  2. <%@page import="com.neusoft.dao.StudentPO"%>
  3. <%
  4. String path = request.getContextPath();
  5. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  6. %>
  7. <%
  8. List<StudentPO> list=(List<StudentPO>)request.getAttribute("students");
  9. %>
  10. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  11. <html>
  12. <head>
  13. <base href="<%=basePath%>">
  14. <title>My JSP 'showStudents.jsp' starting page</title>
  15. <meta http-equiv="pragma" content="no-cache">
  16. <meta http-equiv="cache-control" content="no-cache">
  17. <meta http-equiv="expires" content="0">
  18. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  19. <meta http-equiv="description" content="This is my page">
  20. <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
  21. <!--
  22. <link rel="stylesheet" type="text/css" href="styles.css">
  23. -->
  24. </head>
  25. <body style="background:url('http://localhost:8080/webDomo2/login4.jpg') no-repeat;background-size: cover;">
  26. <div style="width:80%;margin:10px auto">
  27. <div style="height:70px;margin-left: 390px;margin-top: 30px;">
  28. <h1 style="font: bold em Brush Script MT ; color:#222; text-shadow: 0px 2px 3px #666;float:left;">User Management</h1>
  29. <img src="http://localhost:8080/webDomo2/List.png" style="width: 50px;height: 50px;float:left;margin-top: 13px;"/>
  30. </div>
  31. <form id="select" method="post" action="Select" style="margin-left: 631px">
  32. <input id="selectbyname" class="form-control" type="text" name="id" placeholder="请输入用户id" style="width:200px;float:left;margin-top: 19px;"/>
  33. <div class="col-sm-offset-2 col-sm-10 form-group" style="width:202px;margin:10px auto;float:left">
  34. <button type="submit" class="btn btn-default btn-info" style="width:170px; margin:10px auto">查询</button>
  35. </div>
  36. </form>
  37. <form method="POST" id="form">
  38. <table align="center" class="table table-hover table-striped" style="height:70px;margin-top: 50px;filter:alpha(opacity=50,Style=0);">
  39. <tr>
  40. <th>用户ID</th>
  41. <th>真实姓名</th>
  42. <th>用户姓名</th>
  43. <th>用户年龄</th>
  44. <th>用户权限</th>
  45. <th>操作</th>
  46. </tr>
  47. <%
  48. for(StudentPO s :list){
  49. %>
  50. <tr>
  51. <td><%=s.getUserId() %></td>
  52. <td><%=s.getRealName() %>></td>
  53. <td><%=s.getUserName() %></td>
  54. <td><%=s.getUserAge() %></td>
  55. <td><%=s.getUserPower() %></td>
  56. <td>
  57. <div class="btn btn-default" onclick="update('<%=s.getUserId() %>')">更新</div>
  58. <div class="btn btn-default" onclick="deleteUser('<%=s.getUserId() %>')">删除</div>
  59. </td>
  60. </tr>
  61. <%
  62. }
  63. %>
  64. </table>
  65. <input id="user_id" type="hidden" name="userid" />
  66. </form>
  67. </div>
  68. </body>
  69. <script src="https://code.jquery.com/jquery.js"></script>
  70. <script type="text/javascript">
  71. var update=function(id){
  72. $("#user_id").val(id);
  73. $("#form").attr("action","Edit");
  74. $("#form").submit();
  75. };
  76. var deleteUser=function(id){
  77. $("#user_id").val(id);
  78. $("#form").attr("action","Delete");
  79. $("#form").submit();
  80. };
  81. </script>
  82. </html>

11.Edit.java 跳转至编辑页面,调用Edit.jsp文件

  1. package com.neusoft.servlet;
  2. import java.io.IOException;
  3. import java.sql.SQLException;
  4. import javax.servlet.ServletException;
  5. import javax.servlet.annotation.WebServlet;
  6. import javax.servlet.http.HttpServlet;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9. import com.neusoft.dao.StudentDAO;
  10. import com.neusoft.dao.StudentPO;
  11. public class Edit extends HttpServlet {
  12. private static final long serialVersionUID = 1L;
  13. public Edit() {
  14. super();
  15. // TODO Auto-generated constructor stub
  16. }
  17. protected void doGet(HttpServletRequest request, HttpServletResponse response)
  18. throws ServletException, IOException {
  19. // TODO Auto-generated method stub
  20. System.err.println("进到servlet");
  21. request.setCharacterEncoding("utf-8");
  22. String id=request.getParameter("userid");
  23. System.err.println("获取id为"+id);
  24. int userid = Integer.parseInt(id);
  25. StudentDAO sd = new StudentDAO();
  26. try {
  27. StudentPO sp=sd.selectbyid(userid);
  28. if(sp==null){
  29. }else{
  30. request.setAttribute("student", sp);
  31. request.getRequestDispatcher("/Edit.jsp").forward(request, response);//request对象提供了一个getRequestDispatcher方法,该方法返回一个RequestDispatcher对象,调用这个对象的forward方法可以实现请求转发
  32. }
  33. } catch (SQLException e) {
  34. // TODO Auto-generated catch block
  35. e.printStackTrace();
  36. }
  37. }
  38. /**
  39. * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
  40. */
  41. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  42. // TODO Auto-generated method stub
  43. doGet(request, response);
  44. }
  45. }

12.Edit.jsp

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <!DOCTYPE html>
  4. <html lang="zh-CN">
  5. <head>
  6. <meta charset="UTF-8">
  7. <meta name="viewport" content="width=device-width, initial-scale=1">
  8. <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
  9. <title>修改用户信息页面</title>
  10. </head>
  11. <body style="background:url('http://localhost:8080/webDomo2/login4.jpg') no-repeat;background-size: cover;">
  12. <div style="width:80%;margin:10px auto">
  13. <div style="height:70px;margin-left: 390px;">
  14. <h1 style="font: bold em Brush Script MT ; color:#222; text-shadow: 0px 2px 3px #666;float:left;">User Management<h1/>
  15. <img src="http://localhost:8080/maven02/resources/img/List.png" style="width: 50px;height: 50px;float:left;margin-top: 13px;"/>
  16. </div>
  17. <form class="form-horizontal" action="Editend" method="POST">
  18. <div class="form-group">
  19. <label class="col-sm-2 control-label">用户名:</label>
  20. <div class="col-sm-10 center-block">
  21. <input type="text" class="form-control" name="username" id="inputEmail3" value="${student.getUserName()}">
  22. </div>
  23. </div>
  24. <div class="form-group">
  25. <label for="inputPassword3" class="col-sm-2 control-label">密码</label>
  26. <div class="col-sm-10">
  27. <input type="password" class="form-control" id="inputPassword3" name="password" value="${student.getUserPwd()}">
  28. </div>
  29. </div>
  30. <div class="form-group">
  31. <label for="inputPassword3" class="col-sm-2 control-label">年龄</label>
  32. <div class="col-sm-10">
  33. <input type="password" class="form-control" id="inputPassword3" name="age" value="${student.getUserAge()}">
  34. </div>
  35. </div>
  36. <div class="form-group">
  37. <label class="col-sm-2 control-label">真实姓名:</label>
  38. <div class="col-sm-10 center-block">
  39. <input type="text" class="form-control" name="name" id="inputEmail3" value="${student.getRealName()}">
  40. </div>
  41. </div>
  42. <div class="form-group">
  43. <div class="col-sm-offset-2 col-sm-10">
  44. <button type="submit" class="btn btn-default">确定</button>
  45. </div>
  46. </div>
  47. <input id="user_id" type="hidden" name="userid" value="${student.getUserId()}" />
  48. </form>
  49. </div>
  50. <!-- jQuery (Bootstrap 的 JavaScript 插件需要引入 jQuery) -->
  51. <script src="https://code.jquery.com/jquery.js"></script>
  52. <!-- 包括所有已编译的插件 -->
  53. <script src="js/bootstrap.min.js"></script>
  54. <script type="text/javascript">
  55. $(function(){
  56. if(""=="${code}"){
  57. console.log("没有异常");
  58. }else if("500"=="${code}"){
  59. alert("${msg}");
  60. }
  61. });
  62. </script>
  63. </body>
  64. </html>

13.Editend.java 编辑页面调用Editend.java

  1. package com.neusoft.servlet;
  2. import java.io.IOException;
  3. import java.sql.SQLException;
  4. import javax.servlet.ServletException;
  5. import javax.servlet.annotation.WebServlet;
  6. import javax.servlet.http.HttpServlet;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9. import com.neusoft.dao.StudentDAO;
  10. /**
  11. * Servlet implementation class Editend
  12. */
  13. public class Editend extends HttpServlet {
  14. private static final long serialVersionUID = 1L;
  15. /**
  16. * @see HttpServlet#HttpServlet()
  17. */
  18. public Editend() {
  19. super();
  20. // TODO Auto-generated constructor stub
  21. }
  22. /**
  23. * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
  24. */
  25. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  26. // TODO Auto-generated method stub
  27. System.err.println("进入POST");
  28. req.setCharacterEncoding("utf-8");
  29. resp.setCharacterEncoding("utf-8");
  30. //1.接受客户端数据
  31. //按照客户端调教数据的name-value的形式来提取数据
  32. String userid=req.getParameter("userid");
  33. String username = req.getParameter("username");
  34. String realname=req.getParameter("name");
  35. String userpwd=req.getParameter("password");
  36. String userage=req.getParameter("age");
  37. String userpower=req.getParameter("power");
  38. System.err.println("查到power"+userage);
  39. int id = Integer.parseInt(userid);
  40. int age = Integer.parseInt(userage);
  41. //2.使用JDBC,将数据添加到数据库中
  42. StudentDAO sd = new StudentDAO();
  43. //3.HttpServletResponse对象
  44. //将HTML代码以数据流的形式响应给客户端
  45. //客户端使用IE浏览器来解析响应的HTML数据流
  46. //获得一个输出流对象
  47. // PrintWriter out = resp.getWriter();
  48. //
  49. // out.println("<html>");
  50. // out.println("<head>");
  51. // out.println("<meta http-equiv='content-type' content='text/html; charset=UTF-8'>");
  52. // out.println("</head>");
  53. // out.println("<body>");
  54. try {
  55. int result=sd.update(id,username,userpwd,age,realname);
  56. System.err.println(result);
  57. if(result>0){
  58. //1.站内跳转,请求转发
  59. //只能转发网站内部的资源
  60. //转发的是同一个请求和响应对象
  61. req.getRequestDispatcher("/QueryAllStudent").forward(req, resp);
  62. //2.重定向跳转
  63. //可以请求外部资源
  64. //由于是客户端重新发起的请求,所以请求和响应对象不是同一个
  65. //resp.sendRedirect("/webDemo/success.jsp");
  66. //out.println("添加成功");
  67. }else{
  68. //out.println("添加失败");
  69. }
  70. } catch (SQLException e) {
  71. //out.println("添加失败");
  72. }
  73. }
  74. /**
  75. * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
  76. */
  77. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  78. // TODO Auto-generated method stub
  79. doGet(request, response);
  80. }
  81. }

14.select.java 接收查询请求

  1. package com.neusoft.servlet;
  2. import java.io.IOException;
  3. import java.sql.SQLException;
  4. import javax.servlet.ServletException;
  5. import javax.servlet.annotation.WebServlet;
  6. import javax.servlet.http.HttpServlet;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9. import com.neusoft.dao.StudentDAO;
  10. import com.neusoft.dao.StudentPO;
  11. /**
  12. * Servlet implementation class Select
  13. */
  14. public class Select extends HttpServlet {
  15. private static final long serialVersionUID = 1L;
  16. /**
  17. * @see HttpServlet#HttpServlet()
  18. */
  19. public Select() {
  20. super();
  21. // TODO Auto-generated constructor stub
  22. }
  23. /**
  24. * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
  25. */
  26. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  27. // TODO Auto-generated method stub
  28. System.err.println("进到servlet");
  29. request.setCharacterEncoding("utf-8");
  30. String id=request.getParameter("id");
  31. System.err.println("获取id为"+id);
  32. int userid = Integer.parseInt(id);
  33. StudentDAO sd = new StudentDAO();
  34. try {
  35. StudentPO sp=sd.selectbyid(userid);
  36. if(sp==null){
  37. }else{
  38. System.err.println("sp"+sp.getRealName());
  39. request.getRequestDispatcher("QueryOnlyOne?userid="+sp.getUserId()).forward(request, response);//request对象提供了一个getRequestDispatcher方法,该方法返回一个RequestDispatcher对象,调用这个对象的forward方法可以实现请求转发
  40. }
  41. } catch (SQLException e) {
  42. // TODO Auto-generated catch block
  43. e.printStackTrace();
  44. }
  45. }
  46. /**
  47. * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
  48. */
  49. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  50. // TODO Auto-generated method stub
  51. doGet(request, response);
  52. }
  53. }

15.delete.java 接收删除请求

  1. package com.neusoft.servlet;
  2. import java.io.IOException;
  3. import java.sql.SQLException;
  4. import javax.servlet.ServletException;
  5. import javax.servlet.annotation.WebServlet;
  6. import javax.servlet.http.HttpServlet;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9. import com.neusoft.dao.StudentDAO;
  10. import com.neusoft.dao.StudentPO;
  11. /**
  12. * Servlet implementation class delete
  13. */
  14. public class Delete extends HttpServlet {
  15. private static final long serialVersionUID = 1L;
  16. /**
  17. * @see HttpServlet#HttpServlet()
  18. */
  19. public Delete() {
  20. super();
  21. // TODO Auto-generated constructor stub
  22. }
  23. /**
  24. * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
  25. */
  26. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  27. // TODO Auto-generated method stub
  28. System.err.println("进到servlet");
  29. request.setCharacterEncoding("utf-8");
  30. String id=request.getParameter("userid");
  31. System.err.println("获取id为"+id);
  32. int userid = Integer.parseInt(id);
  33. StudentDAO sd = new StudentDAO();
  34. try {
  35. int result=sd.delete(userid);
  36. if(result>0){
  37. //1.站内跳转,请求转发
  38. //只能转发网站内部的资源
  39. //转发的是同一个请求和响应对象
  40. request.getRequestDispatcher("/QueryAllStudent").forward(request, response);
  41. //2.重定向跳转
  42. //可以请求外部资源
  43. //由于是客户端重新发起的请求,所以请求和响应对象不是同一个
  44. //resp.sendRedirect("/webDemo/success.jsp");
  45. //out.println("添加成功");
  46. }else{
  47. //out.println("添加失败");
  48. }
  49. } catch (SQLException e) {
  50. // TODO Auto-generated catch block
  51. e.printStackTrace();
  52. }
  53. }
  54. /**
  55. * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
  56. */
  57. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  58. // TODO Auto-generated method stub
  59. doGet(request, response);
  60. }
  61. }

16.QueryOnlyOne.java 接收普通用户的主页面的请求

  1. package com.neusoft.servlet;
  2. import java.io.IOException;
  3. import java.io.PrintWriter;
  4. import java.sql.SQLException;
  5. import java.util.List;
  6. import javax.servlet.ServletException;
  7. import javax.servlet.http.HttpServlet;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10. import com.neusoft.dao.StudentDAO;
  11. import com.neusoft.dao.StudentPO;
  12. public class QueryOnlyOne extends HttpServlet {
  13. /**
  14. * The doGet method of the servlet. <br>
  15. *
  16. * This method is called when a form has its tag value method equals to get.
  17. *
  18. * @param request the request send by the client to the server
  19. * @param response the response send by the server to the client
  20. * @throws ServletException if an error occurred
  21. * @throws IOException if an error occurred
  22. */
  23. public void doGet(HttpServletRequest request, HttpServletResponse response)
  24. throws ServletException, IOException {
  25. StudentDAO sd = new StudentDAO();
  26. StudentPO sp = new StudentPO();
  27. String id=request.getParameter("userid");
  28. int userid = Integer.parseInt(id);
  29. try {
  30. //将对象保存在请求对象中
  31. List<StudentPO> list=sd.queryStudentById(userid);
  32. request.setAttribute("students", list);
  33. request.getRequestDispatcher("/showStudent.jsp").forward(request, response);
  34. } catch (SQLException e) {
  35. // TODO Auto-generated catch block
  36. e.printStackTrace();
  37. }
  38. }
  39. public void doPost(HttpServletRequest request, HttpServletResponse response)
  40. throws ServletException, IOException {
  41. doGet(request, response);
  42. }
  43. }

17.web.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
  3. <welcome-file-list>
  4. <welcome-file>index.jsp</welcome-file>
  5. </welcome-file-list>
  6. <servlet>
  7. <servlet-name>RegisterServlet</servlet-name>
  8. <servlet-class>com.neusoft.servlet.RegisterServlet</servlet-class>
  9. </servlet>
  10. <servlet>
  11. <servlet-name>Edit</servlet-name>
  12. <servlet-class>com.neusoft.servlet.Edit</servlet-class>
  13. </servlet>
  14. <servlet>
  15. <servlet-name>Select</servlet-name>
  16. <servlet-class>com.neusoft.servlet.Select</servlet-class>
  17. </servlet>
  18. <servlet>
  19. <servlet-name>Delete</servlet-name>
  20. <servlet-class>com.neusoft.servlet.Delete</servlet-class>
  21. </servlet>
  22. <servlet>
  23. <servlet-name>Editend</servlet-name>
  24. <servlet-class>com.neusoft.servlet.Editend</servlet-class>
  25. </servlet>
  26. <servlet>
  27. <servlet-name>QueryOnlyOne</servlet-name>
  28. <servlet-class>com.neusoft.servlet.QueryOnlyOne</servlet-class>
  29. </servlet>
  30. <servlet>
  31. <servlet-name>LoginServlet</servlet-name>
  32. <servlet-class>com.neusoft.servlet.LoginServlet</servlet-class>
  33. </servlet>
  34. <servlet>
  35. <description>This is the description of my J2EE component</description>
  36. <display-name>This is the display name of my J2EE component</display-name>
  37. <servlet-name>QueryAllStudent</servlet-name>
  38. <servlet-class>com.neusoft.servlet.QueryAllStudent</servlet-class>
  39. </servlet>
  40. <servlet-mapping>
  41. <servlet-name>QueryOnlyOne</servlet-name>
  42. <url-pattern>/QueryOnlyOne</url-pattern>
  43. </servlet-mapping>
  44. <servlet-mapping>
  45. <servlet-name>RegisterServlet</servlet-name>
  46. <url-pattern>/RegisterServlet</url-pattern>
  47. </servlet-mapping>
  48. <servlet-mapping>
  49. <servlet-name>LoginServlet</servlet-name>
  50. <url-pattern>/LoginServlet</url-pattern>
  51. </servlet-mapping>
  52. <servlet-mapping>
  53. <servlet-name>QueryAllStudent</servlet-name>
  54. <url-pattern>/QueryAllStudent</url-pattern>
  55. </servlet-mapping>
  56. <servlet-mapping>
  57. <servlet-name>Edit</servlet-name>
  58. <url-pattern>/Edit</url-pattern>
  59. </servlet-mapping>
  60. <servlet-mapping>
  61. <servlet-name>Select</servlet-name>
  62. <url-pattern>/Select</url-pattern>
  63. </servlet-mapping>
  64. <servlet-mapping>
  65. <servlet-name>Delete</servlet-name>
  66. <url-pattern>/Delete</url-pattern>
  67. </servlet-mapping>
  68. <servlet-mapping>
  69. <servlet-name>Editend</servlet-name>
  70. <url-pattern>/Editend</url-pattern>
  71. </servlet-mapping>
  72. </web-app>

18.StudentPO.java 实体类

  1. package com.neusoft.dao;
  2. import java.util.List;
  3. public class StudentPO {
  4. private int userId;
  5. private String userName;
  6. private int userAge;
  7. private String userPwd;
  8. private String realName;
  9. private int userPower;
  10. public int getUserPower(){
  11. return userPower;
  12. }
  13. public void setuserPower(int userpower) {
  14. this.userPower = userpower;
  15. }
  16. public String getRealName(){
  17. return realName;
  18. }
  19. public void setRealName(String realname) {
  20. this.realName = realname;
  21. }
  22. public String getUserPwd() {
  23. return userPwd;
  24. }
  25. public void setUserPwd(String userpwd) {
  26. this.userPwd = userpwd;
  27. }
  28. public int getUserId() {
  29. return userId;
  30. }
  31. public void setUserId(int userId) {
  32. this.userId = userId;
  33. }
  34. public String getUserName() {
  35. return userName;
  36. }
  37. public void setUserName(String userName) {
  38. this.userName = userName;
  39. }
  40. public int getUserAge() {
  41. return userAge;
  42. }
  43. public void setUserAge(int userAge) {
  44. this.userAge = userAge;
  45. }
  46. }

完成!

三.效果图展示

1.登录界面——用户的登录注册

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyMzIwMDQ4_size_16_color_FFFFFF_t_70 2

2.主页面——按钮跳转用户信息列表页

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyMzIwMDQ4_size_16_color_FFFFFF_t_70 3

3.用户信息列表——实现用户信息的查询、修改、删除

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyMzIwMDQ4_size_16_color_FFFFFF_t_70 4

4.编辑页面——编辑用户信息

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyMzIwMDQ4_size_16_color_FFFFFF_t_70 5

5.注册页面——实现用户的增加

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyMzIwMDQ4_size_16_color_FFFFFF_t_70 6

发表评论

表情:
评论列表 (有 0 条评论,395人围观)

还没有评论,来说两句吧...

相关阅读

    相关 ssm登录注册增删

    >     此项目原本是两个不同的项目,博主从网上找的,都是基于ide开发的项目,然当我导入ide与eclipse却运行不了,没办法只能博主自己重新构建项目,参考这两个不同的项