加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 编程要点 > 资讯 > 正文

java如何编写登录验证过滤器?

发布时间:2024-01-06 15:26:57 所属栏目:资讯 来源:互联网
导读:  这篇文章主要介绍了“java如何编写登录验证过滤器?”相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java如何编写登录验证过滤器?文章都会有所收获,下面我们一起来看看

  这篇文章主要介绍了“java如何编写登录验证过滤器?”相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java如何编写登录验证过滤器?文章都会有所收获,下面我们一起来看看吧。

  jsp实现登录验证的过滤器,内容如下

  1.新建一个Dynamic Web Project项目,里面新建1个filter文件、1个servlet文件和2个jsp文件,整体的框架如图所示:

  2.LoginFilter.java里面的代码如下所示:

  package filter;

  import java.io.IOException;

  import java.io.PrintWriter;

  import javax.servlet.Filter;

  import javax.servlet.FilterChain;

  import javax.servlet.FilterConfig;

  import javax.servlet.ServletException;

  import javax.servlet.ServletRequest;

  import javax.servlet.ServletResponse;

  import javax.servlet.annotation.WebFilter;

  import javax.servlet.http.HttpServletRequest;

  import javax.servlet.http.HttpServletResponse;

  import javax.servlet.http.HttpSession;

  @WebFilter(filterName = "loginFilter", urlPatterns = { "/*" })

  public class LoginFilter implements Filter {

  public void destroy() {

  }

  public void doFilter(ServletRequest request, ServletResponse response,

  FilterChain chain) throws IOException, ServletException {

  HttpServletRequest req = (HttpServletRequest) request;

  HttpServletResponse resp = (HttpServletResponse) response;

  HttpSession session = req.getSession(true);

  resp.setContentType("text/html;");

  resp.setCharacterEncoding("utf-8");

  PrintWriter out = resp.getWriter();

  String request_uri = req.getRequestURI();

  String ctxPath = req.getContextPath();

  String uri = request_uri.substring(ctxPath.length());

  if (uri.contains("login.jsp") || uri.contains("loginServlet")) {

  chain.doFilter(request, response);

  } else {

  if (session.getAttribute("user") != null) {

  chain.doFilter(request, response);

  } else {

  out.println("您没有登录,请先登录!3秒后回到登录页面。");

  resp.setHeader("refresh", "3;url=" + ctxPath + "/login.jsp");

  return;

  }

  }

  }

  public void init(FilterConfig fConfig) throws ServletException {

  }

  }

  3.LoginServlet.java里面的代码如下所示:

  package servlet;

  import java.io.IOException;

  import javax.servlet.ServletException;

  import javax.servlet.annotation.WebServlet;

  import javax.servlet.http.HttpServlet;

  import javax.servlet.http.HttpServletRequest;

  import javax.servlet.http.HttpServletResponse;

  import javax.servlet.http.HttpSession;

  @WebServlet(name = "loginServlet", urlPatterns = { "/loginServlet" })

  public class LoginServlet extends HttpServlet {

  private static final long serialVersionUID = 1L;

  protected void doGet(HttpServletRequest request,

  HttpServletResponse response) throws ServletException, IOException {

  doPost(request, response);

  }

  protected void doPost(HttpServletRequest request,

  HttpServletResponse response) throws ServletException, IOException {

  String username = request.getParameter("name");

  String password = request.getParameter("pwd");

  if ("filter".equals(username) && "filter".equals(password)) {

  HttpSession session = request.getSession(true);

  session.setAttribute("user", username);

  response.sendRedirect("loginSuccess.jsp");

  } else {

  response.sendRedirect("login.jsp");

  }

  }

  }

  4.login.jsp里面的代码如下所示:

  <%@page import="java.util.Date"%>

  <%@ page language="java" contentType="text/html; charset=UTF-8"

  pageEncoding="UTF-8"%>

  

  

  

  

  

  

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

用户名:
密码:

 

  

 

  

 

  

  

  5.loginSuccess.jsp里面的代码如下所示:

  <%@page import="java.util.Date"%>

  <%@ page language="java" contentType="text/html; charset=UTF-8"

  pageEncoding="UTF-8"%>

  

  

  

  

  

  

  

 

  <%

  String username = (String) session.getAttribute("user");

  %>

  恭喜<%=username%>登录成功!

  

  

  6.在浏览器里面输入http://localhost:8080/Servlet/login.jsp运行之后得到的结果如下所示:

  这篇关于“java如何编写登录验证过滤器?”的文章就介绍到这了,更多相关的内容

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章