当前位置: 首页 > wzjs >正文

程序员源码网站设计案例网

程序员源码网站,设计案例网,门户网站 模板,电子商务网站业务流程图文章目录 登出、注册、注销、修改登出操作的实现逻辑及方式防止用户登出后可以继续访问修改密码功能实现导入jsp实现Dao层数据接口实现Service层业务接口注册Servlet 注册和注销 用户的方式导入jsp实现Dao层的数据逻辑实现Service逻辑注册Servlet 登出、注册、注销、修改 登出…

文章目录

  • 登出、注册、注销、修改
    • 登出操作的实现逻辑及方式
    • 防止用户登出后可以继续访问
    • 修改密码功能实现
      • 导入jsp
      • 实现Dao层数据接口
      • 实现Service层业务接口
      • 注册Servlet
    • 注册和注销 用户的方式
      • 导入jsp
      • 实现Dao层的数据逻辑
      • 实现Service逻辑
      • 注册Servlet

登出、注册、注销、修改

登出属于断开登录,操作session就可以解决

应用更改数据库的处理模式,add,delete,modify都是属于事务处理操作

登出操作的实现逻辑及方式

清楚session就可以,不再保存登录记录

package com.dashangms.servlet.user;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;public class LogoutServlet extends HttpServlet {@Overridepublic void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// 移除session 中的用户信息request.getSession().removeAttribute("user");// 跳转到登录页面response.sendRedirect(request.getContextPath() + "/jsp/login.jsp");}Overridepublic void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {this.doGet(request, response);}
}
    <!--注册Logout servlet--><servlet><servlet-name>logout</servlet-name><servlet-class>com.dashangms.servlet.user.LogoutServlet</servlet-class></servlet><!--Logout servlet请求路径--><servlet-mapping><servlet-name>logout</servlet-name><url-pattern>/logout</url-pattern></servlet-mapping>

防止用户登出后可以继续访问

  1. 思路:页面登出时先走login拦截器,如果session清空就说明已退出
package com.dashangms.filter;import com.common.Constants;import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;public class LoginFilter extends HttpFilter {/*** 执行过滤操作** @param request  Servlet请求,用于获取HTTP请求信息* @param response Servlet响应,用于向客户端发送数据* @param chain    过滤链,用于将请求传递给下一个过滤器或目标资源* @throws IOException 如果在执行过程中发生I/O错误* @throws ServletException 如果在执行过程中发生Servlet错误*/@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException{// 将ServletRequest和ServletResponse转换为HttpServletRequest和HttpServletResponse// 以使用它们提供的高级功能和方法HttpServletRequest httpServletRequest = (HttpServletRequest) request;HttpServletResponse httpServletResponse = (HttpServletResponse) response;// 检查用户会话中是否存在用户信息// 如果不存在,说明用户未登录或会话已过期if (httpServletRequest.getSession().getAttribute(Constants.USER_SESSION) == null) {// 重定向用户到错误页面// 这里假设错误页面为"/error.jsp",实际路径应根据项目具体结构设置httpServletResponse.sendRedirect(httpServletRequest.getContextPath() + "/error.jsp");} else {// 如果用户会话中存在用户信息,继续执行过滤链// 这允许请求继续传递到目标资源或下一个过滤器chain.doFilter(request, response);}}@Overridepublic void init() throws ServletException {super.init();}@Overridepublic void destroy() {super.destroy();}
}
  1. 登出后访问任意页面走过滤器处理
<!--    判断用户是否登录的过滤器--><filter><filter-name>LoginFilter</filter-name><filter-class>com.csnz.filter.LoginFilter</filter-class></filter><filter-mapping><filter-name>LoginFilter</filter-name><url-pattern>/jsp/*</url-pattern></filter-mapping>

修改密码功能实现

导入jsp

<li><a href=${pageContext.request.contextPath}"/jsp/pwdmodify.jsp">密码修改</a></li>

实现Dao层数据接口

  1. 在Dao写一个接口
int updatePwd(Connection connection, Integer id, String newPwd) throws Exception;
  1. 实现这个接口
    /*** 更新用户密码** @param connection 数据库连接对象* @param id         用户id* @param newPwd     新密码* @return 影响行数* @throws Exception 异常处理*/@Overridepublic int updatePwd(Connection connection, Integer id, String newPwd) throws Exception {// 初始化影响行数为0int updateRow = 0;// 检查数据库连接是否为空if (connection != null){// 预编译SQL语句以提高性能和安全性PreparedStatement preparedStatement = null;String sql = "update smbms_user set userPassword = ? where id = ?";preparedStatement = connection.prepareStatement(sql);// 设置SQL语句参数preparedStatement.setString(1, newPwd);preparedStatement.setInt(2, id);// 执行更新操作并获取影响行数updateRow = preparedStatement.executeUpdate();// 关闭数据库连接和预编译语句资源BaseDao.closeResource(connection, preparedStatement, null);}// 返回影响行数return updateRow;}

实现Service层业务接口

  1. 在Service上写一个接口
    /*** 修改密码* @param id 用户id* @param newPwd 新密码* @return 修改成功 flag*/public boolean updatePwd(Integer id, String newPwd);
  1. 实现这个Service
    /*** 修改密码** @param id     用户id* @param newPwd 新密码* @return 修改成功 flag*/@Overridepublic boolean updatePwd(Integer id, String newPwd) {Connection conn = null;boolean flag = false;try {conn = BaseDao.connection();if (userDao.updatePwd(conn, id, newPwd) > 0){flag = true;}} catch (Exception e) {e.printStackTrace();} finally {BaseDao.closeConnection(conn);}return flag;}

注册Servlet

  1. 多个按钮会在同一个Servlet的中调用不同的方法;
  2. 相关密码的check逻辑:
  • 密码不能为空
  • 密码与旧密码不能相同
  • 密码输入要合法化
  1. 密码修改成功与否都会返回原页面。有msg显示。
package com.dashangms.servlet.user;import com.dashangms.pojo.User;
import com.dashangms.service.user.UserService;
import com.dashangms.service.user.UserServiceImpl;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;public class UserServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String method = req.getParameter("method");if ("savePassword".equals(method)) {savePassword(req, resp);}}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doGet(req, resp);}/*** 保存用户新密码** @param req  HTTP请求对象,用于获取请求参数和进行页面转发* @param resp HTTP响应对象,用于进行页面转发* @throws ServletException 如果Servlet操作出错* @throws IOException      如果输入输出操作出错*/private void savePassword(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 获取用户ID和新密码String id = req.getParameter("id");String newPwd = req.getParameter("newPwd");Object object = req.getSession().getAttribute("user");User user = (User) object;// 创建UserService对象UserService userService = new UserServiceImpl();if (user.getUserPassword().isEmpty()) {req.getSession().setAttribute("message", "密码不能为空!");} else if (user.getUserPassword().equals(newPwd)) {req.getSession().setAttribute("message", "新密码不能与旧密码相同!");} else {// 调用UserService的updatePwd方法更新用户密码if (userService.updatePwd(Integer.parseInt(id), newPwd)) {req.getSession().setAttribute("message", "密码修改成功!请使用新密码重新登陆");// 移除用户会话中的用户信息,表示用户已经注销req.getSession().removeAttribute("user");} else {// 如果密码更新失败,转发到错误页面req.getSession().setAttribute("message", "密码更新失败!");}}// 如果密码更新成功,转发到密码修改页面req.getRequestDispatcher("/pwdmodify.jsp").forward(req, resp);}
}
  1. 注册Servlet
    <servlet><servlet-name>UserServlet</servlet-name><servlet-class>com.dashangms.servlet.user.UserServlet</servlet-class></servlet><servlet-mapping><servlet-name>UserServlet</servlet-name><url-pattern>/jsp/user.do</url-pattern></servlet-mapping>

