博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
tomcat class nofound,spring mvc的get请求乱码处理
阅读量:7046 次
发布时间:2019-06-28

本文共 3288 字,大约阅读时间需要 10 分钟。

一、maven中classnotfound

1.其实是jar包问题,maven默认会把jar包编译到target下面,而tomcat需要在WEB-INF目录下使用它,所以发现没有的问题
需要在pom.xml中配置
<plugin>

<artifactId>maven-compiler-plugin</artifactId>

<configuration>

1.6
1.6
UTF-8
src\main\webapp\WEB-INF\lib

</configuration>

</plugin>

二、解决springmvc的get乱码问题

1.post处理乱码是这样的
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<async-supported>true</async-supported>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

2.get乱码处理    public class EncodingFilter extends OncePerRequestFilter {  private String encoding;  public void setEncoding(String encoding) {      this.encoding = encoding;  }  @Override  protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain)          throws ServletException, IOException {      // 设置请求响应字符编码      request.setCharacterEncoding(encoding);      response.setCharacterEncoding(encoding);      // 传递给目标servlet或jsp的实际上是动态代理的对象,而不是原始的HttpServletRequest对象      request = (HttpServletRequest) Proxy.newProxyInstance(request.getClass().getClassLoader(), request.getClass().getInterfaces(), new MyInvacationHandler(request));      chain.doFilter(request, response);  }  class MyInvacationHandler implements InvocationHandler{      private HttpServletRequest request;      MyInvacationHandler(HttpServletRequest request){          this.request=request;      }      @Override      public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {          switch (method.getName()) {          case "getParameter":              String value = request.getParameter((String)args[0]);              try {                  if(value != null){                      value=new String(value.getBytes("ISO-8859-1"),encoding);                  }              } catch (UnsupportedEncodingException e) {                  e.printStackTrace();              }              return value;          case "getParameterValues":              String[] values = request.getParameterValues((String)args[0]);              if (values != null) {                  for (int i = 0; i < values.length; i++) {                      try {                          values[i] = new String(values[i].getBytes("ISO-8859-1"),encoding);                      } catch (UnsupportedEncodingException e) {                          e.printStackTrace();                      }                  }              }              return values;          default:              return method.invoke(request, args);          }      }  }

}

web.xml配置

<filter>
<filter-name>encodingFilter12</filter-name>
<filter-class>com.wjw.controller.EncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter12</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

或者server.xml中配置

<Connector port="8000" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="utf-8"/>

转载于:https://blog.51cto.com/10913595/2110718

你可能感兴趣的文章
码农心思@10/12/2013
查看>>
Uncaught TypeError: jQuery.i18n.browserLang is not a function
查看>>
Unity Mathf/Math数学运算函数说明全集(Chinar总结)
查看>>
关于图片的存与读
查看>>
Windows 2012 AD配置
查看>>
LeetCode c语言-Rotate Image
查看>>
神经网络和深度学习 - 一些公式
查看>>
Kafka相关概念及核心配置说明
查看>>
Redis源码研究--跳表
查看>>
pymysql-sqlalchemy-orm
查看>>
易·school使用体验
查看>>
使用cxf构建webservice
查看>>
19.Kubernetes深入Pod之容器共享Volume
查看>>
Makefile中的变量和shell变量
查看>>
<转>ThinkPHP的开发常用系统配置项
查看>>
真正的让iframe自适应高度 兼容多种浏览器随着窗口大小改变
查看>>
tomcat部署项目(war文件)
查看>>
大数据多维分析平台的实践
查看>>
Python常用函数
查看>>
二分法习题HDU2199
查看>>