在跳到show()页面的时候,明明经过了编码过滤,为什么还是显示不了中文???index页面
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%><html>
<body>
<form action="show.jsp" mehtod="post">
<%
session.setAttribute("isLog","true"); //默认已登录
%>
<input type="text" name="text" />
<input type="submit"/>"
</form>
</body>
</html>
show()页面
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%><html>
<body>
This is my JSP page. <%
String name=request.getParameter("text");
out.println("取出的值是:"+name);
%>
</body>
</html>
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.http.HttpServletRequest;
EncodingFilter 编码过滤
public class EncodingFilter implements Filter
{
private String targetEncoding ="gb2312"; //默认是gb2312
protected FilterConfig filterConfig;
public void setFilterConfig(final FilterConfig filterConfig)
{
this.filterConfig=filterConfig;
}
/**
* 初始化
*/
public void init(FilterConfig config) throws ServletException {
// TODO Auto-generated method stub
this.filterConfig=config;
this.targetEncoding=config.getInitParameter("encoding"); //取出Web.xml中的值
}
/**
* 过滤
*/
public void doFilter(ServletRequest srequest, ServletResponse sresponse,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest request = (HttpServletRequest)srequest;
request.setCharacterEncoding(targetEncoding); //把请求用指定的方式编码
System.out.println("编码过滤"+targetEncoding);
chain.doFilter(srequest,sresponse); //把请求发送到下一个过滤器
}
/**
* 销毁Filter
*/
public void destroy() {
// TODO Auto-generated method stub
this.filterConfig=null;
}
}
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.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
LoginFilter 登录过滤
public class LoginFilter implements Filter
{
String Login_page="index.jsp";
protected FilterConfig filterConfig; public void setFilterConfig(final FilterConfig filterConfig)
{
this.filterConfig = filterConfig;
}
/**
* 过滤
*/
public void doFilter(final ServletRequest req,final ServletResponse res,FilterChain chain)
throws IOException,ServletException
{
HttpServletRequest hrep = (HttpServletRequest)req;
HttpServletResponse hres = (HttpServletResponse)res;
String isLog=(String)hrep.getSession().getAttribute("isLog");
if((isLog!=null)&&(isLog.equals("true"))|| (isLog=="true")) //检查是否登录
{
System.out.println("登录过滤***********");
chain.doFilter(req, res);
return;
}else
{
hres.sendRedirect(Login_page);
}
}
/**
* 初始化
*/
public void init(FilterConfig config)
{
this.filterConfig=config;
}
/**
* 销毁
*/
public void destroy()
{
this.filterConfig=null;
}
}
web文件
<?xml version="1.0" encoding="UTF-8"?>
<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">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>encoding</filter-name>
<filter-class>EncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>gb2312</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>auth</filter-name>
<filter-class>LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>auth</filter-name>
<url-pattern>/show.jsp</url-pattern>
</filter-mapping></web-app>
来源: http://www.programbbs.com/bbs/view23-25038-1.htm
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%><html>
<body>
<form action="show.jsp" mehtod="post">
<%
session.setAttribute("isLog","true"); //默认已登录
%>
<input type="text" name="text" />
<input type="submit"/>"
</form>
</body>
</html>
show()页面
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%><html>
<body>
This is my JSP page. <%
String name=request.getParameter("text");
out.println("取出的值是:"+name);
%>
</body>
</html>
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.http.HttpServletRequest;
EncodingFilter 编码过滤
public class EncodingFilter implements Filter
{
private String targetEncoding ="gb2312"; //默认是gb2312
protected FilterConfig filterConfig;
public void setFilterConfig(final FilterConfig filterConfig)
{
this.filterConfig=filterConfig;
}
/**
* 初始化
*/
public void init(FilterConfig config) throws ServletException {
// TODO Auto-generated method stub
this.filterConfig=config;
this.targetEncoding=config.getInitParameter("encoding"); //取出Web.xml中的值
}
/**
* 过滤
*/
public void doFilter(ServletRequest srequest, ServletResponse sresponse,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest request = (HttpServletRequest)srequest;
request.setCharacterEncoding(targetEncoding); //把请求用指定的方式编码
System.out.println("编码过滤"+targetEncoding);
chain.doFilter(srequest,sresponse); //把请求发送到下一个过滤器
}
/**
* 销毁Filter
*/
public void destroy() {
// TODO Auto-generated method stub
this.filterConfig=null;
}
}
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.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
LoginFilter 登录过滤
public class LoginFilter implements Filter
{
String Login_page="index.jsp";
protected FilterConfig filterConfig; public void setFilterConfig(final FilterConfig filterConfig)
{
this.filterConfig = filterConfig;
}
/**
* 过滤
*/
public void doFilter(final ServletRequest req,final ServletResponse res,FilterChain chain)
throws IOException,ServletException
{
HttpServletRequest hrep = (HttpServletRequest)req;
HttpServletResponse hres = (HttpServletResponse)res;
String isLog=(String)hrep.getSession().getAttribute("isLog");
if((isLog!=null)&&(isLog.equals("true"))|| (isLog=="true")) //检查是否登录
{
System.out.println("登录过滤***********");
chain.doFilter(req, res);
return;
}else
{
hres.sendRedirect(Login_page);
}
}
/**
* 初始化
*/
public void init(FilterConfig config)
{
this.filterConfig=config;
}
/**
* 销毁
*/
public void destroy()
{
this.filterConfig=null;
}
}
web文件
<?xml version="1.0" encoding="UTF-8"?>
<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">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>encoding</filter-name>
<filter-class>EncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>gb2312</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>auth</filter-name>
<filter-class>LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>auth</filter-name>
<url-pattern>/show.jsp</url-pattern>
</filter-mapping></web-app>
来源: http://www.programbbs.com/bbs/view23-25038-1.htm
同时你的过滤器中也没有设置request的编码方式啊request.setCharacterEncoding(encodingType);
呵呵,不好意思。还是谢谢你帮我看了,3Q3Q。