伙伴云客服论坛»论坛 S区 S客户管理 查看内容

0 评论

0 收藏

分享

JavaWeb用户信息管理系统(附全部代码)

JavaWeb用户信息管理系统(附全部代码)



        1、JavaEE项目的三层框架2 、本项目的目录文件(java文件)3、创建用户资源的数据表
          3.1、编写数据库表对应的JavaBean对象
        4、编写JdbcUtils工具类(实现代码的反复利用)5、编写Dao耐久层(用来和数据库交互)
          5.1、导入DBUtils 的 jar包5.2、编写BaseDao5.3、编写UserDao5.4、UserDao接口实现类UserDaoImpl
        7、编写Service(处置业务逻辑,调用Dao耐久层操作数据库)
          7.1、UserService接口7.2、UserService接口实现类UserServiceImpl
        8、处置登录业务
          8.1、业务逻辑(下同)8.2、登录页面Login.jsp8.3、Login_css.css(登录页面的美化文件)8.4、编写LoginServlet8.5、注册servlet8.6、登入胜利页面(显示所有用户)8.7、登入胜利页面的login_success_css.css文件8.8、登入胜利后页面数据恳求(下同)8.9、编写Userservlet
        9、添加用户
          9.1、编写AddServlet9.2、添加用户页面
        10、修改用户
          10.1、修改信息的显示页面10.2、编写UpdateServlet
        11、删除用户
          11.1、编写DeleteServlet
        12、整体展示



主要实现根本用户信息的增删改功能,用户的信息显示在主页面。
    我的文件目录

    JavaWeb用户信息管理系统(附全部代码)-1.jpg

    JavaWeb用户信息管理系统(附全部代码)-2.jpg

lib中的包必需全部导入
1、JavaEE项目的三层框架

JavaWeb用户信息管理系统(附全部代码)-3.jpg


分层的目的是为理解耦。降低代码之间的耦合度,方便项目后期的维护和晋级。
2 、本项目的目录文件(java文件)

JavaBean类(com.example.bean)Web层(com.example.servlet)Dao耐久层(com.example.dao)(com.example.dao.impl)service层(com.example.sercice)(com.example.sercice.impl)Utils类(com.example.utils)
UserAddServlet LoginServletBaseDaoUserServiceJdbcUtils
DeleteServlet UpdateServletUserDaoUserServiceImpl
UserServlet OneUserServletUserDaoImpl
test测试类放在idea生成的test包下。
3、创建用户资源的数据表

数据表根据自己的需求自己创建,下面是该项目用到的数据库字段。
    id 用户编号 intusername 用户名 varcharpassword 密码 varcharname 真实姓名 varcharemail 邮箱 varchartelephone 手机号 varchar
3.1、编写数据库表对应的JavaBean对象
  1. packagecom.example.bean;publicclassUser{privateInteger id;privateString username;privateString password;privateString name;privateString email;privateString telephone;publicIntegergetId(){return id;}publicvoidsetId(Integer id){this.id = id;}publicStringgetUserName(){return username;}publicvoidsetUserName(String username){this.username = username;}publicStringgetPassword(){return password;}publicvoidsetPassword(String password){this.password = password;}publicStringgetName(){return name;}publicvoidsetName(String name){this.name = name;}publicStringgetEmail(){return email;}publicvoidsetEmail(String email){this.email = email;}publicStringgetTelephone(){return telephone;}publicvoidsetTelephone(String telephone){this.telephone = telephone;}publicUser(Integer id,String userName,String password,String name,String email,String telephone){this.id = id;this.username = userName;this.password = password;this.name = name;this.email = email;this.telephone = telephone;}publicUser(){}@OverridepublicStringtoString(){return"User{"+"id="+ id +", useName='"+ username +'\''+", password='"+ password +'\''+", name='"+ name +'\''+", email='"+ email +'\''+", telephone='"+ telephone +'\''+'}';}}
复制代码
在如下包下面建立 jdbc.properties设置配置文件
JavaWeb用户信息管理系统(附全部代码)-4.jpg

  1. //详细内容
  2. username=root
  3. password=123abc
  4. url=jdbc:mysql://localhost:3306/***       //***为你的数据表所在数据库名称
  5. driverClassName=com.mysql.jdbc.Driver
  6. initialSize=5
  7. maxActive=10                //最多同时获取连接的数量
