servlet与jsp篇(一)$.ajax交互

时间:2021-01-01 21:10:54

servlet其实是利用java类编写的服务器端应用程序,他的生命周期可以分为三个阶段:初始化阶段、运行阶段和消亡阶段;

jsp页面实质上是一个HTML页面,但他包含了用户产生动态网页内容的java代码。

他们之间的联系千丝万缕,今天就跟大家分享一下最近的学习心得:通过JQuery的$.ajax()实现两者的交互。

1.servlet代码:servlet1.java

package servlet1;

import iface.RemoteServer;
import iface.Thrift_TargetInfo;
import net.sf.json.JSONArray;
import org.apache.thrift.TException;
import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.protocol.TProtocol;
import org.apache.thrift.transport.TSocket;
import org.apache.thrift.transport.TTransport;
import org.apache.thrift.transport.TTransportException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;

@WebServlet(name
= "Servlet1", urlPatterns = "/getTgs")
public class Servlet1 extends HttpServlet {
private static final int SERVER_PORT = 16003;
private static final String SERVER_IP = "192.168.31.235";
public static RemoteServer.Client Thrift_Client;
public static TTransport Thrift_transport;

public void startClient() throws TTransportException {
int TIMEOUT = 30000;
Thrift_transport
= new TSocket(SERVER_IP, SERVER_PORT, TIMEOUT);
TProtocol protocol
= new TBinaryProtocol(Thrift_transport);
Thrift_Client
= new RemoteServer.Client(protocol);
Thrift_transport.open();
System.out.println(
"Thrift16003端口已开启,客户端已创建...");
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

}


protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
JSONArray jsonArray
= new JSONArray();
try {
startClient();
ArrayList
<Thrift_TargetInfo> ships = (ArrayList<Thrift_TargetInfo>) Thrift_Client.Thrift_GetTarget();
jsonArray
= JSONArray.fromObject(ships);
System.out.println(jsonArray);
}
catch (TException e) {
e.printStackTrace();
}

//向前台的页面输出数据jsonArray
PrintWriter out = response.getWriter();
out.println(jsonArray);
out.close();
}
}

2.jsp页面中只需插入以下的脚本方法即可

var radarTgs;
$(
function () {
$.ajax({
dataType:
"json", //数据类型为json格式
contentType: "application/x-www-form-urlencoded; charset=utf-8",
type:
"GET",
url:
"/getTgs",
statusCode: {
404: function () {
alert(
'page not found');
}
},
success:
function (data) {
radarTgs
= data;
}
});

});

3.输出radarTgs,查看内容,数据获取成功!