利用java servlet实现简单的web请求过滤和跳转

本文介绍了如何利用java servlet实现简单的web请求过滤和跳转,以解决项目合并后废弃链接的问题。通过使用通配符@WebServlet("/*"),确保所有请求都会被处理,并通过request.getRequestURL()和request.getQueryString()获取并拼接请求参数,实现有效跳转。作者还分享了一个java进阶学习交流群,供读者进一步学习和交流。
摘要由CSDN通过智能技术生成

今日有两个微信web项目合并了,但是还有些链接指向废弃的项目,另外不想在服务器上运行两份相同web项目(1、影响性能、2、维护升级容易出错),因此决定写一个简单链接跳转的项目,spring的filter过滤器可以实现,但想想spring干这个有点大材小用,想到java的servlet可以支持通配符,因此用servlet写了一个简单的跳转程序,总共花了不到一小时的时间。废话少说上代码:

 1 /**
 2  * Servlet implementation class Default
 3  */
 4 @WebServlet("/*")
 5 public class Default extends HttpServlet {
 6     private static final long serialVersionUID = 1L;
 7 
 8     /**
 9      * @see HttpServlet#HttpServlet()
10      */
11     public Default() {
12         super();
13         // TODO Auto-generated constructor stub
14     }
15 
16     /**
17      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
18      *      response)
19      */
20     protected void doGet(HttpServletRequest request,
21             HttpServletResponse response) throws ServletException, IOException {
22         String thisURI = request.getRequestURL().toString();
23         String queryString = request.getQueryString();
24         String host = "112.125.121.163";
25         //String host = "localhost";
26         String oldURI = "http://" + host + ":8080/travel-core";
27         if (thisURI.indexOf(oldURI) >= 0) {
28             String newURI = thisURI.replaceAll(oldURI, "http://" + host
29                     + ":8080/travel-weixin");
30             if (queryString != null && queryString.length() > 0)
31                 newURI += "?" + queryString;
32             response.sendRedirect(newURI);
33         }
34     }
35 
36     /**
37      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
38      *      response)
39      */
40     protected void doPost(HttpServletRequest request,
41             HttpServletResponse response) throws ServletException, IOException {
42         this.doGet(request, response);
43     }
44 
45 }

注意代码第四行是关键@WebServlet("/*"),这里使用了通配符,所有的请求都会送到doGet和doPost方法里,另外要注意 request.getRequestURL()方法不能获取到queryString因此一定要request.getQueryString()获取参数,拼到新地址的后面。

给大家分享个java进阶学习交流群,群内提供免费架构视频资料;点击链接加入群聊【java高级架构进阶】:https://jq.qq.com/?_wv=1027&k=5BtpC6t  欢迎大家进群学习交流!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值