复制代码
4、编写JdbcUtils工具类(实现代码的反复利用)

    读取 jdbc.properties 属性配置文件从流中加载数据创建数据库连接池
  1. packagecom.example.utils;importcom.alibaba.druid.pool.DruidDataSource;importcom.alibaba.druid.pool.DruidDataSourceFactory;importjava.io.InputStream;importjava.sql.Connection;importjava.sql.SQLException;importjava.util.Properties;/**
  2. * @program: ManageSystem
  3. * @description: 管理数据库连接池的工具类
  4. * @author: Mr.Zeng
  5. * @create: 2021-05-26 12:13
  6. **/publicclassJdbcUtils{privatestaticDruidDataSource dataSource;static{try{Properties properties =newProperties();// 读取jdbc.properties配置文件InputStream inputStream =JdbcUtils.class.getClassLoader().getResourceAsStream("jdbc.properties");//从流中加载数据
  7.             properties.load(inputStream);//创建 数据库连接 池
  8.             dataSource =(DruidDataSource)DruidDataSourceFactory.createDataSource(properties);}catch(Exception e){
  9.             e.printStackTrace();}}/**
  10.      * @Description: 获取数据库的连接  返回null则连接失败
  11.      * @Param: []
  12.      * @return: java.sql.Connection
  13.      * @Author: Mr.Zeng
  14.      * @Date: 2021/5/26
  15.      */publicstaticConnectiongetConnection(){Connection connection =null;try{
  16.             connection = dataSource.getConnection();}catch(SQLException throwables){
  17.             throwables.printStackTrace();}return connection;}/**
  18.     * @Description: 放回数据库连接池
  19.     * @Param: [connection]
  20.     * @return: void
  21.     * @Author: Mr.Zeng
  22.     * @Date: 2021/5/26
  23.     */publicstaticvoidclose(Connection connection){if(connection !=null){try{
  24.                 connection.close();}catch(SQLException throwables){
  25.                 throwables.printStackTrace();}}}}
复制代码
值得注意的是,在外面获取一个连接后,最后记得关闭连接放回连接池,在这里可以在test包下建立一个测试JdbcUtils的测试类。
Tips:
可能出错的原因:
    数据库是否对应
    没有导入相应的jar包 (druid) 可以到网页搜索下载,非常方便。
5、编写Dao耐久层(用来和数据库交互)

5.1、导入DBUtils 的 jar包

commons-dbutils-1.7.jar ,我这里用的是1.7的版本。
5.2、编写BaseDao
  1. packagecom.example.dao;importcom.example.utils.JdbcUtils;importorg.apache.commons.dbutils.QueryRunner;importorg.apache.commons.dbutils.handlers.BeanHandler;importorg.apache.commons.dbutils.handlers.BeanListHandler;importjava.sql.Connection;importjava.sql.SQLException;importjava.util.List;/**
  2. * @program: ManageSystem
  3. * @description: 使用DBUtils操作数据库
  4. * @author: Mr.Zeng
  5. * @create: 2021-05-26 12:59
  6. **/publicabstractclassBaseDao{//使用DBUtils操作数据库privateQueryRunner queryRunner =newQueryRunner();/**
  7.     * @Description: update()方法用来执行:Insert\Update\Delete语句
  8.     * @Param: []
  9.     * @return: int 返回-1表示执行失败,返回其他表示影响的行数
  10.     * @Author: Mr.Zeng
  11.     * @Date: 2021/5/26
  12.     */publicintupdate(String sql,Object...args){Connection connection =JdbcUtils.getConnection();try{return queryRunner.update(connection,sql,args);}catch(SQLException throwables){
  13.             throwables.printStackTrace();}finally{JdbcUtils.close(connection);}return-1;}/**
  14.     * @Description: 查询返回一个javaBean的sql语句
  15.     * @Param: [type 返回的对象类型, sql 执行的sql语句, args sql对应的参数值]
  16.     * @return: T 返回类型的泛型
  17.     * @Author: Mr.Zeng
  18.     * @Date: 2021/5/26
  19.     */public<T>TqueryForOne(Class<T> type,String sql,Object...args){Connection connection =JdbcUtils.getConnection();try{return queryRunner.query(connection,sql,newBeanHandler<T>(type),args);}catch(SQLException throwables){
  20.             throwables.printStackTrace();}finally{JdbcUtils.close(connection);}returnnull;}/**
  21.      * @Description: 查询返回多个javaBean的sql语句
  22.      * @Param: [type 返回的对象类型, sql 执行的sql语句, args sql对应的参数值]
  23.      * @return: T 返回类型的泛型
  24.      * @Author: Mr.Zeng
  25.      * @Date: 2021/5/26
  26.      */public<T>List<T>queryForList(Class<T> type,String sql,Object...args){Connection connection =JdbcUtils.getConnection();try{return queryRunner.query(connection,sql,newBeanListHandler<T>(type),args);}catch(SQLException throwables){
  27.             throwables.printStackTrace();}finally{JdbcUtils.close(connection);}returnnull;}}
