将数据从JSP页面发送到另一个页面中的Javascript [英] Sending data from JSP Page to Javascript in another Page

查看:101
本文介绍了将数据从JSP页面发送到另一个页面中的Javascript的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图将JSP网页中的网络数据发送到html文件以显示它,在这里我写了一个ajax函数,但没有数据在html中传到JS。如何解决这个问题?
Ajax:

I'm trying to send the data got from network in JSP page to html file in order to display it, Here I wrote an ajax function but no data coming to JS in html. How to resolve this issue??? Ajax:

$.ajax({
  url:'anr_data.jsp',
  cache:false,
   success:function(data,status){   
    alert(data);    
  },
  error:function(){
     alert("failed to fecth data");
 }
});

这是我的JSP页面
JSP:

Here is my JSP page JSP:

<%@page import="java.net.URI"%>

<%@page import="java.io.BufferedReader"%>

<%@page import="org.apache.http.client.methods.HttpGet,java.io.InputStreamReader"%>

<%@page import="java.io.BufferedReader,java.io.IOException"%>

<%@page import="org.apache.http.client.methods.HttpGet,org.apache.http.HttpResponse" %>

<%@page import="org.apache.http.impl.client.DefaultHttpClient" %>

<%@page import="org.apache.http.client.HttpClient" %>

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%

// get the input values
double val1 = 10;
double val2 = 12;
HttpResponse response1 ;
int responseCode = 0; 
String errorMsg = "";
try { 
String url = "http://10.138.89.70:9090/anrs";

HttpGet request1 = new HttpGet(url);
HttpClient client = new DefaultHttpClient();
// add request header
//request.addHeader("User-Agent", USER_AGENT);
response1 =  client.execute(request1);

System.out.println("response is "+response1.toString());
responseCode = response1.getStatusLine().getStatusCode();
BufferedReader rd = new BufferedReader(new     InputStreamReader(response1.getEntity().getContent()));

StringBuffer result = new StringBuffer();
String line = "";
while ((line = rd.readLine()) != null) {
    result.append(line);
}
out.println(result); 
System.out.println("result is "+result);
    } catch (Exception e) {
System.out.print(e.toString());
    errorMsg = "Non-numeric input";
  }
 %>


推荐答案

strong>,因为scriptlet不应该在JSP中使用超过十年。了解JSP EL JSTL ,并将Java代码用于servlet。

请参阅如何避免JSP-文件?

Do not write scriptlets in JSP, because scriptlets shouldn't be used in JSPs for more than a decade. Learn the JSP EL, the JSTL, and use servlet for the Java code.
See How to avoid Java Code in JSP-Files?

在Ajax函数中调用servlet而不是JSP

In Ajax function call servlet instead of JSP

$.ajax({
   url:'NetDataServlet',     // call servlet NetDataServlet
   cache:false,
   success:function(data){   
      alert(data);    
   },
   error:function(){
      alert("failed to fecth data");
   }
});  



Servlet



创建名为 NetDataServlet 获取方法添加以下代码

Servlet

Create servlet with name NetDataServlet and inside Get method add following code

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws 
                                                         ServletException, IOException {   

 //all your scriptlet code from JSP here
 ......
 .......
 ........
 String mesg = "success"
 response.setContentType("text/plain");  // Set content type of the response.
 response.setCharacterEncoding("UTF-8"); 
 response.getWriter().write(mesg);       // Write response body.
}  



Servlet的部署描述符(web.xml)



Deployment descriptor (web.xml) for the Servlet

<servlet>
  <servlet-name>NetDataServlet</servlet-name>
  <servlet-class>com.stackoverflow.NetDataServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>NetDataServlet</servlet-name>
  <url-pattern>/NetDataServlet/*</url-pattern>
</servlet-mapping>  

这篇关于将数据从JSP页面发送到另一个页面中的Javascript的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