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

0 评论

0 收藏

分享

JavaWeb项目smbms超市订单管理系统

项目简介

smbms超市订单管理系统,主要用于用户管理、订单管理、供给商管理等功能,是学习JavaWeb练习的一个小项目
这个博客只讲了部分功能(用户登录界面,和密码修改界面),以及用户管理的实现。
主要写的后端的实现。
使用技术

Maven:管理依赖打包项目
Mysql:存储业务数据
HTML:制作前端登录页面
Servlet:后台效劳资源完成相关业务
Tomcat:web项目部署的效劳器
Filter:统一会话管理所有登录情况
数据库

JavaWeb项目smbms超市订单管理系统-1.jpg


根本框架搭建

创建dao层(数据耐久层),pojo层(简单的Java对象),service(业务层),servlet(效劳器层),tools(工具层),filter(过滤层)
dao层主要停止数据库操作,Service(业务层)调用dao层,并将获得的数据传给servlet层,
servlet层负责前后端交互,从前端获取数据,传到后端,并将后端获取的数据返回给前端
service层捕获异常,停止事务处置
事务处置:调用不同dao的多个方法,必需使用同一个connection(connection作为参数传送)事务完成之后,需要在service层停止connection的关闭,在dao层关闭(PreparedStatement和ResultSet对象)
pojo层主要是与数据库对应的一些对象
过滤器层首先要写编码过滤层,防止前后端编码不一致乱码情况
项目页面

登录界面
JavaWeb项目smbms超市订单管理系统-2.jpg


系统首页
JavaWeb项目smbms超市订单管理系统-3.jpg


密码修改页面
JavaWeb项目smbms超市订单管理系统-4.jpg


用户管理首页

JavaWeb项目smbms超市订单管理系统-5.jpg


项目搭建

1、搭建一个maven web项目
2、配置tomcat
3、测试项目能否跑起来
4、导入项目中会遇到的jar包
jsp,servlet,mysql驱动,jstl,stand…
5、创建项目包构造
JavaWeb项目smbms超市订单管理系统-6.jpg


6、编写实体类
ORM映射:表-类映射
7、编写根底公共类
​ 1、数据库配置文件
  1. driver=com.mysql:jdbc.Driver
  2. url=jdbc:mysql://localhost:3306?useUnicode=true&characterEncoding=utf-8
  3. username=root
  4. password=123456
复制代码
3、编写字符编码过滤器
主要是为了前后端连接不呈现乱码情况
  1. publicclassCharacterEncodingimplementsFilter{@Overridepublicvoidinit(FilterConfig filterConfig)throws ServletException {}@OverridepublicvoiddoFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)throws IOException, ServletException {
  2.        servletRequest.setCharacterEncoding("utf-8");
  3.         servletResponse.setCharacterEncoding("utf-8");
  4.         filterChain.doFilter(servletRequest,servletResponse);}@Overridepublicvoiddestroy(){}}
复制代码
8、导入静态资源
登录功能实现

JavaWeb项目smbms超市订单管理系统-7.jpg


1、编写前端页面
    先在web.xml中设置welcome-file-list前端页面 login.jsp
  • loginservlet
      request.getparam()获取前端数据调用业务层匹配胜利的话设置session,页面重定向,否则,提示错误(设置页面error属性)

2、设置首页
  1. <!--设置欢送页面    --><welcome-file-list><welcome-file>login.jsp</welcome-file></welcome-file-list>