复制代码
5.3、编写UserDao
  1. packagecom.example.dao;importcom.example.bean.User;importjava.util.List;publicinterfaceUserDao{/**
  2.     * @Description: 根据用户名和密码查询用户信息,增删查改,返回全部用户的功能
  3.     * @Param: [username 用户名 , password  密码]
  4.     * @return: com.example.bean.User
  5.     * @Author: Mr.Zeng
  6.     * @Date: 2021/5/26
  7.     */UserqueryUserByUsernameAndPassword(String username,String password);intadd(User user);intdeleteById(Integer id);intupdate(User user);UserqueryById(Integer id);List<User>queryUsers();}
复制代码
5.4、UserDao接口实现类UserDaoImpl
  1. packagecom.example.dao.impl;importcom.example.bean.User;importcom.example.dao.BaseDao;importcom.example.dao.UserDao;importjava.util.List;/**
  2. * @program: ManageSystem
  3. * @description:
  4. * @author: Mr.Zeng
  5. * @create: 2021-05-26 13:19
  6. **/publicclassUserDaoImplextendsBaseDaoimplementsUserDao{@OverridepublicUserqueryUserByUsernameAndPassword(String username,String password){String sql ="select * from user where username = ? and password = ?";returnqueryForOne(User.class, sql, username, password);}@Overridepublicintadd(User user){String sql ="insert into user(username,password,name,email,telephone) values (?,?,?,?,?)";returnupdate(sql, user.getUserName(), user.getPassword(), user.getName(),
  7.                 user.getEmail(), user.getTelephone());}@OverridepublicintdeleteById(Integer id){String sql ="delete from user where id = ?";returnupdate(sql, id);}@Overridepublicintupdate(User user){String sql ="update user set username=?,password=?,name=?,email=?,telephone=? where id = ?";returnupdate(sql, user.getUserName(), user.getPassword(), user.getName(),
  8.                 user.getEmail(), user.getTelephone(), user.getId());}@OverridepublicUserqueryById(Integer id){String sql ="select * from user where id = ?";returnqueryForOne(User.class, sql, id);}@OverridepublicList<User>queryUsers(){String sql ="select * from user";returnqueryForList(User.class, sql);}}
复制代码
7、编写Service(处置业务逻辑,调用Dao耐久层操作数据库)

7.1、UserService接口
  1. packagecom.example.service.impl;importcom.example.bean.User;importjava.util.List;publicinterfaceUserService{Userlogin(User user);voidadd(User user);voiddeleteById(Integer id);voidupdate(User user);UserqueryById(Integer id);List<User>queryUsers();}
