Java Web Base---URL redirection filter
Httprequest.getrequestdispatcher ("/helloworld"). Forward (HttpRequest, response);
Server-side forwarding, does not change the browser-side URL address, commonly used
Httpresponse.sendredirect (URI);
Browser end multiplicity Redirect, change URL in browser address bar
Urloverwritefilter.java
1 PackageCom.web1.util;2 3 Importjava.io.IOException;4 5 Importjavax.print.attribute.standard.ReferenceUriSchemesSupported;6 ImportJavax.servlet.Filter;7 ImportJavax.servlet.FilterChain;8 ImportJavax.servlet.FilterConfig;9 Importjavax.servlet.ServletException;Ten Importjavax.servlet.ServletRequest; One ImportJavax.servlet.ServletResponse; A ImportJavax.servlet.annotation.WebFilter; - Importjavax.servlet.http.HttpServletRequest; - ImportJavax.servlet.http.HttpServletResponse; the - /** - * Servlet Filter implementation class Urloverwritefilter - */ +@WebFilter ("/urloverwritefilter") - Public classUrloverwritefilterImplementsFilter { + A Privatefilterconfig config; at /** - * Default constructor. - */ - PublicUrloverwritefilter () { - //TODO auto-generated Constructor stub - } in - /** to * @seeFilter#destroy () + */ - Public voiddestroy () { the //TODO auto-generated Method Stub * } $ Panax Notoginseng /** - * @seeFilter#dofilter (ServletRequest, Servletresponse, Filterchain) the */ + Public voidDoFilter (ServletRequest request, servletresponse response, Filterchain chain)throwsIOException, servletexception { A //Do something theString uri = ""; +HttpServletRequest HttpRequest =NULL; - if(Requestinstanceofhttpservletrequest) { $HttpRequest =(httpservletrequest) request; $System.out.println ("URL:" +Httprequest.getrequesturl (). toString ()); -System.out.println ("URI:" +Httprequest.getrequesturi (). toString ()); -URI =Httprequest.getrequesturi (); theURI = Uri.replace ("home.html", "HelloWorld"); - }Wuyi if(Httprequest.getrequesturi (). IndexOf ("home.html") >= 0) { the /*if (response instanceof HttpServletResponse) { - httpservletresponse HttpResponse = (httpservletresponse) response; Wu Httpresponse.sendredirect (URI); - }*/ AboutHttprequest.getrequestdispatcher ("/helloworld"). Forward (HttpRequest, response); $ } - Else{ - //go to next Filter - Chain.dofilter (request, response); A } + } the - /** $ * @seefilter#init (filterconfig) the */ the Public voidInit (Filterconfig fconfig)throwsservletexception { the This. config =Fconfig; the } - in}
Xml
In accordance with the order of filter-mapping
<?xml version= "1.0" encoding= "UTF-8"? ><web-app xmlns:xsi= "Http://www.w3.org/2001/XMLSchema-instance" xmlns= "Http://java.sun.com/xml/ns/javaee" xsi:schemalocation= "Http://java.sun.com/xml/ns/javaee/http Java.sun.com/xml/ns/javaee/web-app_3_0.xsd "metadata-complete=" true "version=" 3.0 "> <description>Hello World Servlet</description> <display-name>hello World servlet</display-name> <filter> <filter-name >encode filter</filter-name> <filter-class>com.web1.util.requestencodefilter</filter-class> </filter> <filter-mapping> <filter-name>encode filter</filter-name> <URL-PATTERN&G T/*</url-pattern> </filter-mapping> <filter> <filter-name>urloverfilter Filter</filter-nam E> <filter-class>com.web1.util.URLOverWriteFilter</filter-class> </filter> < filter-mapping> <filter-name>urloverfilter filter</filter-name> <url-pattern>/home.html</ url-pattern> </filter-mapping> <servlet> <servlet-name>helloWorld</servlet-name> < Servlet-class>com.web1.hello.helloworldservlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>helloWorld</servlet-name> <url-pattern>/helloWorld</url-pattern> </ servlet-mapping> <servlet> <servlet-name>helloImage</servlet-name> <servlet-class> com.web1.hello.imageservlet</servlet-class> </servlet> <servlet-mapping> <servlet-name> Helloimage</servlet-name> <url-pattern>/helloimage</uRl-pattern> </servlet-mapping></web-app>
Java Web Base---URL redirection filter