`

在Servlet里的处理函数(如doPost)中,重新生成一个表单,再把它提交到另一个地方

阅读更多

我想在Servlet里的处理函数(如doPost)中,重新生成一个表单,再把它提交到另一个地方(如远程服务器上的某个地址)。  
茫无头绪,恳请诸位开示。  
---------------------------------------------------------------  
 
try  {  
 URL  destURL  =  new  URL("http://foo/cgi-bin/foo");  
 
 String  requestString  =  "paramName=paramValue\r\n";        
 URLConnection  urlConn  =  destURL.openConnection();  
 
 urlConn.setDoOutput(true);        //  we  need  to  write  
 urlConn.setDoInput(true);        //  just  to  be  safe...  
 urlConn.setUseCaches(false);        //  get  info  fresh  from  server  
 
//  Tell  the  server  what  kind  of  data  you  are  sending    
 urlConn.setRequestProperty("Content-type","application/octet-stream");  
 
//  Must  tell  the  server  the  size  of  the  data  you  are  sending.    
//  This  also  tells  the  URLConnection  class  that  you  are  doing    
//  a  POST  instead  of  a  GET.  
 urlConn.setRequestProperty("Content-length",  ""+requestString.length());  
 
//  Open  an  output  stream  so  you  can  send  the  info  you  are  posting  
                       DataOutputStream  outStream  =  new  DataOutputStream(  
                               urlConn.getOutputStream());  
 
//  Write  out  the  actual  request  data  
outStream.writeBytes(requestString);  
outStream.close();  
 
//  Now  that  you  have  sent  the  data,  open  up  an  input  stream  and  get  
//  the  response  back  from  the  server  
DataInputStream  inStream  =  new  DataInputStream(  
                               urlConn.getInputStream());  
 
                       int  ch;  
//  Dump  the  contents  of  the  request  to  System.out,  or  wherever  
//  you  need  ,  such  String  
 while  ((ch  =  inStream.read())  >=  0)  {  
                               System.out.print((char)  ch);  
                       }  
 
                       inStream.close();  
 
               }  catch  (Exception  e)  {  
                       e.printStackTrace();  
               }  

 

 

 

 

====================================================

向一个Web站点发送POST请求只需要简单的几步。首先要和URL下的URLConnection对话。URLConnection可以很容易的从URL得到。比如:

// Using java.net.URL and
//java.net.URLConnection
URL url = new
URL("http://jobsearch.dice.com/jobsearch/jobsearch.cgi");
URLConnection connection = url.openConnection();
然后把连接设为输出模式。URLConnection通常作为输入来使用,比如下载一个Web页。通过把URLConnection设为输出,你可以把数据向你个Web页传送。下面是如何做:

...
connection.setDoOutput(true);
最后,为了得到OutputStream,简单起见,把它约束在Writer并且放入POST信息中,例如:

...
OutputStreamWriter out = new
OutputStreamWriter(uc.getOutputStream(), "8859_1");
out.write("username=bob&password="+password+"");
 // remember to clean up
out.flush();
out.close();
这样就可以发送一个看起来象这样的POST:

POST /jobsearch/jobsearch.cgi HTTP 1.0
ACCEPT: text/plain
Content-type: application/x-www-form-urlencoded
Content-length: 99
username=bob
password=someword
一旦发送成功,用以下方法就可以得到服务器的回应:

connection.getInputStream();
一些Web站点用POST形式而不是GET,这是因为POST能够携带更多的数据,而且不用URL,这使得它看起来不那么庞大。使用上面列出的大致的代码,Java代码可以和这些站点轻松的实现对话。

 

分享到:
评论

相关推荐

    servlet调用的几种方式

    例如,在HTML文件中定义一个JavaScript函数`test()`,该函数改变表单的`action`属性为Servlet的URL,然后提交表单。这样,当用户点击一个特定的按钮时,JavaScript函数会被调用,从而发起对Servlet的请求。 在实际...

    _探讨Ajax获取表单值向Servlet传递的设计方案.doc

    探讨Ajax获取表单值向Servlet传递的设计方案 在 JavaWeb 领域,MVC ...在本文中,我们探讨了 Ajax 获取表单值向 Servlet 传递的设计方案,并对相关的技术和概念进行了详细的解释,为开发者提供了一个实用的解决方案。

    jsp网页产生json传值到java的servlet,再回传到jsp页面

    在这个过程中,"JspJsonServlet"可能是项目中的一个Servlet类名,负责接收和处理来自JSP的JSON请求。文件可能包含Servlet的实现,包括JSON解析和序列化以及业务逻辑处理。 总结来说,这个流程展示了如何利用JSP、...

    AJAX+servlet+jsp用户注册

    3. 实现Servlet:在Java中创建一个Servlet,重写doPost方法以处理AJAX POST请求。在这里,你需要解析接收到的用户数据,进行业务逻辑处理,如数据库查询和验证。 4. 处理响应:Servlet处理完数据后,应返回一个JSON...

    doGet与doPost下载文件的案例

    在描述中提到,`doGet`可以用来打印网页,这可能意味着它被用来生成或返回一个HTML页面,用户可以在浏览器中查看。`doGet`方法的通用形式如下: ```java protected void doGet(HttpServletRequest request, ...

    servlet基本框架[文].pdf

    在Java的Web开发中,Servlet是一个关键的组件,它用于扩展服务器的功能,处理HTTP请求并生成动态内容。本文档“servlet基本框架[文].pdf”涵盖了Servlet的基础知识,包括Servlet类的创建、配置以及与HTML表单交互的...

    jsp+servlet+javabean编写的简单的程序调用

    接着是`Servlet`,它是Java中的一个接口,用于扩展服务器的功能。Servlet处理HTTP请求,生成响应,并通过Web容器(如Tomcat)与客户端进行交互。Servlet生命周期包括加载、初始化、服务、销毁等阶段。在本示例中,...

    XPath递归下降分析 简单Servlet界面

    XPath递归下降分析是XML处理中的一个重要概念,它允许我们以层次结构的方式遍历XML文档。XPath(XML Path Language)是一种在XML文档中查找信息的语言,它可以用来选取节点、评估表达式以及执行对XML文档的操作。...

    简单的ajax+servlet表单数据验证.doc

    在实际项目中,前端JavaScript通过AJAX调用Servlet,Servlet处理业务逻辑并返回结果,前端再根据返回结果进行相应的提示或跳转,实现了前后端分离的高效交互。此方法在提高用户体验、减轻服务器负担方面具有明显优势...

    Servlet及Ajax数据交互

    当用户通过浏览器发送一个HTTP请求到服务器时,Servlet容器(如Tomcat)会捕获这个请求,并根据请求的URL找到对应的Servlet实例。如果Servlet尚未被创建,容器会先加载Servlet类,然后调用其`init()`方法进行初始化...

    jsp+JavaBean+servlet 实例..看一次保证你会

    **JavaBean**是Java编程中的一个组件模型,它遵循特定规范的Java类,可以被其他Java应用程序或框架(如JSP)重复使用。JavaBean通常具有默认构造函数,属性(getters和setters)以及封装的业务逻辑,便于数据管理和...

    Servlet 实验报告.docx

    在这个实验报告中,学生将学习如何使用Servlet来实现一个简单的登录系统,从而掌握Servlet的基本原理和应用。 实验的主要目标是: 1. 熟悉Servlet在Web开发中的角色,即在MVC(Model-View-Controller)模式中的...

    简单的二维码生成器

    在这个项目中,JSP可能被用来创建一个表单,用户可以输入要生成二维码的数据,提交后通过Servlet处理。JSP的执行过程包括翻译成Servlet、编译成.class文件、加载并执行。 3. **二维码生成库**:生成二维码通常需要...

    利用COS Servlet上传文件

    在`doPost`方法中,Servlet接收到文件上传请求后,首先获取表单参数`tableName`,然后定义一个本地目录`saveDirectory`来存储上传的文件。接着,Servlet使用`MultipartRequest`类来解析多部分表单数据,该类是处理...

    探讨Ajax获取表单值向Servlet传递的设计方案.doc

    如上述代码所示,可以创建一个initXmlHttp()函数来初始化这个对象。 2. **定义请求方法**:如doGet()和doPost()函数所示,分别对应HTTP的GET和POST请求。GET请求常用于获取数据,而POST请求通常用于提交数据。这两...

    https跨域POST提交实例(基于servlet)

    在现代Web开发中,跨域资源共享(CORS)是一个关键的概念,它允许浏览器发起的HTTP请求访问不同源的资源。本文将深入探讨一个基于Servlet实现的HTTPS跨域POST提交实例,以及如何解决从HTTP页面向HTTPS服务器进行提交...

    jquery与servlet交互

    在Web开发中,jQuery与Servlet的交互是常见且重要的技术结合。jQuery,一个高效、简洁的JavaScript库,极大地简化了JavaScript的DOM操作、事件处理、动画制作和Ajax交互。Servlet,作为Java Web开发中的服务器端组件...

    javaIDEA新手研究的ajax访问servlet,html获取后台数据

    3. **Servlet处理请求**:在Servlet中,你需要重写`doGet`或`doPost`方法来处理Ajax请求。根据请求参数执行相应的业务逻辑,例如从数据库查询数据。 4. **响应数据**:Servlet处理完请求后,可以通过`response....

    ajax在jsp、struts、servlet、webwork中的应用

    本文将探讨AJAX在JSP、Struts、Servlet、WebWork等不同框架中的应用方式,并通过一个示例来具体展示其实现过程。 #### 二、基础知识概述 1. **JSP(JavaServer Pages)**:是一种基于Java的服务器端技术,用于生成...

    Ext一个登陆的小例子 (java+servlet)

    在本文中,我们将深入探讨如何使用EXT框架与Java Servlet技术构建一个简单的登录示例。EXT是一个强大的JavaScript前端框架,主要用于创建交互式、响应式的Web应用。而Java Servlet是后端服务器端的技术,用于处理...

Global site tag (gtag.js) - Google Analytics