利用java servlet實現簡單的web請求過濾和跳轉


今日有兩個微信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()獲取參數,拼到新地址的后面。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM