首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

过滤器有关问题!请帮帮!好

2011-12-25 
过滤器问题!请各位高手帮帮!好急原意是在表单提交后通过过滤器解决中文乱码在另一个JSP页面中显示注册信息

过滤器问题!请各位高手帮帮!好急
原意是在表单提交后通过过滤器解决中文乱码在另一个JSP页面中显示注册信息,是一本书上的代码!
在没有加过滤器的时候除了接收注册信息页面有代码后一切都很正常,加了过滤器servlet后,用JB2005编译出现错误信息:
  URL:   Unable   to   open   location:   Document   not   found   on   server

过滤器代码如下
package   filter;
import   java.io.*;
import   javax.servlet.ServletException;
import   javax.servlet.http.HttpServletResponse;
import   java.io.IOException;
import   javax.servlet.ServletRequest;
import   javax.servlet.ServletResponse;
import   javax.servlet.Filter;
import   javax.servlet.FilterChain;
import   javax.servlet.FilterConfig;

class   encodingFilter   implements   Filter{

                public   void   init(FilterConfig   filterConfig)throws   ServletException
                {
                }

                public   void   doFilter(ServletRequest   req,ServletResponse   res,FilterChain   chain)throws   IOException,ServletException{

                req.setCharacterEncoding( "gb2312 ");
                chain.doFilter(req,res);
}
                public   void   destroy()
                {
                }
}


WEB.XML中的设置如下
  <filter>
        <filter-name> encodingfilter </filter-name>
        <filter-class> filter.encodingFilter </filter-class>
    </filter>
    <filter-mapping>
        <filter-name> encodingfilter </filter-name>
        <url-pattern> /* </url-pattern>
    </filter-mapping>

注册页面userRegist1.jsp如下
<%@   page   contentType= "text/html;   charset=GBK "   %>
<html>
<head>
<title>
    新用户注册
</title>
</head>
<body   bgcolor= "#ffffff ">
<form   method= "POST "   action= "acceptUserRegist1.jsp "   name= "form1 "   >
新用户注册 <br/>
用户名(*): <input   type= "text "   name= "username "   size= "20 "> <br   />
密码(*): <input   type= "password "   name= "userpassword "   size= "30 "/>
性别: <input   type= "radio "   value= "男 "   checked   name= "sex "/> 男 <input   type= "radio "   name= "sex "   value= "女 "   /> 女 <br/>
出生年月: <input   type= "text "   name= "year "   size= "4 "   maxlength= "4 "> 年
    <select   name= "month ">
        <option   value= "1 "   selected> 1 </option>
        <option   value= "2 "> 2 </option>
          <option   value= "3 "> 3 </option>
            <option   value= "4 "> 4 </option>


              <option   value= "5 "> 5 </option>
                <option   value= "6 "> 6 </option>
                  <option   value= "7 "> 7 </option>
                    <option   value= "8 "> 8 </option>
                      <option   value= "9 "> 9 </option>
                        <option   value= "10 "> 10 </option>
                          <option   value= "11 "> 11 </option>
                            <option   value= "12 "> 12 </option>
                         
    </select> 月
    <input   type= "text "   name= "day "   size= "3 "   maxlength= "4 "   /> 日 <br>
        电子邮箱: <input   type= "text "   name= "E-mail "   maxlength= "29 "/>
        <br>
        家庭住址: <input   type= "text "   name= "address "   size= "20 "/> <br   />
        <input   type= "submit "   value= "提交 "/> <input   type= "reset "   value= "重写 "   />
</form>
</body>
</html>

显示注册信息页面acceptUserRegist1.jsp如下
<%@   page   contentType= "text/html;charset=gb2312 "%>
<html>
<head>
<title> 接收新用户注册 </title>
</head>
<body>
这是新用户注册所提交的数据
<br   />
用户名是:${param.username} <br/>
密码是:${param.userpassword} <br/>
性别是:${param.sex} <br/>
出生年月是:${param.year}${param.month}${param.day} <br/>
电子邮箱是:${param.email} <br/>
家庭住址是:${param.address} <br/>
</body>
</html>

不知道什么原因啊!和参考书上的代码一摸一样,但却会被过滤器屏蔽访问!向各位大哥求救!

[解决办法]
<filter-mapping>
<filter-name> encodingfilter </filter-name>
<url-pattern> /* </url-pattern>
</filter-mapping>

把过滤器去了看看.应该是jsp问题.
还有就是/*
肯定要被filter拦截的.
[解决办法]
是不是你的 encodingFilter 不是public,改成public试一下
[解决办法]
up
[解决办法]
web.xml的配置没问题,我的和你的一样,你确认这个没错就行: <filter-class> filter.encodingFilter </filter-class> 。
类声明和你的不同,我的是public的,和3楼说的一样。
照上面说的试试吧

热点排行