作者:希望我的代码能解决你的问题
jsp页面代码
index.jsp页面
<form action="Login" method="get">
<input type="text" name="name" placeholder="用户名" />
<br />
<input type="password" name="pwd" placeholder="密码"/>
<input type="submit" value="登陆">
</form>
show.jsp代码
<body>
登陆成功!
</body>
servlet代码
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String oldName = request.getParameter("name");
String oldPwd = request.getParameter("pwd");
//检查是否转码成功
System.out.println(oldName+"==================");
if("周周".equals(oldName)&&"123456".equals(oldPwd)){
response.sendRedirect("show.jsp");
}
}
过滤器代码块
public class EncodeFilter implements Filter{
//编码
private String encode ;
public void destroy() {
// TODO Auto-generated method stub
this.encode=null;
}
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain filter) throws IOException, ServletException {
// TODO Auto-generated method stub
// 转为HttpServletRequest对象
HttpServletRequest request = (HttpServletRequest)req;
// 重新获得编码后的请求:
HttpServletRequest newReq =null;
// 提交方式
String method = request.getMethod();
// 提交方式判断
if("POST".equals(method)){
// post方式
request.setCharacterEncoding(this.encode);
}else{
// GET方式
newReq = new HttpServletRequestWrapper(request){
// 重写方法getParameter方法
@Override
public String getParameter(String name){
String value = super.getParameter(name);
String newValue =null;
try {
if(value!=null){
newValue = new String(value.getBytes("iso-8859-1"),encode);
}
} catch (Exception e) {
// TODO: handle exception
System.out.println("转码失败");
}
return newValue;
}
};
}
// 这里直接用HttpservletRequest的父类ServletRequest
filter.doFilter(req, res);
}
public void init(FilterConfig config) throws ServletException {
// TODO Auto-generated method stub
// 获得编码格式
this.encode=config.getInitParameter("encoding");
}
}
web.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>Login</servlet-name>
<servlet-class>com.###.servlet.Login</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Login</servlet-name>
<url-pattern>/Login</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- 编码 -->
<filter>
<filter-name>encode</filter-name>
<!--包名加上类名-->
<filter-class>com.###.filter.EncodeFilter</filter-class>
<init-param>
<!-- 参数名 -->
<param-name>encoding</param-name>
<!-- 编码参数 -->
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encode</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>