感谢有人可以帮我解决这个问题。 我已经编码了一个servlet(它是一个http url)。我需要访问JSP中的servlet以使用ajax获取数据。 谁能告诉我如何获得这个?
下面给出了url链接示例。
$.ajax({
type: 'GET',
data : { },
success: function(data) {
console.log(data);
});
答案 0 :(得分:1)
Here关于ajax以及如何使用它的信息很少。
以下是带有json文件的示例ajax请求代码,
$.ajax({
url : 'your_servlet_url',
type : 'POST',
dataType : 'json',//
data : {
var yourVariable : jsonData // jsonData is jsonFormated data
},
contentType : 'application/json',
complete : function(response) {
console.log(response);
}
}
});
在servlet中,获取类似
的json数据JSONObject jObj = new JSONObject(request.getParameter("yourVariable"));
String myIndividualData = jObj.get("myIndividualDataFromJsp").toString().trim();
你可以像这样检索json数据。
ObjectMapper mapper = new ObjectMapper();
String jsonString = mapper.writeValueAsString(dataYouWantToSend);
resp.getWriter().write(jsonString);
数据内容:{}是您要发送给servlet的数据。这就是你如何使用json工作ajax,可能有很多不同的方法,因为你没有指定哪个数据时间而且不忘记添加json jar,Here就是链接。
答案 1 :(得分:0)
Parlad强调了AJAX设计中一个重要的常见做法是XML已被JSON取代(因此我们现在实现AJAJ吗?)。
但是对于你的问题,你可能需要更高一点。如果这确实是一个AJAX请求,那么您可能不希望将该服务实现为JSP。 JSP是动态网页的模板框架。即使对于简单的hello world连接测试,也很容易编写一个scriptlet来返回静态内容。
相反,您最好的实现是真正的servlet。
花点时间在这里阅读:
这是一个示例servlet,可用于了解如何处理请求。
package com.reallysimpleservice.web;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;
import java.util.Map;
import java.util.concurrent.*;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class servAjax
*/
//@WebServlet(name = "ServAjax", urlPatterns = { "/write/*", "/read/*" })
public class SimplyServed extends HttpServlet {
private ServletContext servContext;
private ServletConfig config;
/**
* @see HttpServlet#HttpServlet()
*/
public SimplyServed() {
super();
}
public void init() throws ServletException
{
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=UTF-8");
response.setCharacterEncoding("UTF-8");
PrintWriter responseOut = response.getWriter();
System.out.println("SimplyServed");
this.servContext = this.getServletContext();
System.out.println("<Begin>");
System.out.println("request.getParameter(\"whom\") = "+request.getParameter("whom")+"<br>");
System.out.println("servContext.getInitParameter(\"jdbcURL\") = "+servContext.getInitParameter("jdbcURL")+"<br>");
System.out.println("servContext.getInitParameter(\"dataService\") = "+servContext.getInitParameter("dataService")+"<br>");
System.out.println("request.getAttributeNames().hasMoreElements() = "+request.getAttributeNames().hasMoreElements()+"<br>");
if(request.getAttributeNames().hasMoreElements()) {
System.out.println("request.getAttributeNames().nextElement() = "+request.getAttributeNames().nextElement()+"<br>");
}
System.out.println("request.getHeaderNames().hasMoreElements() = "+request.getHeaderNames().hasMoreElements()+"<br>");
Enumeration<String> hnames = request.getHeaderNames();
String hname = "";
while(hnames.hasMoreElements()) {
hname = (String) hnames.nextElement();
System.out.println("request.getHeaderNames().nextElement() = "+hname+"<br>");
System.out.println("request.getHeader("+hname+") = "+request.getHeader(hname)+"<br>");
}
System.out.println("request.getAuthType() = "+request.getAuthType()+"<br>");
System.out.println("request.getCharacterEncoding() = "+request.getCharacterEncoding()+"<br>");
System.out.println("request.getContentLength() = "+request.getContentLength()+"<br>");
System.out.println("request.getContentType() = "+request.getContentType()+"<br>");
System.out.println("request.getContextPath() = "+request.getContextPath()+"<br>");
System.out.println("request.getRequestedSessionId() = "+request.getRequestedSessionId()+"<br>");
System.out.println("request.getRequestURI() = "+request.getRequestURI()+"<br>");
System.out.println("request.getLocalAddr() = "+request.getLocalAddr()+"<br>");
System.out.println("request.getLocalName() = "+request.getLocalName()+"<br>");
System.out.println("request.getLocalPort() = "+request.getLocalPort()+"<br>");
System.out.println("request.getMethod() = "+request.getMethod()+"<br>");
try {
System.out.println("request.getPart() = "+request.getPart("mime-type")+"<br>");
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ServletException e) {
e.printStackTrace();
}
System.out.println("request.getPathTranslated() = "+request.getPathTranslated()+"<br>");
System.out.println("request.getPathInfo() = "+request.getPathInfo() +"<br>");
System.out.println("request.getProtocol() = "+request.getProtocol()+"<br>");
System.out.println("request.getQueryString() = "+request.getQueryString()+"<br>");
System.out.println("request.getRequestedSessionId() = "+request.getRequestedSessionId()+"<br>");
System.out.println("request.getServletPath() = "+request.getServletPath()+"<br>");
System.out.println("request.isRequestedSessionIdFromCookie() = "+request.isRequestedSessionIdFromCookie()+"<br>");
System.out.println("request.isRequestedSessionIdFromURL() = "+request.isRequestedSessionIdFromURL()+"<br>");
System.out.println("request.isRequestedSessionIdValid() = "+request.isRequestedSessionIdValid()+"<br>");
System.out.println("request.isSecure() = "+request.isSecure()+"<br>");
System.out.println("request.getSession() = "+request.getSession()+"<br>");
System.out.println("request.getUserPrincipal() = "+request.getUserPrincipal()+"<br>");
System.out.println("request.isAsyncStarted() = "+request.isAsyncStarted()+"<br>");
System.out.println("request.isAsyncSupported() = "+request.isAsyncSupported()+"<br>");
System.out.println("</End>");
String resourceServlet = "";
String resourcePath = "";
String whom="";
resourceServlet = request.getServletPath();
resourcePath = request.getPathInfo();
whom=request.getParameter("whom");
responseOut.print("Hello "+whom);
}
}
用Java Script调用它。使用全局事件处理程序 - 这是处理响应的替代示例。
<script type="text/javascript" src="ScriptLibrary/jquery-1.10.2.js"></script>
<script type="text/javascript" src="ScriptLibrary/jquery.json-2.4.min.js"></script>
<script>
var objCounter;
function ajaxReq(ajaxQuery, mimeType, serv, path){
// confirm("ajaxQuery"+ajaxQuery);
// confirm("mimeType"+mimeType);
// confirm("serv"+serv);
// confirm("path"+path);
var slash = "/";
if (typeof serv == "undefined"){serv="";path="";slash="";}
if (typeof path == "undefined"){path="";slash="";}
if (serv == ""){path="";slash="";}
if (path == ""){slash="";}
var ajaxHREF = serv+slash+path;
$.ajax({
url: ajaxHREF,
type: "post",
data: ajaxQuery,
beforeSend: function ( xhr ) {
xhr.overrideMimeType(mimeType);
},
success: function(response, textStatus, jqXHR){
},
error: function(jqXHR, textStatus, errorThrown){
console.log("JSQL ajax error: " + textStatus + ", " + errorThrown);
console.log(jqXHR.responseText);
},
complete: function(){
}
});
}
function getGreeting() {
//var mimeType = "application/xml";
//var mimeType = "text/html";
//var mimeType = "application/json";
//var mimeType = "image/svg+xml";
var ajaxQuery = 'whom='+$('#helloWhom').find('.whom').val();
ajaxReq(ajaxQuery, mimeType, 'simply', 'served');
}
$(document).ajaxSuccess(function(event, xhr, settings) {
if (typeof settings.data == 'undefined') {return false;}
if (typeof settings.mimeType == 'undefined') {return false;}
var query = settings.data;
var mimeType = settings.mimeType;
if (query.match(/whom/)){
if(mimeType.match(/application\/xml/)){
}
if(mimeType.match(/text\/html/)){
$('#divGreeting').text(xhr.responseText);
}
if(mimeType.match(/application\/json/)){
}
if(mimeType.match(/image\/svg\+xml/)){
}
}
});
</script>