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,查看内容,数据获取成功!