0 xml 설정 Spring MVC 필터

7288 단어 web
JSP 기본 문자 인 코딩 은 ISO - 8859 - 1 이기 때문에 request 에 중국어 가 있 으 면 오류 가 발생 할 수 있 으 므 로 필터 로 request 인 코딩 을 설정 할 수 있 습 니 다.
Spring MVC 에 서 는 문자 인 코딩 을 위 한 필 터 를 제공 합 니 다.따라서 필터 로 계승 할 수 있 습 니 다.
방식 1:
사용자 정의 Filter CharacterEncodingFilter 설명 을 추가 하지 마 십시오:
public class MyFilter extends CharacterEncodingFilter{

    public MyFilter(String encoding, boolean forceRequestEncoding, boolean forceResponseEncoding) {
        super(encoding, forceRequestEncoding, forceResponseEncoding);
    }
}

자바 기반 초기 화 기 를 사용자 정의 합 니 다 (임의의 수량 을 정의 할 수 있 습 니 다)
public class MyInitializer implements WebApplicationInitializer{

    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
    //  Filter
        FilterRegistration.Dynamic dynamic=servletContext.addFilter("myFilter",
                new MyFilter("UTF-8",true,true));
        dynamic.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, "/*"); //  Filter
    }
}

Controller
@Controller
public class HomeController {

    @RequestMapping(value = "/viewAll")
    public ModelAndView viewAll(String name,String password) {
        ModelAndView mv=new ModelAndView();
        System.out.println("name: "+name);
        System.out.println("password: "+password);
        mv.setViewName("home"); //  home.jsp
        return mv;
    }
}

로그 인 JSP:
"text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>logintitle>
head>
<body>
<h2>    h2>
8080   --%>
<form name="form" action="/mvc/viewAll" method="post">
    <input type="text" name="name"> <br>
    <input type="password" name="password"><br>
    <input type="submit" name="login">
form>
body>
html>

사실 사용자 정의 Filter 를 사용 하지 않 고 직접 사용 하면 됩 니 다 @WebFilter(filterName = "MyFilter",urlPatterns = "/*").
방식 2:
필터 의 설정 은 같 지만 초기 화 기 를 통 해 Filter 를 등록 하 는 것 은 아니 지만, 이러한 방식 은 Servlet 3.0 이상 을 요구 합 니 다.
public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer{
    @Override
    protected Class>[] getRootConfigClasses() {
        return new Class>[]{RootConfig.class};
    }

    @Override
    protected Class>[] getServletConfigClasses() {
        return new Class>[]{WebConfig.class};
    }

    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }

    //       Filter,      Filter     DispatcherServlet ,           
    @Override
    protected Filter[] getServletFilters() {
        return new Filter[]{new MyFilter("UTF-8",true,true)};
    }
}

좋은 웹페이지 즐겨찾기