两种简单的servlet实现反向代理
以下两种方法都需要引入jar包:
<dependency>
<groupId>org.mitre.dsmiley.httpproxy</groupId>
<artifactId>smiley-http-proxy-servlet</artifactId>
<version>1.6</version>
</dependency>
一、web.xml实现(tomcat,默认端口)(Spring项目可以,简单地web项目可能会有问题,正在探索中)
<!-- 反向代理 begin -->
<servlet>
<servlet-name>poxyHttpRequest</servlet-name>
<servlet-class>org.mitre.dsmiley.httpproxy.ProxyServlet</servlet-class>
<init-param>
<param-name>targetUri</param-name>
<param-value>https://www.baidu.com/s</param-value>
</init-param>
<init-param>
<param-name>log</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>poxyHttpRequest</servlet-name>
<url-pattern>/s/*</url-pattern>
</servlet-mapping>
<!-- 反向代理 end -->
访问localhost:8080/s即展示百度的页面

二、通过代码注册bean(基于Spring boot)
可以通过setName来设置多个bean,从而代理多个url
package *.*.*;
import org.mitre.dsmiley.httpproxy.ProxyServlet;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* Created by czz on 2018/11/13.
*/
@Configuration
public class SolrProxyServletConfiguration {
@Bean
public ServletRegistrationBean servletRegistrationBaiduBean(){
ServletRegistrationBean baidu= new ServletRegistrationBean(new ProxyServlet(), "/s/*");
baidu.setName("baidu");
baidu.addInitParameter("targetUri", "http://www.baidu.com/s");
baidu.addInitParameter(ProxyServlet.P_LOG, "false");
return baidu;
}
@Bean
public ServletRegistrationBean servletRegistrationRunoobBean(){
ServletRegistrationBean runoob= new ServletRegistrationBean(new ProxyServlet(), "/bootstrap/*");
runoob.setName("runoob");
runoob.addInitParameter("targetUri", "http://www.runoob.com/bootstrap");
runoob.addInitParameter(ProxyServlet.P_LOG, "false");
return runoob;
}
}
两种简单的servlet实现反向代理的更多相关文章
- 记录Nginx实现内容重定向的两种方式:rewrite和反向代理
第一种:rewrite server { listen 80; server_name www.test.org; root /te ...
- 两种简单实现菜单高亮显示的JS类(转载)
两种简单实现菜单高亮显示的JS类 近期在写一个博客管理后台的前端,涉及在同一页面两种高亮显示当前菜单的需求.记得当年写静态页时,为了实现高亮都是在每个页面加不同的样式,呵.高亮显示我觉得对于web ...
- GIT将本地项目上传到Github(两种简单、方便的方法)
GIT将本地项目上传到Github(两种简单.方便的方法) 一.第一种方法: 首先你需要一个github账号,所有还没有的话先去注册吧! https://github.com/ 我们使用git需要先安 ...
- Visual Studio写的项目在 IIS 服务器上运行的两种简单方法
首先需要PC上开启了IIS服务,相关方法网上很多,也很简单 第一种:直接在项目中操作 1.创建一个项目,然后右击选中项目,右击,单击属性,打开项目属性标签页面 如图,选择Web标签,在服务器栏目中选中 ...
- Gradle实现的两种简单的多渠道打包方法
本来计划今天发Android的官方技术文档的翻译--<Gradle插件用户指南>的第五章的,不过由于昨天晚上没译完,还差几段落,所以只好推后了. 今天就说一下使用Gradle进行类似友盟这 ...
- 同一个服务器部署两个Tomcat并用Nginx实现反向代理
需求场景:由于服务器只有80端口可供外网访问,但需要部署两台tomcat来运行两个不同的项目,所以选择了nginx做反向代理 一个upstream tomcat_server对应一个 locatio ...
- Android 关于在ScrollView中加上一个ListView,ListView内容显示不完全(总是显示第一项)的问题的两种简单的解决方案
是这样的哈: 有这样一个需求: 1.显示一个界面,界面上有一个列表(ListView),列表上面有一个可以滚动的海报. 2.要求在ListView滚动的过程中,ListView上面的海报也可以跟着Li ...
- Servlet访问路径的两种方式、Servlet生命周期特点、计算服务启动后的访问次数、Get请求、Post请求
Servlet访问路径的两种方式: 1:注解 即在Servlet里写一个@WebServlet @WebServlet("/myServlet") 2:配置web.xml < ...
- Android传递Bitmap的两种简单方式及其缺陷
Android传递Bitmap的几种简单方式 一,通过Intent的Bundle. 比如有两个activity,A,B,从A进入B.先在A中将Bitmap写进去: Resources res=getR ...
随机推荐
- LCD浮点数显示函数的探讨
LCD浮点数显示函数的探讨 原创 2017年12月19日 单片机开放附赠的学习资料里面很少见到显示浮点数的函数,显示浮点数的操作也相当烦坠! 一般转换显示法 拿STM32单片机资源,我们选取ADC采样 ...
- SVN的搭建(入门篇)
如果转载,请注明出处,谢谢 1.安装SVN # yum install subversion 2.创建一个仓库 创建一个仓库svnrepos # svnadmin create /usr/svnrep ...
- MySQL导入大sql 文件大小限制问题的解决
解决过程如下: 1.由于mysql能解析sql的压缩文件,因此将200M压缩后为5M. 2.默认情况下:MySQL导入文件大小有限制的,最大为2M,所以当文件很大时候,直接无法导入,可修改php.in ...
- Python3基础(3)集合、文件操作、字符转编码、函数、全局/局部变量、递归、函数式编程、高阶函数
---------------个人学习笔记--------------- ----------------本文作者吴疆-------------- ------点击此处链接至博客园原文------ 1 ...
- 《web-Mail服务的搭建》
首先是搭建后台服务: 下载下面2个软件包 extmail-1.2.tar.gz extman-1.1.tar.gz 创建一个extsuite目录,固定格式 mkdir /var/www/extsuit ...
- Cucumber 场景大纲 Scenario Outlines
引用链接:https://github.com/cucumber/cucumber/wiki/Scenario-Outlines script/cucumber --i18n zh-CN | feat ...
- Cmder 简明使用说明
简介 Cmder is a software package created out of pure frustration over the absence of nice console emul ...
- 使用URLRewriter实现URL重写
优点 1)隐藏真实URL,提高安全性 2)更加友好的URL,好记(看博客园就行知道啦) 3)便于搜素引擎收录 ......... 可能的缺点 使用URL重写可能导致: 1)图片路径的问题 2)CSS路 ...
- xml 文件转化Dictionary
下面是xml文件 <?xml version="1.0" encoding="utf-8" ?><nodes> <国土局> ...
- mysql 批量修改 表字段/表/数据库 字符集和排序规则
今天接到一个任务是需要把数据库的字符编码全部修改一下,写了以下修正用的SQL,修正顺序是 表字段 > 表 > 数据库. 表字段修复: #改变字段数据 SELECT TABLE_SCHE ...