java filter 重定向_java web基础 --- URL重定向Filter

java web基础 --- URL重定向Filter

httpRequest.getRequestDispatcher("/helloWorld").forward(httpRequest, response);

服务器端转发,不改变浏览器端URL地址,常用

httpResponse.sendRedirect(uri);

浏览器端重定向,改变URL在浏览器地址栏

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;10 importjavax.servlet.ServletRequest;11 importjavax.servlet.ServletResponse;12 importjavax.servlet.annotation.WebFilter;13 importjavax.servlet.http.HttpServletRequest;14 importjavax.servlet.http.HttpServletResponse;15

16 /**

17 * Servlet Filter implementation class URLOverWriteFilter18 */

19 @WebFilter("/URLOverWriteFilter")20 public class URLOverWriteFilter implementsFilter {21

22 privateFilterConfig config;23 /**

24 * Default constructor.25 */

26 publicURLOverWriteFilter() {27 //TODO Auto-generated constructor stub

28 }29

30 /**

31 *@seeFilter#destroy()32 */

33 public voiddestroy() {34 //TODO Auto-generated method stub

35 }36

37 /**

38 *@seeFilter#doFilter(ServletRequest, ServletResponse, FilterChain)39 */

40 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throwsIOException, ServletException {41 //do something

42 String uri = "";43 HttpServletRequest httpRequest = null;44 if (request instanceofHttpServletRequest) {45 httpRequest =(HttpServletRequest)request;46 System.out.println("URL:" +httpRequest.getRequestURL().toString());47 System.out.println("URI:" +httpRequest.getRequestURI().toString());48 uri =httpRequest.getRequestURI();49 uri = uri.replace("home.html", "helloWorld");50 }51 if (httpRequest.getRequestURI().indexOf("home.html") >= 0) {52 /*if (response instanceof HttpServletResponse) {53 HttpServletResponse httpResponse = (HttpServletResponse)response;54 httpResponse.sendRedirect(uri);55 }*/

56 httpRequest.getRequestDispatcher("/helloWorld").forward(httpRequest, response);57 }58 else{59 //go to next Filter

60 chain.doFilter(request, response);61 }62 }63

64 /**

65 *@seeFilter#init(FilterConfig)66 */

67 public void init(FilterConfig fConfig) throwsServletException {68 this.config =fConfig;69 }70

71 }

web.xml

按照filter-mapping的顺序

Hello World Servlet

Hello World Servlet

Encode Filter

com.web1.util.RequestEncodeFilter

Encode Filter

/*

URLOverFilter Filter

com.web1.util.URLOverWriteFilter

URLOverFilter Filter

/home.html

helloWorld

com.web1.hello.HelloWorldServlet

helloWorld

/helloWorld

helloImage

com.web1.hello.ImageServlet

helloImage

/helloImage

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值