Primeiro, Web.xml Configuration
<!-spring-mvc-> <Verlet> <Verlet-name> SpringServlet </servlet-name> <Servlet-class> org.springframework.web.servlet.dispatcherServlet </servlet-class> <itir-param> <amam-name> ContextConfiglocation </param-name> Asspath: springmvc-servlet.xml </param-value> </irit-param> <adound-on-startup> 1 </olload-on-startup> </servlet> <sirtlet-mapping> <Verlet-name> SpringServlet </servlet-name> <url-pattern>/</url-tattern> </servlet-mapping
Configuração do URL-Pattern/, se configurado/*, você fará perguntas e até retornará à exibição JSP será interceptado. Pelo motivo específico, consulte o código -fonte
Pergunta: Se você configurar dessa maneira, todos ignorarão um problema, ou seja, A/B/C poderá ser acessado, mas A/B/C.DO; A/B/C.MM; A/B/C.ZZ pode acessar o controlador A/B/C. Sem modificar o código -fonte, nós iremos
Resolva esse problema. Embora interceptemos/tais solicitações, deixamos apenas solicitações como A/B/C entrar no controlador. Se o sufixo de [.] For sufixo, não o deixaremos entrar. Iremos diretamente para a página 404.
Solução:
Adicionar ao filtro no web.xml
<!- filtragem simples de url-> <filter> <filter-name> servletRequest </filter-name> <filter-class> cn.tomcat.quickstart.common.filter.servletRequestFilter </filter-class> <//// filtro> <filter-mapping> <filter-name> servletRequest </filter-name> <url-tattern>/*</url-tattern> </filter-mapping> servletRequestFilter.javaimport java.io.ioException; importar javax.servlet.filterchain; importar javax.servlet.servletexception; importar javax.servlet.http.httpServleTrequest; importação javax.servlet.http.httpsletLeposição; org.springframework.web.filter.onceperRequestFilter;/**** Processe o URL de entrada e coloque-o na frente do filtro, Springmvc <url-pantation>/</url-Pattern>* por padrão, todas as solicitações são interceptadas, a///c. Sufixo, imite o estilo repousante e aceita apenas solicitações de A/B/C * */public class ServLeveRequestFilter se estende uma vez que o Filter Filter {@OverrideProtected dofilterInternal (SenmTPServServLeTreQuest Solicitação, HTTPSEVELO request.getServletPath (); // Não se preocupe em interceptar arquivos estáticos. Por exemplo, *.js, *.css é semelhante a isso e é processado em web.xml // Todas as solicitações com o sufixo [.] São usadas diretamente para ir para 404 e não aceitam tais solicitações se (requestPathPath.LastIndexof ("". ")! resposta);} else {filterChain.dofilter (solicitação, resposta);}}}}} Direct Go 404 Com o final, haha, talvez você pergunte se esse é o caso, o arquivo estático não seria filtrado? Semelhante a *.js, *.css, ... n muitos desses tipos de arquivos