【问题标题】:Sending data from JSP Page to Javascript in another Page将数据从 JSP 页面发送到另一个页面中的 Javascript
【发布时间】:2014-01-12 12:45:03
【问题描述】:

我正在尝试将 JSP 页面中从网络获取的数据发送到 html 文件以显示它,这里我编写了一个 ajax 函数,但没有数据以 html 形式发送到 JS。这个问题怎么解决??? 阿贾克斯:

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

这是我的 JSP 页面 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";
  }
 %>

【问题讨论】:

  • 如何将响应发送回 Ajax 函数?
  • 我在 java 脚本 @Aniket 中调用 ajax 函数
  • 你为什么不在你的jsp代码中简单地使用printwriter。然后您的响应将被捕获到您的 javascript 函数中的数据变量中
  • @Harikrishna :是的,但是您没有将任何响应发送回被调用的函数。
  • 我正在使用 url 在 ajax 函数中调用 jsp 文件

标签: javascript jquery html ajax jsp


【解决方案1】:

不要在 JSP 中编写 scriptlet,因为 Scriptlet 不应该在 JSP 中使用超过十年。学习 JSP ELJSTL,并使用 servlet 编写 Java 代码。
How to avoid Java Code in JSP-Files?

解决方案

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

阿贾克斯

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

小服务程序

创建名称为NetDataServlet 的servlet,并在Get 方法中添加以下代码

@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)

<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>  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-16
    • 2019-03-12
    • 1970-01-01
    • 2013-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多