超级简单的问题:如何在程序中提交表单??

abcdhy 2004-04-12 10:44:58
我想在自己的 Java 应用程序中,调用一个网页的内容!!

比如我要用 Java 来做一个简单的手机短消息发送器.
我就需要在程序里 提交一个表单 ,然后把提交表单数据后的回复 网页 给取下来.我要怎么才能实现这样的功能呢??

今天看到一个网友写的Java版 CSDNer 的部分代码?

他是使用的一个类来完成的,但我没有这个类的代码,也不知道其中的实现原理!

请各位大侠指点一下 谢谢!!!
...全文
62 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyforlove 2004-04-15
  • 打赏
  • 举报
回复
http://www.innovation.ch/java/HTTPClient/
abcdhy 2004-04-15
  • 打赏
  • 举报
回复
up
abcdhy 2004-04-15
  • 打赏
  • 举报
回复
呵呵,谢谢了!!

正在学习中!!
fxywkj 2004-04-14
  • 打赏
  • 举报
回复
学习新知识!
dszch 2004-04-14
  • 打赏
  • 举报
回复
上面网友说的办法可以呀!虽说是JSP,但是JSP在调用时也是被引擎转换成servlet.
而servlet不就是JAVA代码吗?
看看下面这段代码,就是一个JSP转换过来的SERVLET

package org.apache.jsp;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import org.apache.jasper.runtime.*;

public class formjsp_jsp extends HttpJspBase {


private static java.util.Vector _jspx_includes;

public java.util.List getIncludes() {
return _jspx_includes;
}

public void _jspService(HttpServletRequest request, HttpServletResponse response)
throws java.io.IOException, ServletException {

JspFactory _jspxFactory = null;
javax.servlet.jsp.PageContext pageContext = null;
HttpSession session = null;
ServletContext application = null;
ServletConfig config = null;
JspWriter out = null;
Object page = this;
JspWriter _jspx_out = null;


try {
_jspxFactory = JspFactory.getDefaultFactory();
response.setContentType("text/html; charset=gb2312");
pageContext = _jspxFactory.getPageContext(this, request, response,
null, true, 8192, true);
application = pageContext.getServletContext();
config = pageContext.getServletConfig();
session = pageContext.getSession();
out = pageContext.getOut();
_jspx_out = out;

out.write("\r\n");
out.write("<html>\r\n ");
out.write("<head>\r\n ");
out.write("<title>一个简单的表单JSP程序--点击确认后触发的JSP页面");
out.write("</title>\r\n ");
out.write("</head>\r\n \r\n ");
out.write("<body>\r\n 你的姓名是:\r\n ");
String nameStr=request.getParameter("name");
byte b[]=nameStr.getBytes("ISO-8859-1");
String name=new String(b);
out.print(name);
out.write("\r\n ");
out.write("<p>");
out.write("</p>\r\n \r\n ");
out.write("<font size=7 color=red>\r\n ");
out.write("<p>");
out.write("</p>\r\n 你的邮箱是:\r\n ");
out.print(request.getParameter("email"));
out.write("\r\n ");
out.write("</body>\r\n");
out.write("</html>");
} catch (Throwable t) {
out = _jspx_out;
if (out != null && out.getBufferSize() != 0)
out.clearBuffer();
if (pageContext != null) pageContext.handlePageException(t);
} finally {
if (_jspxFactory != null) _jspxFactory.releasePageContext(pageContext);
}
}
}
yunuo2010000 2004-04-14
  • 打赏
  • 举报
回复
学习
turbochen 2004-04-13
  • 打赏
  • 举报
回复
用法:
QueryString qs = new QueryString();
qs.add("username",myname);
qs.add("password",mypass);
PostHttp post = new PostHttp("http://www.csdn.net/member/logon.asp");
InputStream input = post.post(qs);
int read;
while((read=input.read())!=-1)
{
sysout.println((char)read);
}
turbochen 2004-04-13
  • 打赏
  • 举报
回复
/**
* 将查询字串用"POST"方式提交到服务器并返回值.
*
*
* @author Turbo Chen
*/
public class PostHttp
{
private URL url;

public PostHttp(URL url)
{
this.url = url;
}

/**
* 将查询字串提交(POST)到服务器.
* @param qs
* @return
* @throws IOException
*/
public InputStream post(QueryString qs) throws IOException
{
URLConnection conn = url.openConnection();
conn.setUseCaches(false);
((HttpURLConnection)conn).setRequestMethod("POST");
conn.setDoOutput(true);

OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream());
//qs.add("sessionid",Session.instance().getSessionID());

out.write(qs.toString());
out.flush();
out.close();

return conn.getInputStream();

}

