filter过滤器登录验证

网友投稿 538 2022-10-08

filter过滤器登录验证

filter过滤器登录验证

1.新建一个FirstFilter类代码如下:

package com.ask.filter; import java.io.IOException; 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./*自定义一个java类实现filter接口*/ public class FirstFilter implements Filter { //通过file配置文件中修改编码方式; private FilterConfig config; public FirstFilter(){ System.out.println("FirstFilter: "+this.hashCode()); } public void init(FilterConfig arg0) throws ServletException { config=arg0; System.out.println("init: "+this.hashCode()); } public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { String utf8=config.getInitParameter("utf-8"); HttpServletResponse resp=(HttpServletResponse) res; //resp.setContentType("text/html;charset=utf-8"); resp.setContentType("text/html;charset="+utf8); //调用下一个filter或者是web资源 chain.doFilter(req, res); } public void destroy() { System.out.println("destroy: "+this.hashCode()); } }

2.新建一个LoginFilter类代码如下:

package com.ask.filter; import java.io.IOException; 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.import javax.servlet.import javax.servlet.public class LoginFilter implements Filter { public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain chain) throws IOException, ServletException { HttpServletRequest req=(HttpServletRequest) arg0; HttpServletResponse res=(HttpServletResponse) arg1; //获取资源路径; String uri=req.getRequestURI(); //获得jsp文件名; String action=uri.substring(uri.lastIndexOf("/")+1, uri.indexOf(".")); System.out.println(action); if ("login".equals(action)&&uri.endsWith(".jsp")) {//判断是否是longin.jsp请求 chain.doFilter(req, res); }else{//main.jsp longin.do if ("login".equals(action)) {//如果是login.do请求 HttpSession session=req.getSession(); if (session.getAttribute("name")==null) { String name=req.getParameter("username"); String pwd=req.getParameter("password"); if ("tom".equals(name)&&"123".equals(pwd)) { session.setAttribute("name", name); chain.doFilter(req, res); }else{ res.sendRedirect(req.getContextPath()+"/login.jsp"); } } }else{ HttpSession session=req.getSession(false); if (session.getAttribute("name")==null) { res.sendRedirect(req.getContextPath()+"/login.jsp"); }else{ chain.doFilter(req, res); } } } } public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub } public void destroy() { // TODO Auto-generated method stub } }

3.新建一个SecFilter类,代码如下:

package com.ask.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class SecFilter implements Filter { public void destroy() { System.out.println("sec---destroy"); } public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { chain.doFilter(req, res); } public void init(FilterConfig arg0) throws ServletException { System.out.println("sec---init"); } }

4.新建一个showServlet类代码如下:

package com.ask.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.import javax.servlet.import javax.servlet.import javax.servlet.public class showServlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { String name=req.getParameter("username"); System.out.println("service"); res.getWriter().write("演示servlet中的filter过滤器"); HttpSession session=req.getSession(); session.setAttribute("name", name); System.out.println("登录成功"); res.sendRedirect(req.getContextPath()+"/main.jsp"); } }

5.在WebRoot目录下新建两个jsp文件,分别是login.jsp和main.jsp文件

Login.jsp如下

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here

username: password:
Main.jsp如下: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here 欢迎 ${name}进入主页面

6.在web.xml配置文件中配置如下:

firstServlet index.html index.htm index.jsp default.html default.htm default.jsp first com.ask.filter.LoginFilter first /* show com.ask.servlet.showServlet show *.do

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:servlet属性值的改变;
下一篇:微信小程序转为支付宝小程序(微信小程序支付宝小程序通用框架)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~