复制代码
7.2、UserService接口实现类UserServiceImpl
  1. packagecom.example.service;importcom.example.bean.User;importcom.example.dao.UserDao;importcom.example.dao.impl.UserDaoImpl;importcom.example.service.impl.UserService;importjava.util.List;/**
  2. * @program: ManageSystem
  3. * @description: 处置登入业务
  4. * @author: Mr.Zeng
  5. * @create: 2021-05-26 14:31
  6. **/publicclassUserServiceImplimplementsUserService{privatefinalUserDao userDao =newUserDaoImpl();publicUserlogin(User user){return userDao.queryUserByUsernameAndPassword(user.getUserName(), user.getPassword());}@Overridepublicvoidadd(User user){
  7.         userDao.add(user);}@OverridepublicvoiddeleteById(Integer id){
  8.         userDao.deleteById(id);}@Overridepublicvoidupdate(User user){
  9.         userDao.update(user);}@OverridepublicUserqueryById(Integer id){return userDao.queryById(id);}@OverridepublicList<User>queryUsers(){return userDao.queryUsers();}}
复制代码
8、处置登录业务

8.1、业务逻辑(下同)

JavaWeb用户信息管理系统(附全部代码)-5.jpg


8.2、登录页面Login.jsp
  1. <%--
  2.   Created by IntelliJ IDEA.
  3.   User: zengxiong
  4.   Date: 2021/5/26
  5.   Time: 0:18
  6.   To change this template use File | Settings | File Templates.
  7. --%>
  8. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  9. <html>
  10. <head>
  11.     <title>用户登入页面</title>
  12.     <link type="text/css" rel="stylesheet" href="Login_css.css">
  13. </head>
  14. <body>
  15. <div style="width:400px; height:400px;">
  16.     <img src="2.jpg" width="394" height="444" style="margin-left:166px; margin-top:104px;" alt="图片无法显示">
  17. </div>
  18. <div id="login">
  19.     <h1>用户管理系统</h1>
  20.     <form action="LoginServlet" method="post">
  21.         <input type="hidden" name="action" value="login">
  22.         <label>
  23.             <input type="text" required="required" placeholder="用户名" name="username">
  24.         </label>
  25.         <label>
  26.             <input type="password" required="required" placeholder="密码" name="password">
  27.         </label>
  28.         <button class="but" type="submit">登录</button>
  29.     </form>
  30. </div>
  31. </body>
  32. </html>
复制代码
8.3、Login_css.css(登录页面的美化文件)
  1. html{width: 100%;height: 100%;overflow: hidden;}body{width: 100%;height: 100%;font-family:'Open Sans',sans-serif;margin: 0;background-image:url("img.png");}#login{position: absolute;top: 50%;left:50%;margin: -150px 0 0 147px;width: 300px;height: 300px;}#login h1{color: #fff;text-shadow:0 0 10px;letter-spacing: 1px;text-align: center;}h1{font-size: 2em;margin: 0.67em 0;}input{width: 300px;height: 40px;margin-bottom: 10px;outline: none;padding: 10px;font-size: 13px;color: #fff;text-shadow:1px 1px 1px;border-top: 1px solid #312E3D;border-left: 1px solid #312E3D;border-right: 1px solid #312E3D;border-bottom: 1px solid #56536A;border-radius: 4px;background-color: #2D2D3F;}.but{width: 300px;min-height: 20px;display: block;background-color: #4a77d4;border: 1px solid #3762bc;color: #fff;padding: 9px 14px;font-size: 15px;line-height: normal;border-radius: 5px;margin: 0;}
复制代码
8.4、编写LoginServlet
  1. packagecom.example.web;importcom.example.bean.User;importcom.example.service.UserServiceImpl;importcom.example.service.impl.UserService;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjava.io.IOException;/**
  2. * @program: ManageSystem
  3. * @description: 用户登入功能实现
  4. * @author: Mr.Zeng
  5. * @create: 2021-05-26 14:47
  6. **/@WebServlet(urlPatterns ="/LoginServlet")publicclassLoginServletextendsHttpServlet{privatefinalUserService userService =newUserServiceImpl();@OverrideprotectedvoiddoGet(HttpServletRequest req,HttpServletResponse resp)throwsServletException,IOException{doPost(req, resp);}@OverrideprotectedvoiddoPost(HttpServletRequest req,HttpServletResponse resp)throwsServletException,IOException{//获取恳求参数String username = req.getParameter("username");String password = req.getParameter("password");//调用UserService.login()登录处置业务User loginUser = userService.login(newUser(0, username, password,null,null,null));if(loginUser ==null){//跳回到Login页面
  7.             req.getRequestDispatcher("/Login.jsp").forward(req, resp);}else{//跳转到UserServlet
  8.             req.getRequestDispatcher("/UserServlet").forward(req, resp);}}}
