比如这样一个表单:<form action="Controller?ID=2006" method="post">
<table align="center">
<tr>
<th>
   <input type="text" name="con" value="test" size=42 maxlength=100>
   <input type="submit" name="b" value="搜索">
</th><th></th>
</tr>
<tr>
</tr>
</table>
</form>在java程序里怎么实现提交给服务器?用到哪个类?

解决方案 »

  1.   

    [/Quote][/Quote]
    [/Quote][/Quote][/Quote][/Quote]
      

  2.   

    java程序里实现,那你用的是JSP。
    那么这个JSP页面在响应客户端请求的时候是运行服务器上的Servlet
    如果你用的是Tomcat 可以在Tomcat安装目录\项目名\WEB-INF\org\apache\jsp\下找到对应的java源文件。
    它实现的java中的Servlet类看一下《JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用》这本书package org.apache.jsp;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import javax.servlet.jsp.*;
    import java.sql.*;
    import java.net.*;public final class 页面名称_jsp extends org.apache.jasper.runtime.HttpJspBase
        implements org.apache.jasper.runtime.JspSourceDependent {以Tomcat为例:
      

  3.   

    以Tomcat为例的实现图:
    http://p.blog.csdn.net/images/p_blog_csdn_net/duduyumao/416109/t_servlet.JPG
      

  4.   

    以Tomcat为例的实现图:
    http://p.blog.csdn.net/images/p_blog_csdn_net/duduyumao/416109/o_servlet.JPG不好意思不会贴图
      

  5.   

    如果根据你提供的代码,当你点击“搜索”按钮的时候就会把表单提交到服务器,
    <form action="Controller?ID=2006" method="post"> form里有几个参数,红色就是你要把表单提交到的路径(也就是服务器了),通过配置文件这个路径对应一个相应处理类,来处理的提交的表单信息,作出相应的处理,例如链接数据库,验证输入信息,然后跳转页面。
    蓝色字体是提交的方式,有两种POST和GET,具体区别上网搜一下。
      

  6.   

    Servlet + jsp + JavaBean
      

  7.   

    意思就是在java程序中发送这个带post参数的http请求给服务器(我现在用的是tomcat)
      

  8.   

    你点机你那个submit按扭后就自动提交到了,然后在另外一个页面用request.parameter接受,就能得到数据拉,用到的包javax.servle.*;
      

  9.   

    楼主的意思是 用一段非jsp的小代码发送http请求对吧如果是的话 用httpclient 很好解决这个问题
      

  10.   

    lz是说 客户端数据 怎么传给 服务器的吗?
    那就是post/get具体 数据流 的传送就要参考http协议、tcp/Ip协议
      

  11.   


    import java.io.DataInputStream;
    import java.io.DataOutputStream;
    import java.io.IOException;
    import java.io.UnsupportedEncodingException;
    import java.net.URL;
    import java.net.URLConnection;
    import java.net.URLEncoder;public class Browser
    {
    private String m_charSet; private String m_strUrl; private String m_strRequest; /**
     * 构造函数
     * @param strUrl http地址或https地址
     */
    public Browser(String strUrl)
    {
    m_strUrl = strUrl;
    m_strRequest = "";
    m_charSet = System.getProperty("file.encoding");
    if (m_charSet == null || m_charSet.equals(""))
    {
    m_charSet = "UTF-8";
    }
    } /**
     * 设置编码
     * @param strCharSet 编码字符串,如:GBK、UTF-8等
     */
    public void setCharSet(String strCharSet)
    {
    m_charSet = strCharSet;
    if (m_charSet == null || m_charSet.equals(""))
    {
    m_charSet = System.getProperty("file.encoding");
    if (m_charSet == null || m_charSet.equals(""))
    {
    m_charSet = "UTF-8";
    }
    }
    } /**
     * 设置提交参数
     * @param strName 参数的名字
     * @param strValue 参数的值
     * @throws UnsupportedEncodingException 编码格式不存在异常
     */
    public void setParameter(String strName, String strValue) throws UnsupportedEncodingException
    {
    if (m_strRequest.equals(""))
    {
    m_strRequest = strName.trim() + "=" + URLEncoder.encode(strValue, m_charSet);
    }
    else
    {
    m_strRequest = m_strRequest + "&" + strName.trim() + "=" + URLEncoder.encode(strValue, m_charSet);
    }
    } /**
     * 发送字符串内容
     * @param strXml 字符串内容,通常是XML内容
     * @return
     * @throws IOException 异常信息
     */
    public String sendXmlRequest(String strXml) throws IOException
    {
    String strTemp = m_strRequest;
    m_strRequest = strXml;
    String strResult = sendPostRequest();
    m_strRequest = strTemp;
    return strResult;
    }

    /**
     * 发送申请
     * @return 返回字符串
     * @throws IOException 发送失败
     */
    public String sendPostRequest() throws IOException
    {
    String strResponse = "";
    URL url;
    URLConnection urlConnection;
    url = new URL(m_strUrl);
    urlConnection = url.openConnection();
    urlConnection.setDoOutput(true); // 需要向服务器写数据
    urlConnection.setDoInput(true); // 
    urlConnection.setUseCaches(false); // 获得服务器最新的信息
    urlConnection.setAllowUserInteraction(false);
    urlConnection.setRequestProperty("Content-type", "application/x-www-form-urlencoded");
    // 必须告诉服务器你发送的数据大小. 这也同样告诉
    urlConnection.setRequestProperty("Content-length", "" + m_strRequest.length());
    // Open an output stream so you can send the info you are posting
    DataOutputStream dataOutputStream = new DataOutputStream(urlConnection.getOutputStream());
    // Write out the actual request data
    dataOutputStream.writeBytes(m_strRequest);
    dataOutputStream.close();
    // 判断访问服务器的返回值 DataInputStream dataInputStream = new DataInputStream(urlConnection.getInputStream());
    int ch;
    while ((ch = dataInputStream.read()) >= 0)
    {
    strResponse = strResponse + (char) ch;
    }
    dataInputStream.close(); byte byteBuffer[] = new byte[strResponse.length()];
    for (int i = 0; i < strResponse.length(); i++)
    {
    byteBuffer[i] = (byte) strResponse.charAt(i);
    }
    strResponse = new String(byteBuffer); return strResponse;
    }
    }
    建议将其中的URLConnection换成带有端口设置的Socket;这样处理可以对付服务器硬件防火墙的问题;
      

  12.   

    总算有人理解我的意思了。代码正在研究,说的清楚点就是用java程序提交一个带参数的http请求,楼上的谢了!