filter问题出现404

今天第一次接触filter ,加载不上filter,

 
   <filter>
     <filter-name>First</filter-name>
     <filter-class>com.atguigu.day01.first </filter-class>
    </filter>
   <filter-mapping>
<!-- 过滤器名称 -->
<filter-name>First</filter-name>
<!-- URL映射 -->
<url-pattern>/topage.jsp</url-pattern>
</filter-mapping>

我这里写的filter是直接写的class implements Filter的

 <filter-name>和class(  <filter-class>com.atguigu.day01.first </filter-class>)里面的值不要一样

当有多个filter时,执行do filter 的先后由配置时谁的mapping在前谁先拦截 

由filterchain()连接起,到最后的filter传给servlet或jsp即释放

此处注意的是 在前一个的dofilter(){}中写了chain.dofilter()才会调用后一个filter否则不会

而且在对filter的xml配置中<url-pattern>/topage.jsp</url-pattern>设置要拦截的页面


、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

会写之后

写一个login的提交表单里面有name和password

然后设置UserNameFilter(filter2)用于拦截name不是Tom的用户 和passwordFilte(filter3)拦截密码不是1234的

且UserNameFilter的初始值设在Filter中配置,passwordFilter设在web应用的初始化参数



index.jsp

<body>
   <form action="topage2.jsp" method="post">
   name:<input type="text" name="name"/>
   password:<input type="text" name="password"/>
   <input type="submit" value="submit"/>
  </form>
</body>


topage2.jsp

<body>
    <h2>Hi</h2>
</body>


filter2:

package com.atguigu.day01;


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 first2 implements Filter {


@Override
public void destroy() {
// TODO Auto-generated method stub
System.out.println("destroy----");
}


@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
String name1= request.getParameter("name");
 String name2=config.getInitParameter("username");//filter中配置的取参
 if(name1.equals(name2))
 {
 request.getRequestDispatcher("/topage2.jsp").forward(request, response);
 }
 else
 {
 request.getRequestDispatcher("/index2.jsp").forward(request, response);
 }

}


private FilterConfig config;
public void init(FilterConfig config) throws ServletException {
this.config=config;

}


}


filter3:

package com.atguigu.day01;


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 filter3 implements Filter {
  


@Override
public void destroy() {
// TODO Auto-generated method stub

}


@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
String passwd1=request.getParameter("password");
String passwd2=config.getServletContext().getInitParameter("mypassword");//web配置中取初始化参数
if(passwd1.equals(passwd2))
{
request.getRequestDispatcher("/topage2.jsp").forward(request, response);
}
else{
request.getRequestDispatcher("/index2.jsp").forward(request, response);
}
}


private FilterConfig config;
public void init(FilterConfig config) throws ServletException {

this.config=config;

}


}

web.xml配置:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <filter>
    <filter-name>First2</filter-name>
    <filter-class>com.atguigu.day01.first2 </filter-class>
    
    <init-param>
        <param-name>username</param-name>//在filter中配置初始化参数
          <param-value>Tom</param-value>
   </init-param>



  </filter>
  <filter-mapping>
    <filter-name>First2</filter-name>
    <url-pattern>/topage2.jsp</url-pattern>
  </filter-mapping>
  
  
  
  <context-param>
     <param-name>mypassword</param-name>  //在web中配置
          <param-value>1234</param-value>
   </context-param
>
  
   <filter>
    <filter-name>First3</filter-name>
    <filter-class>com.atguigu.day01.first3 </filter-class>
    </filter>
  <filter-mapping>
    <filter-name>First3</filter-name>
    <url-pattern>/topage2.jsp</url-pattern>
  </filter-mapping>
</web-app>


今天的问题是:配置一个好用  但是在web.xml中配置2个filter会直接出现404错误 !!明天探究


‘今天必须要掌握的是如何配置初始化参数和如何取!顺便看应用到过滤

private FilterConfig config;
public void init(FilterConfig config) throws ServletException {

this.config=config;

}

当要用到是某方法的参数时  用以上思想,,,,然后用config去引出其他要用到方法这个思想很重要
 

----------------------------------------------------------------------------------------------------------------------------------------

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值