我用tomcat服务器:  
我是在一个index.html里填写登陆消息,然后通过以个叫ServletLogin的servlet程序去验证用户(如下我的web.xml描述文件),我想通过filter去检查用户的输入是否是为空,(这里只是想测试下filter的用法) 
12345678
 <servlet>
   <servlet-name>ServletLogin</servlet-name>
   <servlet-class>jwadbook.ServletLogin</servlet-class>
  </servlet>
<servlet-mapping>
   <servlet-name>ServletLogin</servlet-name>
   <url-pattern>/login</url-pattern>
  </servlet-mapping> 
下面是过滤器映射: 
12345678910111213
 <filter>
   <filter-name>FilterServlet</filter-name>
   <filter-class>jwadbook.FilterServlet</filter-class>
   <init-param>
<param-name>passpwd</param-name>
<paran-value>12345</param-value>
</init-param>
</filter> 
<filter-mapping>
   <filter-name>FilterServlet</filter-name>
   <url-pattern>/login</url-pattern>
</filter-mapping>
 
我用tomcat服务器: 
 <?xml version="1.0" encoding="ISO-8859-1"?>
<web-app version="2.4" 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <display-name>j2ee test</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
 
  <servlet>
      <servlet-name>HeaderServlet</servlet-name>
      <servlet-class>HeaderServlet</servlet-class>
  </servlet>
  <servlet>
      <servlet-name>Test</servlet-name>
      <servlet-class>test.Test</servlet-class>
  </servlet>
  <servlet>
      <servlet-name>requestcounterservlet</servlet-name>
      <servlet-class>jwadbook.RequestCounterServlet</servlet-class>
  </servlet>
  <servlet>
      <servlet-name>FormParameterServlet</servlet-name>
      <servlet-class>jwadbook.FormParameterServlet</servlet-class>
  </servlet>
  <servlet>
      <servlet-name>FormDemo</servlet-name>
      <servlet-class>FormDemo</servlet-class>
  </servlet>
   <servlet>
      <servlet-name>CookieServlet</servlet-name>
      <servlet-class>jwadbook.CookieServlet</servlet-class>
  </servlet>
  <servlet>
      <servlet-name>SessionRecordServlet</servlet-name>
      <servlet-class>jwadbook.SessionRecordServlet</servlet-class>
  </servlet>
  <servlet>
      <servlet-name>SessionReaderServlet</servlet-name>
      <servlet-class>jwadbook.SessionReaderServlet</servlet-class>
  </servlet>
  <servlet>
      <servlet-name>DispatcherServlet</servlet-name>
      <servlet-class>jwadbook.DispatcherServlet</servlet-class>
  </servlet>
   <servlet>
      <servlet-name>ServletLogin</servlet-name>
      <servlet-class>jwadbook.ServletLogin</servlet-class>
  </servlet>
  
  <servlet-mapping>
      <servlet-name>DispatcherServlet</servlet-name>
      <url-pattern>/urldispatcher</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
      <servlet-name>HeaderServlet</servlet-name>
      <url-pattern>/head</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
      <servlet-name>Test</servlet-name>
      <url-pattern>/test</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
      <servlet-name>requestcounterservlet</servlet-name>
      <url-pattern>/requestcounterservlet</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
      <servlet-name>FormParameterServlet</servlet-name>
      <url-pattern>/FormParameterServlet</url-pattern>
  </servlet-mapping>
   <servlet-mapping>
      <servlet-name>FormDemo</servlet-name>
      <url-pattern>/FormDemo</url-pattern>
  </servlet-mapping>
   <servlet-mapping>
      <servlet-name>CookieServlet</servlet-name>
      <url-pattern>/CookieServlet</url-pattern>
  </servlet-mapping>
   <servlet-mapping>
      <servlet-name>SessionRecordServlet</servlet-name>
      <url-pattern>/SessionRecordServlet</url-pattern>
  </servlet-mapping>
   <servlet-mapping>
      <servlet-name>SessionReaderServlet</servlet-name>
      <url-pattern>/SessionReaderServlet</url-pattern>
  </servlet-mapping>
   <servlet-mapping>
      <servlet-name>ServletLogin</servlet-name>
      <url-pattern>/login</url-pattern>
  </servlet-mapping>
  
</web-app> 这段代码正常启动的了 
但是我加了个filter就启动不了了:  <?xml version="1.0" encoding="ISO-8859-1"?>
<web-app version="2.4" 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <display-name>j2ee test</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
 
 <filter>
       <filter-name>FilterServlet</filter-name>
       <filter-class>jwadbook.FilterServlet</filter-class>
       <init-param>
            <param-name>passpwd</param-name>
            <paran-value>12345</param-value>
    </init-param>