复制代码
8.5、注册servlet


  • 在这里我是直接在类里面注册的:
      @WebServlet(urlPatterns = “/LoginServlet”),你也可以在Web.xml里面停止注册一般在一个程序里面只要一个Servlet(利用反射优化),这里我将Servlet全部分开,便于理解但会形成代码冗余,建议自己学习并实现代码优化

8.6、登入胜利页面(显示所有用户)
  1. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  2. <%--
  3.   Created by IntelliJ IDEA.
  4.   User: zengxiong
  5.   Date: 2021/5/26
  6.   Time: 15:07
  7.   To change this template use File | Settings | File Templates.
  8. --%>
  9. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  10. <html>
  11. <head>
  12.     <meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
  13.     <title>用户管理系统</title>
  14.     <link type="text/css" rel="stylesheet" href="login_success_css.css">
  15.     <script>
  16.         function test1(){
  17. //        document.("表单的name值").action
  18. //        document.("表单的name值").submit
  19.             document.submitted.action="add_list.jsp";
  20.             document.submitted.submit();
  21.         }
  22.         function test2() {
  23.             document.submitted.action = "DeleteServlet";
  24.             document.submitted.submit();
  25.         }
  26.     </script>
  27.     <style>
  28.         button.asd{
  29.             margin-right: -818px;
  30.             background-color: #4a77d4;
  31.         }
  32.         input.abc{
  33.             margin-right: 20px;
  34.             background-color: #89d289;
  35.         }
  36.         input.def{
  37.             background-color: #d91e1e;
  38.             width: 42px;
  39.             height: 25px;
  40.             text-align: center;
  41.         }
  42.     </style>
  43. </head>
  44. <body>
  45. <form name="submitted" method="post">
  46. <table id="mytable" cellspacing="0" summary="The technical specifications of the Apple PowerMac G5 series">
  47.     <caption></caption>
  48.     <tr>
  49.         <th colspan="7"><button class="asd" οnclick="test1()">添加用户</button></th>
  50.     </tr>
  51.     <tr>
  52.         <th scope="col" abbr="Configurations">编号</th>
  53.         <th scope="col" abbr="Dual 1.8">用户名</th>
  54.         <th scope="col" abbr="Dual 2">密码</th>
  55.         <th scope="col" abbr="Dual 2">姓名</th>
  56.         <th scope="col" abbr="Dual 2">邮箱</th>
  57.         <th scope="col" abbr="Dual 2">电话</th>
  58.         <th scope="col" abbr="Dual 2.5">操作</th>
  59.     </tr>
  60.     <c:forEach items="${requestScope.user}" var="user">
  61.     <tr>
  62.         <th scope="row" abbr="Model" class="spec" name="id">${user.id}</th>
  63.         <td>${user.userName}</td>
  64.         <td>${user.password}</td>
  65.         <td>${user.name}</td>
  66.         <td>${user.email}</td>
  67.         <td>${user.telephone}</td>
  68.         <td><label>
  69.                 <%--formaction直接设置行为,并且设置提交的数据值--%>
  70.             <input formaction="OneUserServlet?id=${user.id}" type="submit" class="abc" value="修改">
  71.         </label>
  72.             <label>
  73.                 <%--formaction直接设置行为,并且设置提交的数据值--%>
  74.                 <input formaction="DeleteServlet?id=${user.id}" type="submit" class="def" value="删除">
  75.             </label></td>
  76.     </tr>
  77.     </c:forEach>
  78. </table>
  79. </form>
  80. </body>
  81. </html>
