前言:
一般来说表单数据是在网页前端上面实现,在对应框内填入数据,点击提交按钮即将数据传递给后台(action的值指定负责处理表单数据的具体哪个servlet)。但是其实java代码也是可以远程post表单数据给服务器的Servlet程序,下面讲一讲详细步骤。
一、客户端
编写java程序
主要思想就是利用http协议,post数据到指定url地址。
直接看下面代码:代码摘自《java核心技术卷2第9版》,我稍作修改,使之更易看懂,原程序的数据来源是放在一个properites文件中,我为了程序好读懂改成在程序中直接对要传输的参数进行赋值。
数据传输是以键值对的方式(Key-Value)形式传送。可以传送很多对键值对,比如说(k1,v1)(k2,v2) (k3,v3)......这所有的键值对都存放在Map集合当中,在服务器端,使用HttpServletRequest类的一个方法:getParameter("k1"),即可将客户端传来的k1对应的value值读到,以字符串返回。
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class AndroidPost {
public static void main(String[] args) throws IOException {
/**
url这里是一个重点,服务器端使用的servlet,是tomcat容器在负责调用,
tomcat默认的监听端口即是8080,IP地址如果是远程的或者使用的云服务器,
那就换成自己的IP,关键是8080端口后面的内容,test1其实是tomcat目录下的一个webapp,
test1可以理解成是一个tomcat下面的工程,而Upload_html这个则是具体的负责
接收java代码传来的数据的servlet名称,后缀.java省掉。同时在tomcat的test1工程下面
(或者说文件夹下面)要新建一个WEB-INF的文件夹,在这个文件夹下面要建一个
web.xml文件,在里面要进行配置才能把url这个地址和具体servlet程序关联起来。