Erstens die Web.xml -Konfiguration
<!-Spring-MVC-> <servlet> <Servlet-name> SpringServlet </Servlet-Name> <Servlet-Class> org.springframework.web.servlet.DispatcherServlet </Servlet-Class> <init-param> <param-name> contextConfigLocation </param-name> <param-value> cl Asspath: SpringMvc-servlet.xml </param-value> </init-param> <load-on-startup> 1 </load-on-Startup> </Servlet> <Servlet-Mapping> <Servlet-Name> SpringServlet </Servlet-Name> <URL-PATTERN>/</</url-pattern> </servlet-maping>
URL-Musterkonfiguration/Wenn Sie konfiguriert/*sind, werden Sie Fragen stellen und sogar zur Ansicht zurückkehren. JSP wird abgefangen. Aus dem spezifischen Grund finden Sie im Quellcode bitte
Frage: Wenn Sie diese Weise konfigurieren, wird jeder ein Problem ignorieren, dh auf A/B/C kann zugegriffen werden, aber auf A/B/C.DO; a/b/c.mm; A/B/C.zz kann alle A/B/C -Controller zugreifen. Ohne den Quellcode zu ändern, werden wir
Lösen Sie dieses Problem. Obwohl wir solche Anfragen abfangen, lassen wir nur Anfragen wie A/B/C den Controller eingeben. Wenn das Suffix von [.] Suffix ist, werden wir es nicht eingeben lassen. Wir gehen direkt zu Seite 404.
Lösung:
Hinzufügen zum Filter auf web.xml
<!- Einfaches Filtern von URL-> <Filter> <Filter-Name> ServletRequest </filter-name> <Filter-Class> cn.tomcat.quickstart.common.filter.servletRequestFilter </Filter-Class> </ Filter> <Filtermapping> <Filter-name> servletRequest </filter-name> <URL-Pattern>/*</url-pattern> </filter-mapping> servletRequestFilter.javaimport java.io.ioException; import javax.servlet.filterchain; import javax.servlet.servletException; import javax.servlet.http.httpsertrequest; import javax.servlet.http.httpsertResponse; Importee; org. suffix, imitate restful style, and only accept requests from a/b/c* */public class ServletRequestFilter extends OncePerRequestFilter {@Overrideprotected void doFilterInternal(HttpServletRequest request,HttpServletResponse response, FilterChain filterChain)throws ServletException, IOException {String requestPath = Request.getServletPath (); // Mach dir keine Sorgen, statische Dateien abzufangen. Zum Beispiel ähnelt *.js, *.css, und wird in web.xml // alle Anfragen mit dem Suffix [.] Direkt zur 404 verwendet und akzeptiert solche Anfragen nicht, wenn (RequestPath.lastIndexof (".")! =-1) {Anfrage. Antwort);} else {filterchain.dofilter (Anfrage, Antwort);}}}}} Direct Go 404 mit dem Ende, haha, vielleicht würden Sie sich fragen, ob dies der Fall ist, würde die statische Datei nicht herausgefiltert werden? Ähnlich wie *.js, *.css, ... n viele solche Arten von Dateien