注册和注销 用户的方式

同上 改善点

导入jsp

可以共同使用同一个页面,根据前面页面传的值使用hidden确定显示哪部分内容;

实现Dao层的数据逻辑

  • 插入新用户 insert
  • 注销(删除)新用户 update (逻辑删除)

实现Service逻辑

  • 插入新用户 insert
    • 使用前先判断是否有同样的账号,判断一致性插入
  • 注销(删除)新用户 update (逻辑删除)
    • 停用功能,:停用和启用相对应,不会删除数据
    • 删除功能
      • 物理删除?
      • 逻辑删除?

注册Servlet

同样在UserServlet中调用其他的逻辑,主要点 在jsp中确定实现

不需要再新注册Servlet来实现

http://www.dtcms.com/wzjs/184361.html

相关文章:

  • idea 做网站登录淘宝美工培训
  • 怎么免费建自己的网站东莞营销型网站建设
  • wordpress怎装模板seo就业哪家好
  • 惠州品牌网站建设公司哪里有沪深300指数怎么买
  • 网站建设哪家技术好网站广告接入
  • 用javascirpt做的网站手机端关键词排名优化
  • 电子商务网站的建设费用案例自制网站 免费
  • 南阳高质量建设大城市网站昆明做网站的公司
  • 常宁市城乡和住房建设网站百度热点排行榜
  • 东丽区网站建设公司百度定位店铺位置怎么设置
  • 如何在腾讯云上建设网站百度推广登录入口官网
  • 集团网站策划方案seo是指
  • 手机网站建设 的作用看b站视频软件下载安装手机
  • 做网站要下载的软件营销策划书范文1000字
  • 实训做网站收获外贸网站都有哪些
  • 韩国男女做游戏视频网站seo关键词排名优化手机
  • 全网营销网站怎么做设计素材网站
  • 商务网站开发文档餐饮营销策划与运营
  • 广州建设银行网站首页营销目标分为三个方面
  • 重庆做网站哪家好东莞网络优化服务商
  • 小程序 网站建设 app 开发单页网站制作
  • 网站app开发哪家好品牌关键词优化
  • 网站开发中网页上传哪个浏览器看黄页最快夸克浏览器
  • 哪家公司产品设计的好seo关键词的优化技巧
  • 学校局域网站建设关键词排名霸屏代做
  • 男的和女的做那种短视频网站浅议网络营销论文
  • 哪里有网站建设哪家好晋中网站seo
  • 漳州网站建设多少钱搜索引擎查重
  • 苏州城乡住房建设局网站广东短视频seo营销
  • 公众号怎么开通视频号培训行业seo整站优化