从website A的servlet 转发到website B的servlet

henry_cn 2003-12-22 09:58:19
在A站点有个提交的页面test.htm,里面有个输入框如:username,客户端输入后点提交按钮,提交到A站点下的servlet如aServlet,进行必要的处理后,再转发给B站点的servlet如bServlet(转发时要连同request一起转发),在bServlet能得到test.htm提交的信息,处理后还返给aServlet一个值,aServlet处理完后再返回一个页面给客户端。请问各位大虾如何实现??
...全文
99 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wendaotwo 2003-12-22
  • 打赏
  • 举报
回复
可不可以用socket进行通信,不就可以信息共享了吗?用中间文件也可以吧;
zhao_sh 2003-12-22
  • 打赏
  • 举报
回复
一般来说是不允许两个站点进行这种转发的,因为它存在安全隐患。
你这种情况我决得可能用rmi来做比较合式。
LiGun 2003-12-22
  • 打赏
  • 举报
回复
没接触过,学习
flashroom 2003-12-22
  • 打赏
  • 举报
回复
两个站点间应该是不可以forwarde的

另外两个站点的 request,session 也不能共享

PS:如果同在一个服务器上可以通过中间文件来完成你的工作,不过好象太麻烦了

henry_cn 2003-12-22
  • 打赏
  • 举报
回复
站点A的IP:192.168.0.10:8080
站点B的IP:192.168.0.144:8080

我的代码如下:
A/myweb/test.htm
<HTML>
<BODY BGCOLOR="white">
<H1>jspSmartUpload : Sample 1</H1>
<HR>
<FORM METHOD="POST" ACTION="/myweb/testservlet">
<INPUT TYPE="text" NAME="username" SIZE="50"><BR>
<INPUT TYPE="SUBMIT">
</FORM>
</BODY>
</HTML>


A/myweb/WEB-INF/classes/TestServlet.class
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.net.*;
import java.util.*;

public class TestServlet extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=UTF-8";

public void init() throws ServletException {
}

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

System.out.println("Servlet to Web:" + request.getParameter("username"));
String responseURI = "http://192.168.0.144:8080/upload/BTestServlet";

try {
URL url = new URL(responseURI);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setUseCaches(false);
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

BufferedReader bufferread = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String str = "";
while ( (str = bufferread.readLine()) != null) {
System.out.println(str);
}
bufferread.close();
}
catch (Exception e) {
e.printStackTrace();
}
}

public void destroy() {
}
}


B/upload/WEB-INF/classes/BTestServlet.class
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;

public class BTestServlet extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=UTF-8";

public void init() throws ServletException {
}

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

System.out.println("Servlet to Web:" + request.getParameter("username"));
}

public void destroy() {
}
}


返回的结果总是:Servlet to Web:null
chsun 2003-12-22
  • 打赏
  • 举报
回复
用服务器的集群功能可以搞定,tomcat和weglogic都支持,具体的配置方法你得参照该服务器的相关文档。
ManFirst 2003-12-22
  • 打赏
  • 举报
回复
建议用
SERVER PUSH
建立SOCKET连接。
具体怎么做。你得先看一下相关的资料了。
leowu 2003-12-22
  • 打赏
  • 举报
回复
你可以在A站点的ServletA做完后,返回A站点的一个pageA,这个page直接把request的数据取出后提交给站点B的Servlet,page的form的action里写清楚那个站点B的ServletB的URL。ServletB就可以取得数据,然后处理完,在返回一个站点B的pageB,这个page直接提交给站点A的页面或者ServletC(当然ServletA也是可以的),由他们去把结果返回给访问者。注意,这里的pageA和pageB都是没有内容显示的,并且都是直接submit form的。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