利用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()获取参数,拼到新地址的后面。

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

时间: 2024-12-16 10:00:43

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

利用java实现一个简单的远程监控程序

一般的远程监控软件都是用c或者c++等语言开发的,而使用java如何来实现相同的功能呢. 首先我们先介绍一下一个简单的远程监控程序的实现原理. 功能一,远程屏幕监视 (1) 必须要有监控端与被监控端,而且程序保持启动. (2) 被监控端获取本机的屏幕截屏发图给监控端. (3) 监控端在本地窗口中显示被监控端发送过来的图像. (4) (2)(3)步骤重复执行,这时在监控端即可实时监视到被监控端的桌面操作了. 功能二,远程控制 (1) 必须要有监控端与被监控端,而且程序保持启动. (2) 在监控端监

java实现一个简单的Web服务器

Web服务器也称为超文本传输协议服务器,使用http与其客户端进行通信,基于java的web服务器会使用两个重要的类, java.net.Socket类和java.net.ServerSocket类,并基于发送http消息进行通信. 这个简单的Web服务器会有以下三个类: *HttpServer *Request *Response 应用程序的入口在HttpServer类中,main()方法创建一个HttpServer实例,然后调用其await()方法,顾名思义,await()方法会在指定端口

比较简单的Web请求(get/post)方法封装,调用网络接口时能用到

发送Web请求 ,GET请求和POST请求 /// <summary> /// 发送GET请求 /// </summary> /// <param name="url"></param> /// <returns></returns> public static string Webrequest(string url) { WebRequest wr = WebRequest.Create(url); wr.Cr

利用Java手写简单的httpserver

前言: 在看完尚学堂JAVA300中讲解如何实现一个最简单的httpserver部分的视频之后, 一.前置知识 1.HTTP协议 当前互联网网页访问主要采用了B/S的模式,既一个浏览器,一个服务器,浏览器向服务器请求资源,服务器回应请求,浏览器再将接收到的回应解析出来展现给用户.这一问一答的过程可以抽象成浏览器向服务器发送一个Request然后服务器返回一个Response的过程 其中Request和Reponse在HTTP中有有具体的格式要求 一个Request的例子 Method Path-

利用java实现一个简单的链表结构

定义: 所谓链表就是指在某节点存储数据的过程中还要有一个属性用来指向下一个链表节点,这样的数据存储方式叫做链表 链表优缺点: 优点:易于存储和删除 缺点:查询起来较麻烦 下面我们用java来实现如下链表结构: 首先定义节点类: 复制代码package LinkTest;/** 链表节点类 @author admin */public class Node {private int value;//存储数据private Node next;//下一个节点/** 定义构造器 @param vlau

学习总结------Servlet的简单理解

1.什么是Servlet Servlet是一个Java编写的程序,在服务器端运行的(如tomcat) Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层 2,Servlet有什么作用? 主要是处理客户端的请求并将其结果发送到客户端 过程主要有: (1)客户端发送请求到服务器端 (2)服务器将请求信息发送至Servlet (3)Servlet生成响应内容并将其传给服务

Java Servlet与Applet、CGI、JSP的比较

Java Servlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的Web页面. Java Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机. Java Servlet与Applet 的比较: 相似之处: ◆它们不是独立的应用程序,没有main()方法. ◆它们不是由用户或程序员调用,而是由另外一个应用程序(容器)调用

利用java 反射机制来实现一个servlet处理多种请求

如果我们想在一个servlet中处理多种请求(比如新闻的添加.删除),简单的可以在jsp提交表单的action路径中添加一个键值对,然后再servlet中接收后根据不同的值来调用不同的方法. jsp端 1 <form action="newsServlet?method=add" method="post"> 2 <input type="text" ..> 3 <input type="submit&qu

Excel导出学习之道:Java Web利用POI导出Excel简单例子

采用Spring mvc架构: Controller层代码如下 [java] view plaincopy @Controller public class StudentExportController{ @Autowired private StudentExportService studentExportService; @RequestMapping(value = "/excel/export") public void exportExcel(HttpServletReq