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如何编写登录验证过滤器?”的文章就介绍到这了,更多相关的内容 (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |