jsp实现登录验证的过滤器

这篇文章主要为大家详细介绍了jsp实现登录验证的过滤器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了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"%>  example 
用户名:
密码:

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

 <%@page import="java.util.Date"%><%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>  example <% String username = (String) session.getAttribute("user"); %> 恭喜<%=username%>登录成功! 

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

以上就是jsp实现登录验证的过滤器的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » Java