复制代码
3、编写dao层登录用户登录的接口
依照数据库创建对象user类
  1. publicinterfaceUserDao{//得到要登录的用户public User getLoginUser(Connection connection,String userCode)throws Exception;}
复制代码
BaseDao类
数据库操作的方法(连接、查询、更新)
  1. package dao;import java.io.IOException;import java.io.InputStream;import java.sql.*;import java.util.Properties;publicclassBaseDao{privatestatic String driver;privatestatic String url;privatestatic String username;privatestatic String password;//静态代码块,类加载的时候就初始化了static{
  2.         Properties properties =newProperties();//通过类加载器读取对应的资源
  3.         InputStream is = BaseDao.class.getClassLoader().getResourceAsStream("db.properties");try{
  4.             properties.load(is);}catch(IOException e){
  5.             e.printStackTrace();}
  6.         driver = properties.getProperty("driver");
  7.         url = properties.getProperty("url");
  8.         username = properties.getProperty("username");
  9.         password = properties.getProperty("password");}//获取数据库的链接publicstatic Connection getConnection(){
  10.         Connection connection = null;try{
  11.             Class.forName("com.mysql.jdbc.Driver");
  12.             connection = DriverManager.getConnection(url, username, password);}catch(Exception e){
  13.             e.printStackTrace();}return connection;}//编写查询公共方法publicstatic ResultSet execute(Connection connection,PreparedStatement preparedStatement,ResultSet resultSet,String sql,Object[] params)throws SQLException {//预编译的sql,在后面直接执行就可以了
  14.         preparedStatement = connection.prepareStatement(sql);for(int i =0; i < params.length; i++){//setObject,占位符从1开端,但是我们的数组是从0开端!
  15.             preparedStatement.setObject(i+1,params[i]);}
  16.         resultSet = preparedStatement.executeQuery();return resultSet;}//编写增删改公共方法publicstaticintexecute(Connection connection,String sql,Object[] params,PreparedStatement preparedStatement)throws SQLException {
  17.         preparedStatement = connection.prepareStatement(sql);for(int i =0; i < params.length; i++){//setObject,占位符从1开端,但是我们的数组是从0开端!
  18.             preparedStatement.setObject(i+1,params[i]);}int updateRows = preparedStatement.executeUpdate();return updateRows;}
复制代码
4、编写dao接口的实现类
  1. publicclassUserDaoImplimplementsUserDao{@Overridepublic User getLoginUser(Connection connection, String userCode)throws Exception {// TODO Auto-generated method stub
  2.         PreparedStatement pstm = null;
  3.         ResultSet rs = null;
  4.         User user = null;if(null != connection){
  5.             String sql ="select * from smbms_user where userCode=?";
  6.             Object[] params ={userCode};
  7.             rs = BaseDao.execute(connection, pstm, rs, sql, params);if(rs.next()){
  8.                 user =newUser();
  9.                 user.setId(rs.getInt("id"));
  10.                 user.setUserCode(rs.getString("userCode"));
  11.                 user.setUserName(rs.getString("userName"));
  12.                 user.setUserPassword(rs.getString("userPassword"));
  13.                 user.setGender(rs.getInt("gender"));
  14.                 user.setBirthday(rs.getDate("birthday"));
  15.                 user.setPhone(rs.getString("phone"));
  16.                 user.setAddress(rs.getString("address"));
  17.                 user.setUserRole(rs.getInt("userRole"));
  18.                 user.setCreatedBy(rs.getInt("createdBy"));
  19.                 user.setCreationDate(rs.getTimestamp("creationDate"));
  20.                 user.setModifyBy(rs.getInt("modifyBy"));
  21.                 user.setModifyDate(rs.getTimestamp("modifyDate"));}
  22.             BaseDao.closeResource(null, pstm, rs);}return user;}}
复制代码
5、编写业务层接口
  1. publicinterfaceUserService{//用户登录public User login(String userCode,String userPassword);}
复制代码
6、编写业务层接口的实现类
  1. publicclassUserServiceImplimplementsUserService{//业务层都会调用dao层,所以我们要引入dao层private UserDao userDao;publicUserServiceImpl(){
  2.          userDao =newUserDaoImpl();}public User login(String userCode,String password){
  3.         Connection connection=null;
  4.         User user=null;//通过业务层调用对应的详细的数据库操作try{
  5.             connection= BaseDao.getConnection();
  6.             user=userDao.getLoginUser(connection,userCode);}catch(Exception e){
  7.             e.printStackTrace();}finally{
  8.             BaseDao.closeResource(connection,null,null);}return user;}