/**
* 将查询字串提交(POST)到服务器.
* @param qs
* @return
* @throws IOException
*/
public InputStream post(NameValueList qs) throws IOException
{
QueryString vqs = new QueryString();
for ( int i=0;i<qs.size();i++ )
{
vqs.add(qs.getName(i),qs.getValue(i));
}

URLConnection conn = url.openConnection();
conn.setUseCaches(false);
((HttpURLConnection)conn).setRequestMethod("POST");
conn.setDoOutput(true);

OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream());
//qs.add("sessionid",Session.instance().getSessionID());

out.write(vqs.toString());
out.flush();
out.close();

return conn.getInputStream();

}


}

/**
* 生成URL查询字串.
*
*
* @author Turbo Chen
*/
public class QueryString
{
private String query;
private String charset ;

public QueryString(Object name, Object value, String encoding)
{
if( Charset.isSupported( encoding ) )
{
charset = encoding ;
}
else
{
charset = "UTF-8" ;
}


try
{
query = URLEncoder.encode( name.toString(),encoding ) + "=" +
URLEncoder.encode(value.toString(),charset) ;
}
catch (UnsupportedEncodingException e)
{
System.err.println(e);
}
}

public QueryString(Object name, Object value)
{
this( name , value, "UTF-8" );
}


public QueryString()
{
query = "";
charset="UTF-8";
}


public synchronized void add(Object name, Object value,String encoding)
{
try {
if(! query.trim().equals("")) query += "&" ;
query += URLEncoder.encode(name.toString(),encoding) + "=" +
URLEncoder.encode(value.toString(),encoding);
} catch ( UnsupportedEncodingException e ) {
this.add( name, value );
}

}

public synchronized void addAll(QueryString qs)
{
if ( ! query.trim().equals("") ) query +="&";
query += qs.toString();
}

public synchronized void add(Object name, Object value)
{
this.add(name,value,"UTF-8");
}

public String toString()
{
return query;
}

}
abcdhy 2004-04-13
  • 打赏
  • 举报
回复
谢谢大家!!

我说的是在 Java 应用程序中,也就是用 纯Java 的代码来实现 表单的提交和接收回复.
即不使用 html ,也不使用 JSP ,只使用 J2SE 来实现!!

这需要掌握 html 协议,使用 socket 来实现!!

这个实现在 tomcat 的 sevlet 包中有实现!!但它引入的东西太多.不能用在一般的应用程序中.
我看网上的一些程序,应该有使用在Java应用程序中的 Java 库存在,但我在网上一直都没有找到,谁能给我提供一份,谢谢了!!
yingmao2001 2004-04-13
  • 打赏
  • 举报
回复
<form action="*.jsp">
<input type=text name=text1>
<input type=submit name=submit1>
</form>
将输入框里的东西 提交给*.jsp
hairchu1 2004-04-13
  • 打赏
  • 举报
回复
他们说得很对
hojay2001 2004-04-13
  • 打赏
  • 举报
回复

<form action="1.jsp">
...
<input type=submit value="sub">
</form>
提交表单由1.jsp处理。
cenphoenix 2004-04-13
  • 打赏
  • 举报
回复
mark
jinsfree 2004-04-13
  • 打赏
  • 举报
回复
如他们所说
bs221cn 2004-04-13
  • 打赏
  • 举报
回复
<from action="jsp2.jsp">
<input type="text" name="text1">
<input type="submit" name="submit" value="Submit">
</from>
点Submit时会把text1所写内容传给jsp2.jsp;
jsp2.jsp内:
request.getParameter("text1").toString();
会得到这个值
softtao 2004-04-13
  • 打赏
  • 举报
回复
// 表单
<form name = "form1" method = "post">
<input type = "text" name = "text1" value = "">
......
</form>

// java程序中得到表单中输入值
String strText1 = "";
strText1 = (String)request.getParameter("text1");
Explorer22 2004-04-13
  • 打赏
  • 举报
回复
你说的是在java中,不是在 jsp中吧??
wandou999 2004-04-13
  • 打赏
  • 举报
回复
<form action="xx.jsp">
...
<input type=submit value="sub">
</form>
abcdhy 2004-04-13
  • 打赏
  • 举报
回复
httpclient 的源代码

在哪里有啊?

谢谢!!!
binny 2004-04-13
  • 打赏
  • 举报
回复
搭个便车:

如果需要通过代理上网,

应该在程序里怎么设置代理服务器呢。

我看了httpclient得sample可是没看明白,

哪位高人知道

另外

TO楼主:

简单的操作可以向上面一样用socket

复杂的可以看一看httpclient
加载更多回复(4)

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