[英]Servlet URL call in JSP using AJAX
感谢有人可以协助我。 我已经编码了一个servlet(它的http url)。 我将需要使用Ajax访问JSP中的servlet来获取数据。 有人可以给我打电话怎么获得这个?
下面的url链接用于示例。
$.ajax({
type: 'GET',
data : { },
success: function(data) {
console.log(data);
});
这是关于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的数据。 这就是使用ajax处理json的方式,可能有很多不同的方法,因为您没有指定哪个数据时间,也不要忘记添加json jar, 这是链接。
Parlad强调了AJAX设计中的一个重要的通用做法是XML已被JSON取代(因此,我们现在是否实现AJAJ?)。
但是对于您的问题,您可能需要将重点放在更高一点。 如果这确实是AJAX请求,那么您可能不希望将服务实现为JSP。 JSP是动态网页的模板框架。 即使对于简单的hello world连接测试,也很容易编写脚本以返回静态内容。
最好的实现是真正的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 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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.