增加对用户的增删改查,这样我们这个用户登录系统就改造成了一个用户管理系统(MVC模式)
1,增加(注册)用户
(1)main.jsp
<body bgcolor="#FFFFFF"> <img src="img/logo.png"> <center> <h2>请选择操作</h2> <hr> <a href="UserServlet?flag=fy&pageNow=1">管理用户</a><br> <a href="addUser.jsp">注册用户</a><br> <a href="#">注销用户</a><br> <a href="selectUser.jsp">查找用户</a><br> <hr> </center> </body> </html>
(2)addUser.jsp
<body bgcolor="#FFFFFF"> <img src="img/logo.png"> <center> <h2>请输入用户信息</h2> <hr> <form action="UserServlet?flag=add" method="post"> 用户名: <input type="text" name="id" /> <br> 密 码: <input type="password" name="passw" /> <br> 年 龄: <input type="text" name="age" /> <br> 性 别: <input type="text" name="sex" /> <br> <input type="submit" value="注册" /> <input type="reset" value="重置" /> <hr> </form> </center> </body> </html>
(3)UserServlet.java
package com.dtg.controller; /* * 这个控制器,控制分页,增删改查等功能 * */ import java.io.IOException; import java.util.ArrayList; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.dtg.model.User; import com.dtg.model.UserCl; public class UserServlet extends HttpServlet { private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { /* * 得到用户希望显示的pageNow * */ // System.out.println("分页也用的是Servlet控制器"); String s_pageNow = request.getParameter("pageNow"); //从login_success.jsp传过来 String flag = request.getParameter("flag");//获取标记位 if("fy".equals(flag)){ try { int pageNow = Integer.parseInt(s_pageNow); UserCl userCl = new UserCl(); ArrayList<User> al = userCl.getUserByPage(pageNow); int pageCount = userCl.getPageCount(); request.setAttribute("result", al); request.setAttribute("pageCount", pageCount+""); request.setAttribute("pageNow", pageNow+""); request.getRequestDispatcher("login_success.jsp").forward(request, response); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } }else if("del".equals(flag)){ String userId = request.getParameter("userId"); try { UserCl userCl = new UserCl(); if(userCl.delUser(userId)){ //删除成功 request.getRequestDispatcher("success.jsp").forward(request, response); System.out.println("进入成功分支"); }else{ //删除失败 request.getRequestDispatcher("failure.jsp").forward(request, response); System.out.println("进入失败分支"); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }else if("update".equals(flag)){ String userId = request.getParameter("userId"); String passw = request.getParameter("passw"); String s_age = request.getParameter("age"); int age = Integer.parseInt(s_age); String sex = request.getParameter("sex"); try { UserCl userCl = new UserCl(); User user = new User(); user.setPassword(passw); user.setAge(age); user.setSex(sex); if(userCl.updateUser(user,userId)){ request.getRequestDispatcher("success.jsp").forward(request, response); }else{ request.getRequestDispatcher("failure.jsp").forward(request, response); } } catch (Exception e) { e.printStackTrace(); // TODO: handle exception } }else if("add".equals(flag)){ try { String id = request.getParameter("id"); String passw = request.getParameter("passw"); String s_age = request.getParameter("age"); int age = Integer.parseInt(s_age); String sex = request.getParameter("sex"); User user = new User(); user.setId(id); user.setPassword(passw); user.setAge(age); user.setSex(sex); UserCl userCl = new UserCl(); if(userCl.addUser(user)){ request.getRequestDispatcher("success.jsp").forward(request, response); }else{ request.getRequestDispatcher("failure.jsp").forward(request, response); } } catch (Exception e) { e.printStackTrace(); // TODO: handle exception } }else if("select".equals(flag)){ try { String id = request.getParameter("id"); String passw = request.getParameter("passw"); UserCl userCl = new UserCl(); User user = userCl.selectUser(id, passw); if(user!=null){ request.setAttribute("user", user); request.getRequestDispatcher("display.jsp").forward(request, response); }else{ request.getRequestDispatcher("failure.jsp").forward(request, response); } } catch (Exception e) { e.printStackTrace(); // TODO: handle exception } } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } }
(4)UserCl.java
package com.dtg.model; import java.sql.*; import java.util.ArrayList; public class UserCl { Connection conn = null; Statement sm = null; //prepareStatement,预处理 ResultSet rs = null; boolean flag = false; int pageSize = 3; // 页面大小 int pageNow = 1;//默认显示第一页 int rowCount = 0;//总记录数,从数据库中查询 int pageCount = 0; //页数,(rowCount/pageSize)+1 //关闭连接 public void closeConn() throws SQLException{ try { if(rs != null){ rs.close(); rs = null; } if(sm!=null){ sm.close(); sm = null; } if(conn!=null){ conn.close(); conn = null; } } catch (Exception e) { e.printStackTrace(); // TODO: handle exception } } public boolean checkUser(String id, String passw){ try { ConnDB conndb =new ConnDB(); conn = conndb.getConn(); sm = conn.createStatement(); rs = sm .executeQuery("select password from user2 where id ='" + id + "'"); if (rs.next()) { //确保用户名id是存在的 if (rs.getString(1).equals(passw)) { //密码正确,用户合法 flag = true; } else { //密码不正确,用户不合法 flag = false; } } else { //用户不存在 flag = false; } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); }finally{ try { this.closeConn(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return flag; } /** * 得到分页的页数 * @return */ public int getPageCount(){ try { conn = new ConnDB().getConn(); sm = conn.createStatement(); rs = sm.executeQuery("select count(*) from user2"); if (rs.next()) { rowCount = rs.getInt(1); } // 计算pageCount if (rowCount % pageSize == 0) { pageCount = rowCount / pageSize; } else { pageCount = rowCount / pageSize + 1; } } catch (Exception e) { // TODO: handle exception }finally{ try { this.closeConn(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return pageCount; } /** * 取要分页显示的数据 */ public ArrayList<User> getUserByPage(int pageNow){ ArrayList<User> al = new ArrayList<User>(); try { conn = new ConnDB().getConn(); sm = conn.createStatement(); rs = sm.executeQuery("select top "+ pageSize+ " * from user2 where userId not in (select top "+ pageSize*(pageNow-1)+" userId from user2 order by userId) order by userId"); while(rs.next()){ User user = new User(); user.setUserId(rs.getInt(1)); user.setId(rs.getString(2)); user.setPassword(rs.getString(3)); user.setAge(rs.getInt(4)); user.setSex(rs.getString(5)); //添加user到动态数组中 al.add(user); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); }finally{ try { this.closeConn(); } catch (Exception e2) { e2.printStackTrace(); // TODO: handle exception } } return al; } /** * 删除用户 */ public boolean delUser(String userId){ boolean b = false; try { conn = new ConnDB().getConn(); sm = conn.createStatement(); // 删除或更新几条,返回数字几 int a = sm.executeUpdate("delete from user2 where userId = '"+userId+"'"); if(a==1){ b = true;//删除成功 } } catch (Exception e) { e.printStackTrace(); // TODO: handle exception }finally{ try { this.closeConn(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return b; } /** * 修改用户信心 */ public boolean updateUser(User user,String userId){ boolean b = false; try { conn = new ConnDB().getConn(); sm = conn.createStatement(); int a = sm.executeUpdate("update user2 set password ='"+user.getPassword()+"',age='"+user.getAge()+"',sex='"+user.getSex()+"' where userId = '"+userId+"'"); if(a==1){ b = true; } } catch (Exception e) { e.printStackTrace(); // TODO: handle exception } return b; } /** * 注册新用户 */ public boolean addUser(User user){ boolean b = false; try { conn = new ConnDB().getConn(); sm = conn.createStatement(); // 删除或更新几条,返回数字几 int a = sm.executeUpdate("insert into user2 (id,password,age,sex) values ('"+user.getId()+"','"+user.getPassword()+"','"+user.getAge()+"','"+user.getSex()+"')"); if(a==1){ b = true; } } catch (Exception e) { e.printStackTrace(); // TODO: handle exception } return b; } /** * 查找用户 */ public User selectUser(String id, String passw){ User user = new User(); try { conn = new ConnDB().getConn(); sm = conn.createStatement(); // 根据用户id和password检索用户 rs = sm.executeQuery("select id,age,sex from user2 where id='"+id+"' and password='"+passw+"'"); while(rs.next()){ user.setId(rs.getString(1)); user.setAge(rs.getInt(2)); user.setSex(rs.getString(3)); } } catch (Exception e) { e.printStackTrace(); // TODO: handle exception } return user; } }
(5)login_success.jsp
<script type="text/javascript"> <!-- function check(){ return window.confirm("您确定要注销吗?"); } --> </script> </head> <body bgcolor="#FFFFFF"> <% String id = (String)session.getAttribute("id"); if(id==null){ //返回登陆界面(目前学过的内置对象response,request,out,session) response.sendRedirect("login.jsp?err=1"); return ; } %> <img src="img/logo.png"> <center> <h2> 登陆成功 ,欢迎[<font color="red"><%=id %></font>]光临,<a href="/jsp1/index.jsp">返回重新登录</a> </h2> <hr> <% //接受用户想要显示的页面 String s_pageNow = (String)request.getAttribute("pageNow"); int pageNow = Integer.parseInt(s_pageNow); //要显示的数据,用request来取 ArrayList<User> al = (ArrayList<User>)request.getAttribute("result"); // object -->String -->int String s_pageCount = (String)request.getAttribute("pageCount"); int pageCount = Integer.parseInt(s_pageCount); String []color = {"#b2d235","#f47920"}; //用表格显示 %> <table border="1"> <tr bgcolor="#f47920"><td>userId</td><td>ID</td><td>PASSWORD</td><td>AGE</td><td>SEX</td> <td>Delete</td><td>Update</td> </tr> <% for(int i=0;i<al.size();i++){ User user = (User)al.get(i); %> <tr bgcolor="<%=color[i%2] %>"><td><%=user.getUserId() %></td><td><%=user.getId() %></td> <td><%=user.getPassword() %></td> <td><%=user.getAge() %></td><td><%=user.getSex() %></td> <td><a onclick="return check()" href="UserServlet?flag=del&userId=<%=user.getUserId() %>">Delete</a></td> <td><a href="updateUser.jsp?userId=<%=user.getUserId() %>">Update</a></td> </tr> <% } %> </table> <% //显示超链接 if(pageNow != 1){ out.print("<a href=UserServlet?flag=fy&pageNow="+(pageNow-1)+" >上一页</a>"); } if(pageNow > 6 && pageNow <= (pageCount-4)){ for(int i=pageNow-5;i<=pageNow+4;i++){ out.println("<a href=UserServlet?flag=fy&pageNow="+i+">["+i+"]</a>"); } }else if(pageNow >(pageCount-4) ){ for(int i=pageCount-9;i<=pageCount;i++){ out.println("<a href=UserServlet?flag=fy&pageNow="+i+">["+i+"]</a>"); } }else{ for(int i=1;i<=10;i++){ //要是pageCount > 10 则不显示全部,只显示前10页的超链接 //for(int i=1;i<=pageCount;i++) out.println("<a href=UserServlet?flag=fy&pageNow="+i+">["+i+"]</a>"); } } if(pageNow != pageCount){ out.print("<a href=UserServlet?flag=fy&pageNow="+(pageNow+1)+">下一页</a>"); } %> </center> </body> </html>
(6)updateUser.jsp
</head> <body bgcolor="#FFFFFF"> <img src="img/logo.png"> <center> <h2>请输入要修改的用户信息</h2> <hr> <form action="UserServlet?flag=update&userId=<%=request.getParameter("userId") %>" method="post"> 密 码: <input type="password" name="passw" /> <br> 年 龄: <input type="text" name="age" /> <br> 性 别: <input type="text" name="sex" /> <br> <input type="submit" value="更改" /> <input type="reset" value="重置" /> <hr> </form> </center> </body> </html>
相关推荐
"增删改查管理系统"通常是指一个用于管理和操作数据库中数据的软件系统,它提供了用户友好的界面,使得非技术人员也能方便地进行数据操作。 在设计这样一个系统时,首先要明确系统的目标用户和数据类型。例如,提供...
在IT行业中,增删改查(CRUD,Create, Read, Update, Delete)是数据库操作的基础,也是大多数应用系统的常用功能。"增删改查系统"通常是指一个能够执行这些基本数据库操作的软件模块,它使得开发者能够方便地管理...
Android+SQlite 简单的《学生信息管理系统》(实现基本增删改查) 此代码中还有与其相对应的apk文件(在SIMS/bin目录中),大家可先行放手机上看一下效果。 希望对初学者有一定的帮助。(本人自己编写)
在IT行业中,"增删改查"(CRUD)是数据操作的基础,它代表了创建(Create)、读取(Read)、更新(Update)和删除(Delete)四种基本操作。这四个术语广泛应用于数据库管理和Web应用开发中。增删改查图标通常被用来...
在本项目中,"C#实现增删改查 学生管理系统"是一个使用C#编程语言构建的应用程序,主要用于管理学生信息。这个系统基于Access数据库,提供了对学生数据的基本操作,包括添加新学生、删除现有学生、修改学生信息以及...
【小区业主管理系统(增删改查)】是一个基于C#编程语言和.NET框架实现的简易版MVC三层架构的应用程序,主要用于实现小区物业管理中的数据管理功能。在这个系统中,核心功能包括对业主信息的增加、删除、修改和查询...
这个系统是公司参加展会,基于ssm来做的基本的增删改查管理系统。可以看到每个公司来参加展会的人数,人员,职位信息,公司负责人,联系方式等等。系统中技术主要采用了,ajax jquery json ,有页面回显,其中性别...
"增删改查"是任何数据管理系统的基石。在React中,我们可以使用事件处理函数来触发这些操作。例如,当用户点击“添加”按钮时,一个handleAdd函数会被调用,负责收集表单数据并将其添加到数据列表中。同样,对于删除...
Delphi增删改查例子 Delphi是一种功能强大且广泛应用的编程语言,特别是在Windows平台上。Delphi增删改查小模块是Delphi编程语言中的一种常见的应用模块,本文将对Delphi增删改查小模块进行详细的解释和分析。 一...
总的来说,"javaweb增删改查(含源码).zip"这个项目为学习者提供了一个完整的JavaWeb应用实例,涵盖了从基础的JSP和Servlet到更高级的MVC设计模式的实践应用,同时涉及数据库操作和数据管理的核心技术。通过深入...
在IT行业中,"增删改查"(CRUD)是数据库操作的基础,代表着创建(Create)、读取(Read)、更新(Update)和删除(Delete)四种基本功能。这些操作广泛应用于各种应用程序,从简单的数据管理工具到复杂的业务系统。...
在本项目中,"php图书管理系统实现增删改查"是一个基于PHP开发的简单图书管理应用,旨在帮助用户轻松地管理图书数据,包括添加新图书、删除现有图书、修改图书信息以及查询图书详情。这个系统对于初学者来说,是理解...
《C# MVC 酒店管理系统中的增删改查实现详解》 在信息化时代,酒店管理系统的高效运作对于提升服务质量、优化运营效率至关重要。本文将深入探讨基于C# MVC技术构建的酒店管理系统中的核心功能——增删改查(CRUD)...
【标题】"jsp+serlvet增删改查员工系统"是基于Java Web技术构建的员工信息管理系统。这个系统利用了JavaServer Pages (JSP) 和Servlet这两种核心技术,结合MySQL数据库,实现对员工数据的全面操作,包括添加、删除、...
这个“bootstrap增删改查页面”显然与使用Bootstrap来设计和实现数据管理界面有关,通常包括添加、编辑、删除和查询等功能。下面我们将深入探讨Bootstrap在构建这种页面时的关键知识点。 1. **响应式布局**:...
本系统,名为"学生管理系统登录注册增删改查全都都有",是一个集成了全面功能的平台,旨在高效地管理和处理学生信息,与数据库紧密集成,为教学管理工作提供了极大的便利。以下将详细探讨该系统的几个核心知识点。 ...
基于SSM(spring+springmvc+mybatis+Bootstrap)图书系统的增删改查,这个项目可以用来练手,也可以用来交学校布置的作业 前端使用框架Bootstrap,简单易上手,即使不会前端的也不用怕看不懂 后端使用框架,Spring+...
这是一个使用Python3编程语言开发的学生信息管理系统,它利用tkinter库构建GUI图形用户界面,并通过操作Excel文件来实现对学生成绩数据的增删改查功能。系统的主要目标是为教育机构或教师提供一个简单易用的工具,...
【Java编写的简单的图书管理系统(增删改查)】是一个基于Java技术的图书管理软件,主要功能涵盖了图书信息的添加、删除、修改和查询。这个系统没有采用任何框架,而是直接利用了Java的基础特性以及相关的Web技术来...
《学生管理系统(增删改查)——Java与MySQL的完美结合》 在信息化时代,学生管理系统的应用已经广泛普及,它极大地提高了教育机构的工作效率,简化了学生信息的管理流程。本项目“学生管理系统(增删改查)”采用Java...