JSP+Servlet + Tomcat实现用户登录(三)实现登出功能【JavaWeb、无数据库】

1.添加退出标签

在登录成功的页面下,添加以下代码

JSP+Servlet + Tomcat实现用户登录(三)实现登出功能【JavaWeb、无数据库】_第1张图片

与登录页面同样的,通过form表单进行对表单的提交

只是此时,无需提交信息,而是只需要提交退出登录的请求即可

  • action——与servlet中注解的value对应

  • input

    • type=submit——点击后触发表单的action(为按钮形状)
    • value——按钮上显示的文字信息

2.创建LogoutServlet

在添加退出标签后,我们需要创建对应的servlet处理推出的请求

  • 将session中的信息清除
  • 消息提示——已退出,请重新登录
  • 跳转至login页面

创建LogoutServlet类

继承HttpServlet,响应请求

设置注解的值,与logout标签中的action对应

package com.example.Login;

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;

@WebServlet("/logout")
public class LogoutServlet extends HttpServlet {
  
}

重写service方法

键盘按住ctrl+o,重写service方法

JSP+Servlet + Tomcat实现用户登录(三)实现登出功能【JavaWeb、无数据库】_第2张图片

清空用户信息

  • 首先获取session
  • 通过invalidate使其失效
@Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        将session中的用户信息失效
        HttpSession session = req.getSession();
        session.invalidate();
    }

设置消息提示

通过request设置消息提示

注意:

这里对应设置的值,就是我们在login页面中访问的值——也就是msg

//        设置消息提示
        req.setAttribute("msg","退出成功");

跳转至登录页面

//        跳转至登录页面
        req.getRequestDispatcher("login.jsp").forward(req , resp);

为什么这里使用的是forward而不是redirect呢?

因为这里我们是通过request传递的信息,而且此处并不会涉及到表单的重复提交,因此直接使用forward即可

当然,如果使用redirect也可以。只是可能就需要通过session传值了

阶段实验结果

JSP+Servlet + Tomcat实现用户登录(三)实现登出功能【JavaWeb、无数据库】_第3张图片

你可能感兴趣的:(后端学习,数据库,servlet,java,Javaweb)