1, index.jsp
<html>
<!--中文乱码问题
解决的方法是建立一个Filter,代码在tomcat的example里可以找到。
...\Tomcat 5.0\webapps\servlets-examples\WEB-INF\classes\filters\SetCharacterEncodingFilter.java
以及...\Tomcat 5.0\webapps\servlets-examples\WEB-INF\web.xml
-->
<body>
<form id="index" name="index" method="post" action="/riskprj/login.do">
<input type="text" name="username">
<input type="submit" id="btnokpost" name="postok" value="提交">
</form>
</body>
</html>
2, LoginAction.java
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
// 假如Action要 传值到 JSP 页面,中文不需要做特殊处理
System.out.println("action:username"+request.getParameter("username"));
request.setAttribute("ggmm", "Action里面的中文");
return mapping.findForward("love");
}
3, love.jsp
<html>
<body>
开开心心<br>
<%=request.getParameter("username") %>
<jsp:forward page="home.jsp" />
</body>
</html>
<!-- 转向home.jsp的时候,仍然可以获取 MyJsp.jsp 的参数
<jsp:forward page="home.jsp" />
-->
<!--转向home.jsp的时候, 无法获取MyJsp.jsp 的参数 -->
<%--response.sendRedirect("/riskprj/home.jsp"); --%>
4, home.jsp
<html>
<body>
欢迎来到!<%=request.getParameter("username") %>
XX:<%=request.getAttribute("ggmm") %>
</body>
</html>
5, web.xml 的设置
<!--定义Filter -->
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>enc.fil</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<!-- 定义Filter 拦截地址 -->
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
6, filter 的设置
public class fil implements Filter {
protected String encoding = null;
protected FilterConfig filterConfig = null;
protected boolean ignore = true;
public void destroy() {
this.encoding = null;
this.filterConfig = null;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException {
// Conditionally select and set the character encoding to be used
if (ignore || (request.getCharacterEncoding() == null)) {
String encoding = selectEncoding(request);
if (encoding != null)
request.setCharacterEncoding(encoding);
}
// Pass control on to the next filter
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
String value = filterConfig.getInitParameter("ignore");
if (value == null)
this.ignore = true;
else if (value.equalsIgnoreCase("true"))
this.ignore = true;
else if (value.equalsIgnoreCase("yes"))
this.ignore = true;
else
this.ignore = false;
}
protected String selectEncoding(ServletRequest request) {
return (this.encoding);
}
}