html页面的一个form 通过 点击 搜索 按钮 获得一个在text输入的相关文字的查询页面。
我现在想 获得 查询页面的url。应该怎么写(text里输入有可能是中文) 多谢了
<form id="" name="" action="/search.htm?ad=-1&amp;method=search" method="post" >
<input name="words" type="text" id="words"/>
<input  id="sousuo" name="sousuo" type="submit" value="搜索" />
</form>

解决方案 »

  1.   

    action 应该去指向你的JSP或者后台servlet吧,然后转向相应的结果页面,显示搜索结果内容
      

  2.   

    谢谢楼上!我想要求解的是java代码的实现!
      

  3.   

    使用org.apache.commons.httpclient实现
      

  4.   

    public static String httpGet(String url) {
            String result = null;
            HttpClient httpClient = new HttpClient();
            GetMethod getMethod = new GetMethod(url);
            
            //使用系统提供的默认的恢复策略
            getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
                    new DefaultHttpMethodRetryHandler());
            try {
                int statusCode = httpClient.executeMethod(getMethod);//执行getMethod
                if (statusCode != HttpStatus.SC_OK) {
                }
                InputStream in = getMethod.getResponseBodyAsStream();
                result = streamToString(in);
            } catch (HttpException e) {
            } catch (IOException e) {
            } finally {
                getMethod.releaseConnection(); //释放连接
            }
            return result;
        }
        private static String streamToString(InputStream in) {
            StringBuffer sb = new StringBuffer();
            BufferedReader br =
                    new BufferedReader(new InputStreamReader(in));
            String strLine = "";
            try {
                while ((strLine = br.readLine()) != null) {
                    sb.append(strLine.trim());
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            return sb.toString();
        }
      

  5.   

    可以具体点么!我标题已经写了用httpclient,我想知道具体用法
      

  6.   

    这个很简单啊
    <form id="" name="" action="/search.htm?ad=-1&amp;method=search" method="post" >
    <input name="words" type="text" id="words"/>
    <input id="sousuo" name="sousuo" type="submit" value="搜索" />
    </form>HttpClient client = new HttpClient()
    PostMethod method = new PostMethod("http://server:port/context/search.htm?ad=-1&method=search");
    method.setParameter("words", words);
    client.executeMethod(method);
    method.releaseConnection();PostMethod会自动处理的,如果有中文传输错误可以在executeMethod之前增加
    method.addRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=GBK");就可以了
      

  7.   

    我贴一个完成的类吧,有两个方法去post,一个是不带参数,一个带参数(如有隐藏域,表单域 都可以处理)
    import java.io.IOException;
    import java.util.Enumeration;
    import java.util.Properties;import org.apache.commons.httpclient.Cookie;
    import org.apache.commons.httpclient.Header;
    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.HttpException;
    import org.apache.commons.httpclient.HttpStatus;
    import org.apache.commons.httpclient.NameValuePair;
    import org.apache.commons.httpclient.methods.PostMethod;public class Netway {
    private HttpClient httpClient = new HttpClient(); private String serverURL = ""; public String postPage(String page) {
    String url = this.getURL(page);
    PostMethod postMethod = new PostMethod(url);
    return this.post(postMethod);
    } private String getURL(String page) {
    // TODO Auto-generated method stub
    return "http://" + this.serverURL + "/" + page;
    } public String postPage(String page, Properties pdata) {
    String url = this.getURL(page);
    PostMethod postMethod = new PostMethod(url);
    NameValuePair[] data = new NameValuePair[pdata.size()];
    Enumeration keys = pdata.keys();
    int i = 0;
    for (; keys.hasMoreElements();) {
    String k = (String) keys.nextElement();
    String v = (String) pdata.get(k);
    data[i] = new NameValuePair(k, v);
    i++;
    }
    postMethod.setRequestBody(data);
    return this.post(postMethod);
    } private String post(PostMethod postMethod) {
    String result = "";
    try {
    int statusCode = httpClient.executeMethod(postMethod);
    // 301 or 302
    if (statusCode == HttpStatus.SC_MOVED_PERMANENTLY
    || statusCode == HttpStatus.SC_MOVED_TEMPORARILY) {
    Header locationHeader = postMethod
    .getResponseHeader("location");
    String location = null;
    if (locationHeader != null) {
    location = locationHeader.getValue();
    System.out
    .println("The page was redirected to:" + location);
    } else {
    System.err.println("Location field value is null.");
    }
    }
    result = postMethod.getResponseBodyAsString();
    } catch (HttpException e) {
    e.printStackTrace();
    } catch (IllegalArgumentException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    } System.out.println(result);
    return result; } public void setServerURL(String serverURL) {
    this.serverURL = serverURL; } public String getServerURL() {
    return serverURL;
    }}