复制代码
8.7、登入胜利页面的login_success_css.css文件
  1. body{font-family:'Open Sans', sans-serif;margin: 0;background-image:url("img.png");width: 100%;height: 100%;border: 1px solid red;text-align: center;}a{color: #c75f3e;}#mytable{width: 1000px;padding: 0;border: 1px solid green;margin: 100px auto 0;height: 300px;}caption{padding: 0 0 5px 0;width: 700px;font: italic 11px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;text-align: right;}th{font: bold 26px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;color: #4f6b72;border-right: 1px solid #C1DAD7;border-bottom: 1px solid #C1DAD7;border-top: 1px solid #C1DAD7;letter-spacing: 2px;text-transform: uppercase;padding: 6px 6px 6px 12px;background: #CAE8EA no-repeat;text-align: center;}td{border-right: 1px solid #C1DAD7;border-bottom: 1px solid #C1DAD7;background: #fff;font-size: 11px;padding: 6px 6px 6px 12px;color: #4f6b72;text-align: center;}td.alt{background: #F5FAFA;color: #797268;}th.spec{border-left: 1px solid #C1DAD7;border-top: 0;background: #fff no-repeat;font: bold 10px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;}th.specalt{border-left: 1px solid #C1DAD7;border-top: 0;background: #f5fafa no-repeat;font: bold 10px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;color: #797268;}html > body td{font-size: 11px;}
复制代码
8.8、登入胜利后页面数据恳求(下同)

JavaWeb用户信息管理系统(附全部代码)-6.jpg


8.9、编写Userservlet
  1. packagecom.example.web;importcom.example.bean.User;importcom.example.service.UserService_1;importcom.example.service.impl.UserService_1Impl;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjava.io.IOException;importjava.util.List;/**
  2. * @program: ManageResourceSystem
  3. * @description: 处置业务
  4. * @author: Mr.Zeng
  5. * @create: 2021-05-26 23:05
  6. **/@WebServlet(urlPatterns ="/UserServlet")publicclassUserServletextendsHttpServlet{UserService_1 userService1 =newUserService_1Impl();@OverrideprotectedvoiddoGet(HttpServletRequest req,HttpServletResponse resp)throwsServletException,IOException{doPost(req, resp);}@OverrideprotectedvoiddoPost(HttpServletRequest req,HttpServletResponse resp)throwsServletException,IOException{//恳求数据的中文乱码问题
  7.         req.setCharacterEncoding("UTF-8");//客户端网页我们控制为UTF-8//通过UserService查询全部信息List<User> users = userService1.queryUsers();//把全部信息保管到Request域中
  8.         req.setAttribute("user",users);//恳求转发到LoginSuccess.jsp
  9.         req.getRequestDispatcher("/LoginSuccess.jsp").forward(req, resp);}}
复制代码
9、添加用户

9.1、编写AddServlet
  1. packagecom.example.web;importcom.example.bean.User;importcom.example.service.UserService_1;importcom.example.service.impl.UserService_1Impl;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjava.io.IOException;/**
  2. * @program: ManageResourceSystem
  3. * @description: 添加数据的处置业务
  4. * @author: Mr.Zeng
  5. * @create: 2021-05-27 08:01
  6. **/@WebServlet(urlPatterns ="/AddServlet")publicclassAddServletextendsHttpServlet{UserService_1 userService1 =newUserService_1Impl();@OverrideprotectedvoiddoPost(HttpServletRequest req,HttpServletResponse resp)throwsServletException,IOException{//获取恳求参数String username = req.getParameter("username");String password = req.getParameter("password");String name = req.getParameter("name");String email = req.getParameter("email");String telephone = req.getParameter("telephone");//调用add保管用户
  7.         userService1.add(newUser(null, username, password, name, email, telephone));//跳转到用户列表页面,此方法有表单反复提交//req.getRequestDispatcher("/UserServlet").forward(req, resp);//无反复添加
  8.         resp.sendRedirect("UserServlet");}}
复制代码
9.2、添加用户页面
  1. <%--
  2.   Created by IntelliJ IDEA.
  3.   User: zengxiong
  4.   Date: 2021/5/27
  5.   Time: 8:04
  6.   To change this template use File | Settings | File Templates.
  7. --%>
  8. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  9. <html>
  10. <head>
  11.     <title>添加用户</title>
  12.     <link type="text/css" rel="stylesheet" href="login_success_css.css">
  13.     <style>
  14.         form {
  15.             margin-top: 200px;
  16.             margin-left: 300px;
  17.         }
  18.         .but{
  19.             width: 200px;
  20.             min-height: 20px;
  21.             display: block;
  22.             background-color: #4a77d4;
  23.             border: 1px solid #3762bc;
  24.             color: #fff;
  25.             padding: 9px 14px;
  26.             font-size: 15px;
  27.             line-height: normal;
  28.             border-radius: 5px;
  29.             margin-left: 364px;
  30.             margin-top: 60px;
  31.         }
  32.     </style>
  33. </head>
  34. <body>
  35. <form action="AddServlet" method="post">
  36.     <table>
  37.         <tr>
  38.             <th scope="col" abbr="Dual 1.8">用户名</th>
  39.             <th scope="col" abbr="Dual 2">密码</th>
  40.             <th scope="col" abbr="Dual 2">姓名</th>
  41.             <th scope="col" abbr="Dual 2">邮箱</th>
  42.             <th scope="col" abbr="Dual 2">电话</th>
  43.         </tr>
  44.         <tr>
  45.             <td><label>
  46.                 <input type="text" name="username">
  47.             </label></td>
  48.             <td><label>
  49.                 <input type="text" name="password">
  50.             </label></td>
  51.             <td><label>
  52.                 <input type="text" name="name">
  53.             </label></td>
  54.             <td><label>
  55.                 <input type="text" name="email">
  56.             </label></td>
  57.             <td><label>
  58.                 <input type="text" name="telephone">
  59.             </label></td>
  60.         </tr>
  61.     </table>
  62.     <input type="submit" value="提交" class="but">
  63. </form>
  64. </body>
  65. </html>
复制代码
10、修改用户

10.1、修改信息的显示页面
  1. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  2. <%--
  3.   Created by IntelliJ IDEA.
  4.   User: zengxiong
  5.   Date: 2021/5/27
  6.   Time: 8:05
  7.   To change this template use File | Settings | File Templates.
  8. --%>
  9. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  10. <html>
  11. <head>
  12.     <title>修改用户</title>
  13.     <link type="text/css" rel="stylesheet" href="login_success_css.css">
  14.     <style>
  15.         form {
  16.             margin-top: 200px;
  17.             margin-left: 300px;
  18.         }
  19.         .but{
  20.             width: 200px;
  21.             min-height: 20px;
  22.             display: block;
  23.             background-color: #4a77d4;
  24.             border: 1px solid #3762bc;
  25.             color: #fff;
  26.             padding: 9px 14px;
  27.             font-size: 15px;
  28.             line-height: normal;
  29.             border-radius: 5px;
  30.             margin-left: 364px;
  31.             margin-top: 60px;
  32.         }
  33.     </style>
  34. </head>
  35. <body>
  36. <form method="post">
  37.     <table>
  38.         <tr>
  39.             <th scope="col" abbr="Dual 1.8">用户名</th>
  40.             <th scope="col" abbr="Dual 2">密码</th>
  41.             <th scope="col" abbr="Dual 2">姓名</th>
  42.             <th scope="col" abbr="Dual 2">邮箱</th>
  43.             <th scope="col" abbr="Dual 2">电话</th>
  44.         </tr>
  45.         <tr>
  46.             <td><label>
  47.                 <input type="text" name="username" value="${requestScope.user.userName}">
  48.             </label></td>
  49.             <td><label>
  50.                 <input type="text" name="password" value="${requestScope.user.password}">
  51.             </label></td>
  52.             <td><label>
  53.                 <input type="text" name="name" value="${requestScope.user.name}">
  54.             </label></td>
  55.             <td><label>
  56.                 <input type="text" name="email" value="${requestScope.user.email}">
  57.             </label></td>
  58.             <td><label>
  59.                 <input type="text" name="telephone" value="${requestScope.user.telephone}">
  60.             </label></td>
  61.         </tr>
  62.     </table>
  63.     <input formaction="UpdateServlet?id=${requestScope.user.id}" type="submit" value="提交" class="but">
  64. </form>
  65. </body>
  66. </html>
复制代码
10.2、编写UpdateServlet
  1. packagecom.example.web;importcom.example.bean.User;importcom.example.service.UserServiceImpl;importcom.example.service.impl.UserService;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjava.io.IOException;/**
  2. * @program: ManageResourceSystem
  3. * @description: 修改图书的业务
  4. * @author: Mr.Zeng
  5. * @create: 2021-05-27 08:02
  6. **/@WebServlet(urlPatterns ="/UpdateServlet")publicclassUpdateServletextendsHttpServlet{UserService userService1 =newUserServiceImpl();@OverrideprotectedvoiddoPost(HttpServletRequest req,HttpServletResponse resp)throwsServletException,IOException{//获取恳求参数String id = req.getParameter("id");String username = req.getParameter("username");String password = req.getParameter("password");String name = req.getParameter("name");String email = req.getParameter("email");String telephone = req.getParameter("telephone");int i =0;try{
  7.             i =Integer.parseInt(id);}catch(NumberFormatException e){
  8.             e.printStackTrace();}//修改用户
  9.         userService1.update(newUser(i, username, password, name, email, telephone));//转到用户信息列表页面
  10.         resp.sendRedirect("UserServlet");}}
