jsp如何调用其他的url并且获得其数据

问题描述

描述:不是获得当前url路径,是调用其他的url

解决方案

目前为止还不知道LZ到底要的是什么,不管了,再来个Ajax的,很简单的demo。把两个jsp放到Web应用里面,要放在同一个目录下,打开ajaxGetPost.jsp这个页面,ajaxGetPost.jsp页面通过Ajax访问ajaxGetPostUse.jsp页面。<%@ page language="java" pageEncoding="GBK"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>Ajax Using Get and Post</title><script type="text/javascript">var xmlHttp;// 创建对象function createXmlHttpRequest(){if(window.XMLHttpRequest){xmlHttp = new XMLHttpRequest();} else if(window.ActiveXObject){xmlHttp = new ActiveXObject("Microsoft.XMLHttp");} else {alert("Your Browser Don't Support AJAX!");return false;}return true;}// 拼装查询字符串function createQueryString(){var firstName = document.getElementById("firstName").value;var birthday = document.getElementById("birthday").value;var queryString = "firstName=" + firstName + "&birthday=" + birthday; //两次编码解决中文乱码问题return encodeURI(encodeURI(queryString));}// GET方式进行异步请求function doRequestUsingGet(){if(!createXmlHttpRequest()) {return;}var url = "ajaxGetPostUse.jsp?" + createQueryString();//IE会自动缓存异步通信结果,在url后加一个毫秒数,使每次请求的地址都不一样,可解决问题url = url + "&timestamp=" + new Date().getTime();xmlHttp.onreadystatechange = handleStateChange;xmlHttp.open("GET", url);xmlHttp.send(null);}// POST方式进行异步请求function doRequestUsingPost(){if(!createXmlHttpRequest()) {return;}//IE会自动缓存异步通信结果,在url后加一个毫秒数,使每次请求的地址都不一样,可解决问题var url = "ajaxUsingGetPost?timestamp=" + new Date().getTime();var queryString = createQueryString();xmlHttp.onreadystatechange = handleStateChange;xmlHttp.open("POST", url);xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");xmlHttp.send(queryString);}// 处理服务端返回数据function handleStateChange(){if(xmlHttp.readyState == 4 && xmlHttp.status == 200){var responseDiv = document.getElementById("serverResponse");// responseDiv.innerHTML = xmlHttp.responseText; // 原始responseDiv.innerHTML = decodeURI(xmlHttp.responseText); // 解码}}</script></head><body><h4>哈哈,我的第一个Ajax程序O(∩_∩)O</h4><h3>输入姓名和生日</h3><form><input type="text" id="firstName" /><br /><input type="text" id="birthday" /><br /><input type="button" value="Get" onclick="doRequestUsingGet();" /><br /><input type="button" value="Post" onclick="doRequestUsingPost();" /></form><div id="serverResponse"></div></body></html><%@ page language="java" pageEncoding="GBK"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>Ajax Using Get and Post Use</title></head><body><%String firstName = request.getParameter("firstName");String birthday = request.getParameter("birthday");// 返回给Ajax调用者的内容out.println("Hello, " + firstName + ", your birthday is " + birthday + ".");%></body></html>
解决方案二:
描述:不是获得当前url路径,是调用其他的url1、如使用URLConnection 或 httpclient等工具抓取数据
解决方案三:
这个不是只要在第一个JSP页面ONload的时候用AJAX发起一个请求就可以了吗?
解决方案四:
你可以使用ajax得到返回的内容,然后再解析得到的内容就可以了
解决方案五:
简单的通过URLConnection:import java.net.*;import java.io.*;import java.util.Date;public class URLConnectionDemo {public static void main(String[] args) throws IOException {URL url = new URL("http://127.0.0.1:8080/cfStruts2Ex2/");URLConnection urlConn = url.openConnection();System.out.println("Date: " + new Date(urlConn.getDate()));System.out.println("Content-Type: " + urlConn.getContentType());int length = urlConn.getContentLength();System.out.println("Content-Lentgth: " + length);if (length > 0) {System.out.println("========== Content ==========");InputStream input = urlConn.getInputStream();int i = length;int c;while ((c = input.read()) != -1 && --i > 0) {System.out.print((char) c);}input.close();} else {System.out.println("No Content.");}}}或者可以用HttpClient:import java.io.IOException;import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;import org.apache.commons.httpclient.HttpClient;import org.apache.commons.httpclient.HttpException;import org.apache.commons.httpclient.HttpStatus;import org.apache.commons.httpclient.methods.GetMethod;import org.apache.commons.httpclient.params.HttpMethodParams;public class HttpClientTutorial {private static String url = "http://www.baidu.com/";public static void main(String[] args) {// Create an instance of HttpClient.HttpClient client = new HttpClient();// Create a method instance.GetMethod method = new GetMethod(url);// Provide custom retry handler is necessarymethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,new DefaultHttpMethodRetryHandler(3, false));try {// Execute the method.int statusCode = client.executeMethod(method);if (statusCode != HttpStatus.SC_OK) {System.err.println("Method failed: " + method.getStatusLine());}// Read the response body.byte[] responseBody = method.getResponseBody();// Deal with the response.// Use caution: ensure correct character encoding and is not binary// dataSystem.out.println(new String(responseBody, "GBK"));} catch (HttpException e) {System.err.println("Fatal protocol violation: " + e.getMessage());e.printStackTrace();} catch (IOException e) {System.err.println("Fatal transport error: " + e.getMessage());e.printStackTrace();} finally {// Release the connection.method.releaseConnection();}}}如果需要鉴权,那就只能用HttpClient,而且要加鉴权:String newUrl = "http://10.167.129.108/fnst_travel/BasicInformation.do";NameValuePair[] paramPairs = new NameValuePair[] {new NameValuePair("registrationPersonNum", "1"),new NameValuePair("myName", "Chen Feng"),new NameValuePair("myNameIDnumber", "123321123321"),new NameValuePair("myNamePhonenumber", "15951836132") };PostMethod method = new PostMethod(newUrl);method.setRequestBody(paramPairs);int statusCode = client.executeMethod(method);

时间: 2024-10-21 18:14:15

jsp如何调用其他的url并且获得其数据的相关文章

函数-关于jsp页面调用ajax 定时刷新的问题

问题描述 关于jsp页面调用ajax 定时刷新的问题 代码如下,哪位大神看一下 指出错误,貌似这样不好使啊 $(function(){ function show(){ $.ajax( { url: "normal.jsp", //这里是静态页的地址 type: "GET", //静态页用get方法 success:function(data){ $("#normal").html(data); } }); setInterval("s

jsp中调用上一个网页中调用的js里面的input text的值

问题描述 jsp中调用上一个网页中调用的js里面的input text的值 套了一个时间选择的模板,想要获取开始时间和结束时间,但是这两个出现在调用的js里面,怎么获取 解决方案 将控件绑定id,js中有通过id设置控件内容的方法 解决方案二: 当前网页和上一个网页是什么关系?iframe还是window.open? iframe可以用parent或者document.getElementById('ifrID').contentWindow得到相互引用, window.open用opener或

程序调用默认浏览器打开url时,如何带入自定义cookie

问题描述 程序调用默认浏览器打开url时,如何带入自定义cookie 想在qt程序中,调用默认浏览器打开网页,打开网页的时候,置入qt程序中获取的cookie 解决方案 这个需要想办法把cookie写入浏览器 不同浏览器位置不一样 解决方案二: 用你的程序实现一个http代理服务器,然后设置浏览器的代理地址为你的这个服务器,然后打开url,你的代理附加cooke并且实际和网站通讯. 自x们这个软件就是这个原理.

submit-form表单提交后ajax异步调用另一个url

问题描述 form表单提交后ajax异步调用另一个url ... ... 提交Submit function submitForm(){ if(_finst_taskComment.value==""){ alert("请填写审批意见"); }else{ document.getElementsByTagName("form")[0].submit(); } } 另一个url如http://........ 解决方案 function submi

filter-dofiter可以过滤jsp,html等后缀的url,但就是过滤不了.do请求是哪里错了吗

问题描述 dofiter可以过滤jsp,html等后缀的url,但就是过滤不了.do请求是哪里错了吗 <filter> <filter-name>Filter</filter-name> <filter-class>com.aa.Filter</filter-class> </filter> <filter-mapping> <filter-name>Filter</filter-name> <

图片-jsp中调用java方法,方法中文件路径问题

问题描述 jsp中调用java方法,方法中文件路径问题 我在jsp中了写了java代码调用java类的方法,方法中需要在网页下载一张图片保存 OutputStream os = new FileOutputStream(new File("identityCode/checkimage.JPEG")); 我这样写的,然后一直报 :系统找不到文件路径.路径各种都换了 还是不行 解决方案 解决JSP路径问题的方法jsp路径问题解决方法jsp调用js文件中文乱码问题解决方法 解决方案二: 试

jsp页面调用JavaBean(DOS界面编译类)

问题描述 jsp页面调用JavaBean(DOS界面编译类) 首先说明:我的配置的根目录文件在D:jsp文件文件夹. 我使用的工作环境及工具:Dreamweaver8+tomcat6.0+jdk6.0 我做得项目,就是简单测试:JSP页面调用JavaBean,手动编译的文件是:DBConnAccess.java (备注:其存放路径是:D:jspWEB-INFclassesmybean文件夹下) DBConnAccess.java里的代码如下: package conn; //导入包 import

jsp页面调用oracle存储过程为什么总是报ORA-08103: object no longer exists 错误提示呢?

问题描述 jsp页面调用oracle存储过程为什么总是报ORA-08103:objectnolongerexists错误提示呢?调用代码:{callINDI_QUERY_AAA(?)}我在别的贴上看到这样答案:就是如果oracle存储过程中有insert,update,delete这些语句并且有返回cursor这样的类型,需要显式设置conn.setAutoCommit(false),在调用过程后设置为conn.setAutoCommit(true);就可以了.我的存储过程中也有insert,u

dede:sql标签中调用文章链接url地址的方法

文章链接url地址的方法-"> {dede:sql sql="SELECT a.*,m.* FROM `dede_archives` a LEFT JOIN `dede_moives` m ON a.id=m.aid WHERE a.channel=18 LIMIT 0,10"} <a href="[field:id runphp='yes']$arcRow=GetOneArchive(@me);@me=$arcRow['arcurl'];[/field