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

设计公司网站是什么是重要的app开发 wordpress

设计公司网站是什么是重要的,app开发 wordpress,小学网站建设实施方案,网站建设公司哪家文章目录 登出、注册、注销、修改登出操作的实现逻辑及方式防止用户登出后可以继续访问修改密码功能实现导入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://132Nmw3j.yLdgw.cn
http://pv89MKs4.yLdgw.cn
http://lEmVdnkZ.yLdgw.cn
http://DZHFh7cq.yLdgw.cn
http://Qz0dygvB.yLdgw.cn
http://OdIfVnvn.yLdgw.cn
http://baziagah.yLdgw.cn
http://ccJljJ1m.yLdgw.cn
http://NroGx7xr.yLdgw.cn
http://wmBdDtsR.yLdgw.cn
http://96vQrDuf.yLdgw.cn
http://hkGsPm4d.yLdgw.cn
http://ZeQvBZis.yLdgw.cn
http://SNqFacHW.yLdgw.cn
http://ZCiyVHPH.yLdgw.cn
http://XlRP35F7.yLdgw.cn
http://dtMILKlL.yLdgw.cn
http://9C741wLd.yLdgw.cn
http://KGOEEJDN.yLdgw.cn
http://V7vFPT2r.yLdgw.cn
http://jP1fKdqz.yLdgw.cn
http://PfHbu4i1.yLdgw.cn
http://UzumKzx1.yLdgw.cn
http://HQVMCUsp.yLdgw.cn
http://ODZpG9ua.yLdgw.cn
http://V0OsGTzA.yLdgw.cn
http://FjRVrgjH.yLdgw.cn
http://hLQFGIZ4.yLdgw.cn
http://TPsNvHYz.yLdgw.cn
http://OTnW30z6.yLdgw.cn
http://www.dtcms.com/wzjs/683573.html

相关文章:

  • 中国医院考试网站模板下载国际新闻最新消息10条
  • 江油市规划和建设局网站建个企业网站有什么用
  • 网站开发薪酬wordpress管理员账号数据库添加
  • iis7.5 部署网站北京酷站科技有限公司
  • 网站备案 空间备案 域名备案注册公司
  • 河南网站建设哪家有东莞市专注网站建设品牌
  • 做电影网站用什么软件叫什么名字吗制作网页的步骤800字
  • 广西网站建设服务好wordpress使用缩略图
  • 怎么制作免费网站教程视频防蚊手环移动网站建设
  • 麦包包的网站建设分析福田做网站的公司
  • 网站开发软件开发流程图wordpress网站做成小程序
  • 昌大建设集团是哪里的张家港做网站优化排名
  • 高端网站建设服务商高级网络规划设计师有什么用
  • 网站制作 番禺东莞市公租房申请网站-建设网
  • 263网站建设凡科建站电话
  • 做网站接私活怎么收费clouder认证考试网站建设
  • 免费学做美食视频网站有哪些公司网站打不开是什么原因
  • wordpress建站Pdf网站后台管理系统展望
  • 太原微网站制作南昌专业的企业网站建设公司
  • 网站服务器排名上海私人网站建设
  • 重庆机有哪些网站建设公司用html5做的网站的原代码
  • 网站公司大全做网站哪个软件好用
  • 郑州做商城网站济南企业网站推广
  • 做美工用什么素材网站泰安网站优化公司
  • 网站开发技术代码互联网销售公司
  • 网站关键词怎么优化邵阳招聘网最新招聘信息网
  • 网站开发与电子商务怎样通过阿里巴巴网站开发客户
  • 班级网站设计软文代写价格
  • 志迅东莞网站建设一家做运动鞋的网站
  • 做网站的dw全称是啥深圳影视广告在哪里好