</filter> 
<filter-mapping>
       <filter-name>FilterServlet</filter-name>
       <url-pattern>/login</url-pattern>
</filter-mapping>
 
  <servlet>
      <servlet-name>HeaderServlet</servlet-name>
      <servlet-class>HeaderServlet</servlet-class>
  </servlet>
  <servlet>
      <servlet-name>Test</servlet-name>
      <servlet-class>test.Test</servlet-class>
  </servlet>
  <servlet>
      <servlet-name>requestcounterservlet</servlet-name>
      <servlet-class>jwadbook.RequestCounterServlet</servlet-class>
  </servlet>
  <servlet>
      <servlet-name>FormParameterServlet</servlet-name>
      <servlet-class>jwadbook.FormParameterServlet</servlet-class>
  </servlet>
  <servlet>
      <servlet-name>FormDemo</servlet-name>
      <servlet-class>FormDemo</servlet-class>
  </servlet>
   <servlet>
      <servlet-name>CookieServlet</servlet-name>
      <servlet-class>jwadbook.CookieServlet</servlet-class>
  </servlet>
  <servlet>
      <servlet-name>SessionRecordServlet</servlet-name>
      <servlet-class>jwadbook.SessionRecordServlet</servlet-class>
  </servlet>
  <servlet>
      <servlet-name>SessionReaderServlet</servlet-name>
      <servlet-class>jwadbook.SessionReaderServlet</servlet-class>
  </servlet>
  <servlet>
      <servlet-name>DispatcherServlet</servlet-name>
      <servlet-class>jwadbook.DispatcherServlet</servlet-class>
  </servlet>
   <servlet>
      <servlet-name>ServletLogin</servlet-name>
      <servlet-class>jwadbook.ServletLogin</servlet-class>
  </servlet>
 
  
  <servlet-mapping>
      <servlet-name>DispatcherServlet</servlet-name>
      <url-pattern>/urldispatcher</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
      <servlet-name>HeaderServlet</servlet-name>
      <url-pattern>/head</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
      <servlet-name>Test</servlet-name>
      <url-pattern>/test</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
      <servlet-name>requestcounterservlet</servlet-name>
      <url-pattern>/requestcounterservlet</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
      <servlet-name>FormParameterServlet</servlet-name>
      <url-pattern>/FormParameterServlet</url-pattern>
  </servlet-mapping>
   <servlet-mapping>
      <servlet-name>FormDemo</servlet-name>
      <url-pattern>/FormDemo</url-pattern>
  </servlet-mapping>
   <servlet-mapping>
      <servlet-name>CookieServlet</servlet-name>
      <url-pattern>/CookieServlet</url-pattern>
  </servlet-mapping>
   <servlet-mapping>
      <servlet-name>SessionRecordServlet</servlet-name>
      <url-pattern>/SessionRecordServlet</url-pattern>
  </servlet-mapping>
   <servlet-mapping>
      <servlet-name>SessionReaderServlet</servlet-name>
      <url-pattern>/SessionReaderServlet</url-pattern>
  </servlet-mapping>
   <servlet-mapping>
      <servlet-name>ServletLogin</servlet-name>
      <url-pattern>/login</url-pattern>
  </servlet-mapping>
  
</web-app>
 
 
 
 

解决方案 »

  1.   

    不好意思这里写错了点:
    12345678 
      <servlet> 
        <servlet-name> ServletLogin </servlet-name> 
        <servlet-class> jwadbook.ServletLogin </servlet-class> 
        </servlet> 
    <servlet-mapping> 
        <servlet-name> ServletLogin </servlet-name> 
        <url-pattern> /login </url-pattern> 
        </servlet-mapping> 
    上面的12345677是笔误,
    还有下面也是有个地方有12345678数字是笔误
      

  2.   

    试一下把
    <filter> 
          <filter-name> FilterServlet </filter-name> 
          <filter-class> jwadbook.FilterServlet </filter-class> 
          <init-param> 
    <param-name> passpwd </param-name> 
    <paran-value> 12345 </param-value> 
    </init-param> 
    </filter>   
    <filter-mapping> 
          <filter-name> FilterServlet </filter-name> 
          <url-pattern> /login </url-pattern> 
    </filter-mapping> 
    放到
        <welcome-file-list> 
            <welcome-file> index.jsp </welcome-file> 
        </welcome-file-list>
    前面,我也是新手,共同学习
      

  3.   

    你自己写的XXXFilter应该是继承于Filter的里面有一些方法要重写,我忘了什么了,你自己去找找吧还有就是你给Response写包装器了吗??如果没有估计不行.你应该把你写的那个Filter发上来