//我遇到的是第一个问题,顺利解决,搞定,基本这几种方法就够用了。
1.中文乱码:
1)tomcat 改成 utf-8 URIEncoding="UTF-8"
D:Tomcat 6.0conf中的server.xml中修改URIEncoding="UTF-8"
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
2)加 过滤器
EncodeFilter.java
具体步骤是:
1.先在web.xml配置文件中增加代码:
1 <!--编码过滤器--> 2 3 <filter> 4 <filter-name>encodeFilter</filter-name> 5 <filter-class>common.EncodeFilter</filter-class> 6 <init-param> 7 <param-name>encoding</param-name> 8 <param-value>utf-8</param-value> 9 </init-param> 10 </filter> 11 12 13 <filter-mapping> 14 <filter-name>encodeFilter</filter-name> 15 <url-pattern>/*</url-pattern> 16 </filter-mapping>
2.增加一个过滤用的类EncodeFilter.java
1 package common; 2 3 import java.io.IOException; 4 5 import javax.servlet.Filter; 6 import javax.servlet.FilterChain; 7 import javax.servlet.FilterConfig; 8 import javax.servlet.ServletException; 9 import javax.servlet.ServletRequest; 10 import javax.servlet.ServletResponse; 11 12 import org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter; 13 14 public class EncodeFilter extends StrutsPrepareAndExecuteFilter implements Filter { 15 private FilterConfig config = null; 16 private String encoding = null; 17 18 @Override 19 public void init(FilterConfig config) throws ServletException { 20 this.config = config; 21 } 22 23 @Override 24 public void doFilter(ServletRequest request, ServletResponse response, 25 FilterChain chain) throws IOException, ServletException { 26 if (encoding == null) { 27 encoding = config.getInitParameter("encoding"); 28 } 29 request.setCharacterEncoding(encoding); 30 response.setCharacterEncoding(encoding); 31 chain.doFilter(request, response); 32 } 33 34 @Override 35 public void destroy() { 36 config = null; 37 encoding = null; 38 } 39 }
3 表单提交的时候使用post方式
表单提交的时候,myeclipse默认是用的<form action="air!cp.action" method="get">
你要改成post方法
ps
注意到表单中action:getPostServlet/getPost.do?param4=param4
这个action带有一个参数param、,
如果用get方法提交,后台无法接收到这个参数;
如果用post方法提交,后台就可以接收到这个参数