通过servlet封装不同应用之间的访问方法
2016-11-22 11:17
351 查看
应用背景:
随着客户应用环境的复杂度得提高和系统的扩展,不同应用之间的访问成为一个必然,原理上我们只需要在一个应用中调用另一个应用的链接即可,本篇文章是把调用的过程封装成了一个servlet,具有隐蔽性以及简化灵活性。
实现过程:
假设有A,B两个应用,要实现从A应用访问B应用,从A应用里通过一个servlet访问B应用里的某一个页面,该页面所展现的报表通过传参实现。
1:编写servlet,代码如下
package com.runqian;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ServletRedirect
extends HttpServlet {
public ServletRedirect() {
super();
}
public void destroy() {
super.destroy();
// Just puts "destroy" string in log
// Put your code here
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String raq=request.getParameter("raq");//获取参数
response.sendRedirect("http://localhost:6001/demo/reportJsp/showReport.jsp?raq="+raq);//转跳
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
public void init()
throws ServletException {
}
}
说明,代码简单,接受raq报表名称,当然访问B应用的url我们也可以通过参数传递,或者读取配置文件中的参数,例子中我们写死了B应用的rul。
2:将编译好的类文件放在A应用/web-inf/classes/test目录下。
3:在A应用/web-inf/下的web.xml里配置该servlet
<servlet>
<servlet-name>ServletTest</servlet-name>
<servlet-class>com.runqian. ServletRedirect </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletTest</servlet-name>
<url-pattern>/ServletTest</url-pattern>
</servlet-mapping>
4:将test.raq放在B应用的reportFiles文件夹下
5:启动A,B两个应用
6:比如A应用的地址为http://localhost:8080/report,B应用的地址为http://localhost:6001/demo
那么可以可以通过以下的方式从A应用访问B应用的showReport.jsp,并在该页面展现test.raq
http://localhost:8080/report/ServletTest?raq=test.raq
效果展示:
总结:
通过servlet的封装,可以给终端用户一个良好的体验,并且可以通过配置文件或者参数的设置,动态传递url以及报表模板,使得我们的配置更加灵活
随着客户应用环境的复杂度得提高和系统的扩展,不同应用之间的访问成为一个必然,原理上我们只需要在一个应用中调用另一个应用的链接即可,本篇文章是把调用的过程封装成了一个servlet,具有隐蔽性以及简化灵活性。
实现过程:
假设有A,B两个应用,要实现从A应用访问B应用,从A应用里通过一个servlet访问B应用里的某一个页面,该页面所展现的报表通过传参实现。
1:编写servlet,代码如下
package com.runqian;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ServletRedirect
extends HttpServlet {
public ServletRedirect() {
super();
}
public void destroy() {
super.destroy();
// Just puts "destroy" string in log
// Put your code here
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String raq=request.getParameter("raq");//获取参数
response.sendRedirect("http://localhost:6001/demo/reportJsp/showReport.jsp?raq="+raq);//转跳
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
public void init()
throws ServletException {
}
}
说明,代码简单,接受raq报表名称,当然访问B应用的url我们也可以通过参数传递,或者读取配置文件中的参数,例子中我们写死了B应用的rul。
2:将编译好的类文件放在A应用/web-inf/classes/test目录下。
3:在A应用/web-inf/下的web.xml里配置该servlet
<servlet>
<servlet-name>ServletTest</servlet-name>
<servlet-class>com.runqian. ServletRedirect </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletTest</servlet-name>
<url-pattern>/ServletTest</url-pattern>
</servlet-mapping>
4:将test.raq放在B应用的reportFiles文件夹下
5:启动A,B两个应用
6:比如A应用的地址为http://localhost:8080/report,B应用的地址为http://localhost:6001/demo
那么可以可以通过以下的方式从A应用访问B应用的showReport.jsp,并在该页面展现test.raq
http://localhost:8080/report/ServletTest?raq=test.raq
效果展示:
总结:
通过servlet的封装,可以给终端用户一个良好的体验,并且可以通过配置文件或者参数的设置,动态传递url以及报表模板,使得我们的配置更加灵活
相关文章推荐
- 不在同一个内网的本机通过SecureCrt配置,访问服务器的应用(应用设置仅允许内网之间能访问)
- C#多线程-不同线程之间通过事件委托封送调用方法
- 通过一条sql语句访问不同服务器中的数据库对象的方法
- 如何通过不同的域名访问发布到Apache上不同的Appeon Web应用?
- 如何通过不同的域名访问发布到Apache上不同的Appeon Web应用?
- 解决Servlet中BeanUtils对象通过populate方法封装JSP提交的String数据与JavaBean数据类型不一致
- 不同应用之间的activity跳转产生的闪烁,解决方法
- C#多线程-不同线程之间通过事件委托封送调用方法
- ios不同类之间相互访问成员的方法
- 如何通过不同的域名访问发布到Apache上不同的Appeon Web应用?
- C#多线程-不同线程之间通过事件委托封送调用方法
- 如何通过不同的域名访问发布到Apache上不同的Appeon Web应用?
- C#多线程-不同线程之间通过事件委托封送调用方法
- moo 7 Servlet init() doget() dopost() service()方法之间的区别及应用/GenericServlet、Servlet、HttpServlet借口之间的关系
- 通过设置静态路由来实现不同网段可以互相访问的方法
- 如何通过不同的域名访问发布到Apache上不同的Appeon Web应用?
- 在HttpServletRequest request获得参数,通过类的set方法封装到对象中
- jsp页面之间通过servelt调用DAO方法,让DAO回传入的值,通过servlet调到转入的页面
- 通过https访问2级域名,来反向代理到各个不同的tomcat应用
- 通过一条sql语句访问不同数据库的方法