复制代码
Tip :当我们要修改用户信息时,一般首先会展示原本用户的信息,在这里编写一个获取当前修改用户信息的OneUserServlet。

  • 编写OneUserServlet
    1. packagecom.example.web;importcom.example.bean.User;importcom.example.service.UserServiceImpl;importcom.example.service.impl.UserService;importjavax.servlet.*;importjavax.servlet.http.*;importjavax.servlet.annotation.*;importjava.io.IOException;@WebServlet(urlPatterns ="/OneUserServlet")publicclassOneUserServletextendsHttpServlet{UserService userService1 =newUserServiceImpl();@OverrideprotectedvoiddoGet(HttpServletRequest req,HttpServletResponse resp)throwsServletException,IOException{super.doGet(req, resp);}@OverrideprotectedvoiddoPost(HttpServletRequest request,HttpServletResponse response)throwsServletException,IOException{//获取用户idString id = request.getParameter("id");int i =0;try{
    2.             i =Integer.parseInt(id);}catch(NumberFormatException e){
    3.             e.printStackTrace();}//通过UserService查询此id用户信息User user = userService1.queryById(i);//把全部信息保管到Request域中
    4.         request.setAttribute("user",user);//恳求转发到update_list.jsp
    5.         request.getRequestDispatcher("/update_list.jsp").forward(request, response);}}
    复制代码
