springmvc配置过滤器解决乱码1
1 <form action="${pageContext.request.contextPath}/e/t1" method="post">//需要加根路径/e/t1之前加项目路径
2 <input type="text" name="name">
3 <input type="submit">
4 </form>
控制层
1 @Controller
2 public class EncodingController {
3 @RequestMapping("/e/t1")
4 public String test(String name, Model model){
5 model.addAttribute("hello",name);
6
7 return "Login";
8 }
9 }
过滤器
1 public class EncodingFilter implements Filter {
2 @Override
3 public void init(FilterConfig filterConfig) throws ServletException {
4 }
5 @Override
6 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
7 request.setCharacterEncoding("UTF-8");
8 response.setCharacterEncoding("UTF-8");
9 response.setContentType("text/html;charset=UTF-8");
10 chain.doFilter(request, response);//过滤请求
11 }
12 @Override
13 public void destroy() {
14 }
15 }
1 web.xml
2 <filter>
3 <filter-name>encoding</filter-name>
4 <filter-class>com.rzk.filter.EncodingFilter</filter-class>
5 </filter>
6 <filter-mapping>
7 <filter-name>encoding</filter-name>
8 <url-pattern>/*</url-pattern>
9 </filter-mapping>
< url-pattern > / </ url-pattern > 不会匹配到*.jsp,即:*.jsp不会进入spring的 DispatcherServlet类
< url-pattern > /* </ url-pattern > 会匹配*.jsp,会出现返回jsp视图时再次进入spring的DispatcherServlet 类,导致找不到对应的controller所以报404错。
< url-pattern > /* </ url-pattern > 会匹配*.jsp,会出现返回jsp视图时再次进入spring的DispatcherServlet 类,导致找不到对应的controller所以报404错。
总之,关于web.xml的url映射的小知识:
< url-pattern>/</url-pattern> 会匹配到/login这样的路径型url,不会匹配到模式为*.jsp这样的后缀型url
< url-pattern>/*</url-pattern> 会匹配所有url:路径型的和后缀型的url(包括/login,*.jsp,*.js和*.html等)
< url-pattern>/</url-pattern> 会匹配到/login这样的路径型url,不会匹配到模式为*.jsp这样的后缀型url
< url-pattern>/*</url-pattern> 会匹配所有url:路径型的和后缀型的url(包括/login,*.jsp,*.js和*.html等)
/不会拦截页面,只会拦截路径。
/* 会路径和页面