页面:
<body>
<form action="/。。。。" id="form1">
<input type="hidden" name="indexUrl" id="indexUrl">
<a href="javascript:void(0);" onclick="goTo();">URL</a>
</form>
</body>
<script type="text/javascript">
function goTo(){
var form = documentgetElementById("form1");
var url = locationhref;
var indexUrl = documentgetElementById("indexUrl");
indexUrlvalue = url;
formsubmit();
}
</script>
servlet的doPost方法:
String indexUrl = requestgetParameter("indexUrl");
URL url = new URL(indexUrl);
InputStream is = urlopenConnection()getInputStream();
byte[] bs = new byte[9999];
int len = 0 ;
while((len = isread(bs, 0, 9999))!=-1){
Systemoutwrite(bs, 0, len);
}
isclose();
还可以用专门获取网页的JAR包,好像是jsoap上面的代码没有考虑转码的问题。如果是中文可能出现乱码,注意要统一编码格式。
------------------------------------------------------
修改了一下servlet的doPost方法,解决编码问题。我的页面是utf-8编码。
String indexUrl = requestgetParameter("indexUrl");
URL url = new URL(indexUrl);
InputStream is = urlopenStream();
// InputStream is = urlopenConnection()getInputStream();
InputStreamReader isr = new InputStreamReader(is,"utf-8");
char[] cs = new char[9999];
while(isrread(cs, 0, 9999)!=-1){
Systemoutprint(cs);
}
isclose();
html静态页面是不能接收参数的,你可以把html页面改为jsp页面,实现如下servlet类package onetwo;import javaioIOException;
import javaioPrintWriter;import javaxservletRequestDispatcher;
import javaxservletServletException;
import javaxservlet>
首先假设你的Servlet名称是 myservletjava
在webxml里是这样描述的
<servlet>
<servlet-name>myservlet</servlet-name>
<servlet-class>mypackagemyservlet</servlet-class>
</sevlet>
<servlet-mapping>/myservlet</servlet-mapping>
那么在你的form里这样写
<form action="/myservlet" method ="get">
<input type="text" name="txt1" value="123"/>
</form>
在myservletjava的doGet方法中就可以写成
String txtvalue=requestgetParameter("txt1");
这样就把网页中的参数传递到Servlet中了
在servlet里面进行重定向
responsesendRedirect("homehtmlparam=json字符串");
然后再html的js中,通过locationsearch获取param的value
获取url后面参数的value,可以用以下方法
function getParam(name){
var reg = new RegExp("(^|&)"+ name +"=([^&])(&|$)");
var r = windowlocationsearchsubstr(1)match(reg);
if(r!=null)return unescape(r[2]); return null;
}
var p=getParam('param');
直接在servlet中输出:
outprintln("<HTML>");outprintln(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
outprintln(" <BODY>");
outprint(" This is ");
outprint(thisgetClass());
outprintln(", using the POST method");
outprintln(" </BODY>");
outprintln("</HTML>");
servlet中判断之后跳转到相应显示html的页面XXjsp:
requestgetRequestDispatcher("XXjsp")forward(request, response);如果你非得这么做的话,用ajax在rchtml中请求数据!可是这样,逻辑就不对了!
登陆后经过Servlet,然后Servlet跳转到html,然后html在请求数据! 这太麻烦了!
最好的方法是,通过登陆》》Servlet>>Jsp 中间通过Session对象访问!
你想想 如果多个用户访问的时候,你这个系统根本无法判断哪个账号是哪个账户了!
Servlet+jsp
Html一般不会用于处理一些正式的业务!(特殊情况除外,比如你用框架的话可以很方便的用Html处理任何业务)
在doPost或doGet方法中通过PrintWriter out = responsegetWriter();然后outprintln("内容");直接输出,如果是用jquery 的ajax请求最好是outpringln(“json格式的内容”);json格式的内容,然后ajax获得返回的结果,解析json格式,把内容取出来。
以上就是关于java得到请求来的页面HTML全部的内容,包括:java得到请求来的页面HTML、我想从servlet跳转到html,并且传递参数给html,能实现吗、Servlet如何输出Html返回给客户端3等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)