11、删除用户

11.1、编写DeleteServlet
  1. packagecom.example.web;importcom.example.service.UserServiceImpl;importcom.example.service.impl.UserService;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjava.io.IOException;/**
  2. * @program: ManageResourceSystem
  3. * @description: 删除数据的业务
  4. * @author: Mr.Zeng
  5. * @create: 2021-05-27 08:02
  6. **/@WebServlet(urlPatterns ="/DeleteServlet")publicclassDeleteServletextendsHttpServlet{UserService userService1 =newUserServiceImpl();@OverrideprotectedvoiddoPost(HttpServletRequest req,HttpServletResponse resp)throwsServletException,IOException{//获取恳求的参数IDString id = req.getParameter("id");int i =0;try{
  7.             i =Integer.parseInt(id);}catch(NumberFormatException e){
  8.             e.printStackTrace();}//调用userServlet1的deleteById方法
  9.         userService1.deleteById(i);//重返信息列表
  10.         resp.sendRedirect("UserServlet");}}
复制代码
12、整体展示

    登入页面

    JavaWeb用户信息管理系统(附全部代码)-7.jpg


    列表页面

    JavaWeb用户信息管理系统(附全部代码)-8.jpg


    添加页面
JavaWeb用户信息管理系统(附全部代码)-9.jpg


    修改页面

    JavaWeb用户信息管理系统(附全部代码)-10.jpg


回复

举报 使用道具

全部回复
暂无回帖,快来参与回复吧
本版积分规则 高级模式
B Color Image Link Quote Code Smilies

萌晓二
注册会员
主题 21
回复 20
粉丝 0
|网站地图
快速回复 返回顶部 返回列表