复制代码
7、编写servlet类
  1. publicclassLoginServletextendsHttpServlet{//Servlet:控制层,调用业务层代码@OverrideprotectedvoiddoGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {
  2.         System.out.println("LoginServlet--start....");//获取用户名和密码
  3.         String userCode = req.getParameter("userCode");
  4.         String userPassword = req.getParameter("userPassword");//和数据库中的密码停止对比,调用业务层;
  5.         UserService userService =newUserServiceImpl();
  6.         User user = userService.login(userCode, userPassword);//这里已经把登录的人给查出来了
  7.         System.out.println(userCode);
  8.         System.out.println(userPassword);if(user!=null){//查有此人,可以登录//将用户的信息放到Session中;
  9.             req.getSession().setAttribute(Constants.USER_SESSION,user);//跳转到主页重定向
  10.             resp.sendRedirect("jsp/frame.jsp");}else{//查无此人,无法登录//转发回登录页面,顺带提示它,用户名或者密码错误;
  11.             req.setAttribute("error","用户名或者密码不正确");
  12.             req.getRequestDispatcher("login.jsp").forward(req,resp);}}@OverrideprotectedvoiddoPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {doGet(req, resp);}}
复制代码
8、注册servlet
写完一个servlet记得去注册
  1. <servlet><servlet-name>LoginServlet</servlet-name><servlet-class>servlet.user.LoginServlet</servlet-class></servlet><servlet-mapping><servlet-name>LoginServlet</servlet-name><url-pattern>/login.do</url-pattern></servlet-mapping>
复制代码
9、测试访问,确保以上功能实现
登录功能优化

