我想在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代码可以和这些站点轻松的实现对话。
分享到:
相关推荐
例如,在HTML文件中定义一个JavaScript函数`test()`,该函数改变表单的`action`属性为Servlet的URL,然后提交表单。这样,当用户点击一个特定的按钮时,JavaScript函数会被调用,从而发起对Servlet的请求。 在实际...
在这个过程中,"JspJsonServlet"可能是项目中的一个Servlet类名,负责接收和处理来自JSP的JSON请求。文件可能包含Servlet的实现,包括JSON解析和序列化以及业务逻辑处理。 总结来说,这个流程展示了如何利用JSP、...
探讨Ajax获取表单值向Servlet传递的设计方案 在 JavaWeb 领域,MVC ...在本文中,我们探讨了 Ajax 获取表单值向 Servlet 传递的设计方案,并对相关的技术和概念进行了详细的解释,为开发者提供了一个实用的解决方案。
3. 实现Servlet:在Java中创建一个Servlet,重写doPost方法以处理AJAX POST请求。在这里,你需要解析接收到的用户数据,进行业务逻辑处理,如数据库查询和验证。 4. 处理响应:Servlet处理完数据后,应返回一个JSON...
在描述中提到,`doGet`可以用来打印网页,这可能意味着它被用来生成或返回一个HTML页面,用户可以在浏览器中查看。`doGet`方法的通用形式如下: ```java protected void doGet(HttpServletRequest request, ...
在Java的Web开发中,Servlet是一个关键的组件,它用于扩展服务器的功能,处理HTTP请求并生成动态内容。本文档“servlet基本框架[文].pdf”涵盖了Servlet的基础知识,包括Servlet类的创建、配置以及与HTML表单交互的...
接着是`Servlet`,它是Java中的一个接口,用于扩展服务器的功能。Servlet处理HTTP请求,生成响应,并通过Web容器(如Tomcat)与客户端进行交互。Servlet生命周期包括加载、初始化、服务、销毁等阶段。在本示例中,...
XPath递归下降分析是XML处理中的一个重要概念,它允许我们以层次结构的方式遍历XML文档。XPath(XML Path Language)是一种在XML文档中查找信息的语言,它可以用来选取节点、评估表达式以及执行对XML文档的操作。...
在实际项目中,前端JavaScript通过AJAX调用Servlet,Servlet处理业务逻辑并返回结果,前端再根据返回结果进行相应的提示或跳转,实现了前后端分离的高效交互。此方法在提高用户体验、减轻服务器负担方面具有明显优势...
当用户通过浏览器发送一个HTTP请求到服务器时,Servlet容器(如Tomcat)会捕获这个请求,并根据请求的URL找到对应的Servlet实例。如果Servlet尚未被创建,容器会先加载Servlet类,然后调用其`init()`方法进行初始化...
**JavaBean**是Java编程中的一个组件模型,它遵循特定规范的Java类,可以被其他Java应用程序或框架(如JSP)重复使用。JavaBean通常具有默认构造函数,属性(getters和setters)以及封装的业务逻辑,便于数据管理和...
在这个实验报告中,学生将学习如何使用Servlet来实现一个简单的登录系统,从而掌握Servlet的基本原理和应用。 实验的主要目标是: 1. 熟悉Servlet在Web开发中的角色,即在MVC(Model-View-Controller)模式中的...
在这个项目中,JSP可能被用来创建一个表单,用户可以输入要生成二维码的数据,提交后通过Servlet处理。JSP的执行过程包括翻译成Servlet、编译成.class文件、加载并执行。 3. **二维码生成库**:生成二维码通常需要...
在`doPost`方法中,Servlet接收到文件上传请求后,首先获取表单参数`tableName`,然后定义一个本地目录`saveDirectory`来存储上传的文件。接着,Servlet使用`MultipartRequest`类来解析多部分表单数据,该类是处理...
如上述代码所示,可以创建一个initXmlHttp()函数来初始化这个对象。 2. **定义请求方法**:如doGet()和doPost()函数所示,分别对应HTTP的GET和POST请求。GET请求常用于获取数据,而POST请求通常用于提交数据。这两...
在现代Web开发中,跨域资源共享(CORS)是一个关键的概念,它允许浏览器发起的HTTP请求访问不同源的资源。本文将深入探讨一个基于Servlet实现的HTTPS跨域POST提交实例,以及如何解决从HTTP页面向HTTPS服务器进行提交...
在Web开发中,jQuery与Servlet的交互是常见且重要的技术结合。jQuery,一个高效、简洁的JavaScript库,极大地简化了JavaScript的DOM操作、事件处理、动画制作和Ajax交互。Servlet,作为Java Web开发中的服务器端组件...
3. **Servlet处理请求**:在Servlet中,你需要重写`doGet`或`doPost`方法来处理Ajax请求。根据请求参数执行相应的业务逻辑,例如从数据库查询数据。 4. **响应数据**:Servlet处理完请求后,可以通过`response....
本文将探讨AJAX在JSP、Struts、Servlet、WebWork等不同框架中的应用方式,并通过一个示例来具体展示其实现过程。 #### 二、基础知识概述 1. **JSP(JavaServer Pages)**:是一种基于Java的服务器端技术,用于生成...
在本文中,我们将深入探讨如何使用EXT框架与Java Servlet技术构建一个简单的登录示例。EXT是一个强大的JavaScript前端框架,主要用于创建交互式、响应式的Web应用。而Java Servlet是后端服务器端的技术,用于处理...