Loading

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错。

总之,关于web.xml的url映射的小知识:
< url-pattern>/</url-pattern>  会匹配到/login这样的路径型url,不会匹配到模式为*.jsp这样的后缀型url
< url-pattern>/*</url-pattern> 会匹配所有url:路径型的和后缀型的url(包括/login,*.jsp,*.js和*.html等)
 

/不会拦截页面,只会拦截路径。


/* 会路径和页面


 

posted @ 2020-04-11 14:10  Rzk  阅读(337)  评论(0编辑  收藏  举报