移除session
  1. publicclassLogoutServletextendsHttpServlet{@OverrideprotectedvoiddoGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {//移除用户的session
  2.         req.getSession().removeAttribute(Constants.USER_SESSION);
  3.         resp.sendRedirect(req.getContextPath()+"/login.jsp");//返回登录页面}@OverrideprotectedvoiddoPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {super.doPost(req, resp);}}
复制代码
注册xml
  1. <servlet><servlet-name>LogoutServlet</servlet-name><servlet-class>servlet.user.LogoutServlet</servlet-class></servlet><servlet-mapping><servlet-name>LogoutServlet</servlet-name><url-pattern>/jsp/logout.do</url-pattern></servlet-mapping>
复制代码
登录拦截优化

正常情况下退出系统后是登录不了的,但是目前直接输入地址还是可以登录。所以要停止优化
编写一个过滤器并注册
  1. publicclassSysFilterimplementsFilter{publicvoidinit(FilterConfig filterConfig)throws ServletException {}publicvoiddoFilter(ServletRequest req, ServletResponse resp, FilterChain chain)throws IOException, ServletException {
  2.         HttpServletRequest request =(HttpServletRequest) req;
  3.         HttpServletResponse response =(HttpServletResponse) resp;//过滤器,从Session中获取用户,
  4.         User user =(User) request.getSession().getAttribute(Constants.USER_SESSION);if(user==null){//已经被移除或者注销了,或者未登录
  5.             response.sendRedirect("/smbms/error.jsp");}else{
  6.             chain.doFilter(req,resp);}}publicvoiddestroy(){}}
复制代码
  1. <filter><filter-name>Sysfilter</filter-name><filter-class>filter.SysFilter</filter-class></filter><filter-mapping><filter-name>Sysfilter</filter-name><url-pattern>/jsp/*</url-pattern></filter-mapping>
复制代码
密码修改

导入前端素材
从底层开端写

JavaWeb项目smbms超市订单管理系统-8.jpg


UserDao接口实现类
  1. //修改当前用户密码//增删改都会影响数据库的变化,所以是返回int类型,说明有几行受到了影响@OverridepublicintupdatePwd(Connection connection,int id,int password)throws Exception {int updateRow=0;
  2.        PreparedStatement pstm=null;if(connection!=null){
  3.            String sql="UPDATE `smbms_user` SET `userPassword`=? WHERE `id`=? ";
  4.            Object[] params={password,id};
  5.            BaseDao.execute(connection,sql,params,pstm);}
  6.        BaseDao.closeResource(null,pstm,null);return updateRow;}
复制代码
UserService层
停止事务处置,调用dao层,查找servlet层传来的数据的相关用户,并于servlet层数据停止对比
  1. //修改密码publicbooleanupdatePwd(int id,int pwd);
复制代码
UserService层实现类
  1. publicbooleanupdatePwd(int id,int pwd){
  2.         Connection connection=null;boolean flag=false;try{
  3.             connection = BaseDao.getConnection();if(userDao.updatePwd(connection, id, pwd)>0){
  4.                 flag=true;}}catch(Exception e){
  5.             e.printStackTrace();}finally{
  6.             BaseDao.closeResource(connection,null,null);}return flag;}
复制代码
编写修改密码的servlet类
获取数据库用户数据,并设置session属性userlist
  1. publicclassUserServletextendsHttpServlet{@OverrideprotectedvoiddoGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {
  2.         String method = req.getParameter("method");if(method.equals("savepwd")&&method!=null){this.modifyPwd(req,resp);}elseif(method.equals("pwdmodify")&&method!=null){this.pwdmodify(req,resp);}}@OverrideprotectedvoiddoPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {doGet(req, resp);}//修改密码publicvoidmodifyPwd(HttpServletRequest req, HttpServletResponse resp){//获取要修改的密码和id
  3.         Object attribute = req.getSession().getAttribute(Constants.USER_SESSION);
  4.         String newpassword = req.getParameter("newpassword");boolean flag =false;//判断这个session和新密码是否存在if(attribute!=null &&!StringUtils.isNullOrEmpty(newpassword)){
  5.             UserServiceImpl userService =newUserServiceImpl();
  6.             flag = userService.modifyPwd(((User) attribute).getId(), newpassword);if(flag){
  7.                 req.setAttribute("message","修改密码胜利");//密码修改胜利移除当前session
  8.                 req.getSession().removeAttribute(Constants.USER_SESSION);}else{
  9.                 req.setAttribute("message","密码修改失败");}}else{//新密码有问题
  10.             req.setAttribute("message","新密码有问题");}try{
  11.             req.getRequestDispatcher("pwdmodify.jsp").forward(req,resp);}catch(ServletException e){
  12.             e.printStackTrace();}catch(IOException e){
  13.             e.printStackTrace();}}
复制代码
注册userservlet
  1. <servlet><servlet-name>userServlet</servlet-name><servlet-class>servlet.user.UserServlet</servlet-class></servlet><servlet-mapping><servlet-name>userServlet</servlet-name><url-pattern>/jsp/user.do</url-pattern></servlet-mapping>
复制代码
密码修改胜利界面
JavaWeb项目smbms超市订单管理系统-9.jpg


优化密码修改使用Ajax
AJAX = 异步 JavaScript 和 XML。
AJAX 是一种用于创建快速动态网页的技术。
通过在后台与效劳器停止少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分停止更新。
传统的网页(不使用 AJAX)假设需要更新内容,必需重载整个网页面。
有很多使用 AJAX 的应用程序案例:新浪微博、Google 地图、开心网等等。
使用jQuery需要导入jQuery,使用Vue导入Vue,两个都用,自己原生态实现
JavaWeb项目smbms超市订单管理系统-10.jpg


三步曲:
1、编写对应处置的controller,返回消息或者字符串或者json格式的数据
2、编写ajax恳求
    url:controller恳求data:键值对success:回调函数
3、给ajax绑定事件,点击。click,失去焦点onblur,键盘弹起keyup
用户管理实现

思路:
JavaWeb项目smbms超市订单管理系统-11.jpg


1、导入分页的工具类
2、用户列表页面导入
获取用户数量

1、UserDao
  1. //查询用户总数publicintgetUserCount(Connection connection,String username ,int userRole)throws SQLException;
复制代码
2、UserDaoImpl
  1. publicintgetUserCount(Connection connection, String username,int userRole)throws SQLException {//根据用户名或者角色查询用户总数
  2.         PreparedStatement pstm = null;
  3.         ResultSet rs = null;int count =0;if(connection!=null){
  4.             StringBuffer sql =newStringBuffer();
  5.             sql.append("select count(1) as count from smbms_user u,smbms_role r where u.userRole = r.id");
  6.             ArrayList<Object> list =newArrayList<Object>();//寄存我们的参数if(!StringUtils.isNullOrEmpty(username)){
  7.                 sql.append(" and u.userName like ?");
  8.                 list.add("%"+username+"%");//index:0}if(userRole>0){
  9.                 sql.append(" and u.userRole = ?");
  10.                 list.add(userRole);//index:1}//怎么把List转换为数组
  11.             Object[] params = list.toArray();
  12.             System.out.println("UserDaoImpl->getUserCount:"+sql.toString());//输出最后完好的SQL语句
  13.             rs = BaseDao.execute(connection, pstm, rs, sql.toString(), params);if(rs.next()){
  14.                 count = rs.getInt("count");//从结果集中获取最终的数量}
  15.             BaseDao.closeResource(null,pstm,rs);}return count;}
复制代码
3、UserService
  1. //查询记录数publicintgetUserCount(String username,int userRole);
复制代码
4、UserServiceImpl
  1. publicintgetUserCount(String username,int userRole){
  2.             Connection connection = null;int count =0;try{
  3.                 connection = BaseDao.getConnection();
  4.                 count = userDao.getUserCount(connection, username, userRole);}catch(SQLException e){
  5.                 e.printStackTrace();}finally{
  6.                 BaseDao.closeResource(connection,null,null);}return count;}
复制代码
获取用户列表

1、userdao
  1. //通过条件查询-userListpublic List<User>getUserList(Connection connection, String userName,int userRole,int currentPageNo,int pageSize)throws Exception;
复制代码
2、userdaoImpl
  1. public List<User>getUserList(Connection connection, String userName,int userRole,int currentPageNo,int pageSize)throws Exception {
  2.         PreparedStatement pstm = null;
  3.             ResultSet rs = null;
  4.             List<User> userList =newArrayList<User>();if(connection != null){
  5.                 StringBuffer sql =newStringBuffer();
  6.                 sql.append("select u.*,r.roleName as userRoleName from smbms_user u,smbms_role r where u.userRole = r.id");
  7.                 List<Object> list =newArrayList<Object>();if(!StringUtils.isNullOrEmpty(userName)){
  8.                     sql.append(" and u.userName like ?");
  9.                     list.add("%"+userName+"%");}if(userRole >0){
  10.                     sql.append(" and u.userRole = ?");
  11.                     list.add(userRole);}
  12.                 sql.append(" order by creationDate DESC limit ?,?");
  13.                 currentPageNo =(currentPageNo-1)*pageSize;
  14.                 list.add(currentPageNo);
  15.                 list.add(pageSize);
  16.                 Object[] params = list.toArray();
  17.                 System.out.println("sql ----> "+ sql.toString());
  18.                 rs = BaseDao.execute(connection, pstm, rs, sql.toString(), params);while(rs.next()){
  19.                     User _user =newUser();
  20.                     _user.setId(rs.getInt("id"));
  21.                     _user.setUserCode(rs.getString("userCode"));
  22.                     _user.setUserName(rs.getString("userName"));
  23.                     _user.setGender(rs.getInt("gender"));
  24.                     _user.setBirthday(rs.getDate("birthday"));
  25.                     _user.setPhone(rs.getString("phone"));
  26.                     _user.setUserRole(rs.getInt("userRole"));
  27.                     _user.setUserRoleName(rs.getString("userRoleName"));
  28.                     userList.add(_user);}
  29.                 BaseDao.closeResource(null, pstm, rs);}return userList;}
复制代码
3、userservice
  1. //根据条件查询用户列表public List<User>getUserList(String queryUserName,int queryUserRole,int currentPageNo,int pageSize);
复制代码
4、userserviceImpl
  1. public List<User>getUserList(String queryUserName,int queryUserRole,int currentPageNo,int pageSize){
  2.         Connection connection = null;
  3.         List<User> userList = null;
  4.         System.out.println("queryUserName ---- > "+ queryUserName);
  5.         System.out.println("queryUserRole ---- > "+ queryUserRole);
  6.         System.out.println("currentPageNo ---- > "+ currentPageNo);
  7.         System.out.println("pageSize ---- > "+ pageSize);try{
  8.             connection = BaseDao.getConnection();
  9.             userList = userDao.getUserList(connection, queryUserName,queryUserRole,currentPageNo,pageSize);}catch(Exception e){
  10.             e.printStackTrace();}finally{
  11.             BaseDao.closeResource(connection, null, null);}return userList;}
复制代码
获取角色操作

1、roledao
  1. publicinterfaceRoleDao{//获取角色列表public List<Role>getRoleList(Connection connection)throws SQLException;}
复制代码
2、roledaoImpl
  1. publicclassRoleDaoImplimplementsRoleDao{//获取角色列表public List<Role>getRoleList(Connection connection)throws SQLException {
  2.         PreparedStatement pstm = null;
  3.         ResultSet resultSet = null;
  4.         ArrayList<Role> roleList =newArrayList<Role>();if(connection!=null){
  5.             String sql ="select * from smbms_role";
  6.             Object[] params ={};
  7.             resultSet = BaseDao.execute(connection, pstm, resultSet, sql, params);while(resultSet.next()){
  8.                 Role _role =newRole();
  9.                 _role.setId(resultSet.getInt("id"));
  10.                 _role.setRoleCode(resultSet.getString("roleCode"));
  11.                 _role.setRoleName(resultSet.getString("roleName"));
  12.                 roleList.add(_role);}
  13.             BaseDao.closeResource(null,pstm,resultSet);}return roleList;}}
复制代码
3、roleservice
  1. //获取角色列表public List<Role>getRoleList();
复制代码
4、roleserviceImpl
  1. publicclassRoleServiceImplimplementsRoleService{//引入Daoprivate RoleDao roleDao;publicRoleServiceImpl(){
  2.         roleDao =newRoleDaoImpl();}public List<Role>getRoleList(){
  3.         Connection connection = null;
  4.         List<Role> roleList = null;try{
  5.             connection = BaseDao.getConnection();
  6.             roleList = roleDao.getRoleList(connection);}catch(SQLException e){
  7.             e.printStackTrace();}finally{
  8.             BaseDao.closeResource(connection,null,null);}return roleList;}}
复制代码
userservlet中添加query方法
页面没有实现分页,而是全部显示在了一页,参与分页查询
  1. //query方法publicvoidquery(HttpServletRequest req, HttpServletResponse resp){//查询用户列表//从前端获取数据;
  2.         String queryUserName = req.getParameter("queryname");
  3.         String temp = req.getParameter("queryUserRole");
  4.         String pageIndex = req.getParameter("pageIndex");int queryUserRole =0;//获取用户列表
  5.         UserServiceImpl userService =newUserServiceImpl();
  6.         List<User> userList = null;//第一次走这个恳求,一定是第一页,页面大小固定的;int pageSize =5;//可以把这个些到配置文件中,方便后期修改;int currentPageNo =1;if(queryUserName ==null){
  7.             queryUserName ="";}if(temp!=null &&!temp.equals("")){
  8.             queryUserRole = Integer.parseInt(temp);//给查询赋值!0,1,2,3}if(pageIndex!=null){
  9.             currentPageNo = Integer.parseInt(pageIndex);}//获取用户的总数 (分页:  上一页,下一页的情况)int totalCount = userService.getUserCount(queryUserName, queryUserRole);//总页数支持
  10.         PageSupport pageSupport =newPageSupport();
  11.         pageSupport.setCurrentPageNo(currentPageNo);
  12.         pageSupport.setPageSize(pageSize);
  13.         pageSupport.setTotalCount(totalCount);int totalPageCount =((int)(totalCount/pageSize))+1;//控制首页和尾页//假设页面要小于1了,就显示第一页的东西if(currentPageNo<1){
  14.             currentPageNo =1;}elseif(currentPageNo>totalPageCount){//当前页面大于了最后一页;
  15.             currentPageNo = totalPageCount;}//获取用户列表展示
  16.         userList = userService.getUserList(queryUserName, queryUserRole, currentPageNo, pageSize);
  17.         req.setAttribute("userList",userList);
  18.         RoleServiceImpl roleService =newRoleServiceImpl();
  19.         List<Role> roleList = roleService.getRoleList();
  20.         req.setAttribute("roleList",roleList);
  21.         req.setAttribute("totalCount",totalCount);
  22.         req.setAttribute("currentPageNo",currentPageNo);
  23.         req.setAttribute("totalPageCount",totalPageCount);
  24.         req.setAttribute("queryUserName",queryUserName);
  25.         req.setAttribute("queryUserRole",queryUserRole);//返回前端try{
  26.             req.getRequestDispatcher("userlist.jsp").forward(req,resp);}catch(ServletException e){
  27.             e.printStackTrace();}catch(IOException e){
  28.             e.printStackTrace();}}
复制代码
差不多登录和用户管理模块就是这些了

回复

举报 使用道具

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

心如不暖之夏
注册会员
主题 15
回复 21
粉丝 0
|网站地图
快速回复 返回顶部 返回列表