使用Struts2和jQuery EasyUI实现简单CRUD系统(一)——从零开始,ajax与Servlet的交互

本文介绍如何在HTML页面中使用Ajax技术与后端Servlet进行交互,展示了一个简单的前后端交互实例,包括HTML页面、web.xml配置以及HelloServlet类的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        就是前端与后台的交互,学j2ee,很多时候,写jsp的时候,jsp帮你把前端后台串联起来。但事实上,很多时候前端写好的东西,需要后台进行一些处理,再去改成jsp代码是很恶心的东西,什么都是jsp。其实前端的html不需要更改成自己熟悉的jsp,而是通过ajax进行交互,后台提供接口即可。要用EasyUI和Struts这样方便的框架的同时,弄懂底层的原理也是有必要的。

新建一个静态的HTML页面,ajax.html。

[html]  view plain copy
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  2. <html>  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  5. <title>Insert title here</title>  
  6. <script type="text/javascript">  
  7.     var xmlhttp = null;  
  8.     var url = "helloServlet"  
  9.     function loadXMLDoc() {  
  10.           
  11.         if (window.XMLHttpRequest) {// code for all new browsers  
  12.             xmlhttp = new XMLHttpRequest();  
  13.         } else if (window.ActiveXObject) {// code for IE5 and IE6  
  14.             xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");  
  15.         }  
  16.         if (xmlhttp != null) {  
  17.             xmlhttp.onreadystatechange = state_Change;  
  18.             xmlhttp.open("GET", url, true);  
  19.             xmlhttp.send(null);  
  20.         }  
  21.     }  
  22.   
  23.     function state_Change() {  
  24.         if (xmlhttp.readyState == 4) {// 4 = "loaded"  
  25.             //alert("4");  
  26.             if (xmlhttp.status == 200) {// 200 = OK  
  27.             //  alert(xmlhttp.responseText);  
  28.                 document.getElementById("showview").innerHTML=xmlhttp.responseText;  
  29.             } else {  
  30.                 alert("Problem retrieving XML data");   
  31.             }  
  32.         }  
  33.     }  
  34. </script>  
  35. </head>  
  36. <body>  
  37. <!-- <body onload="loadXMLDoc();loadXMLDoc2()"> -->  
  38. <button onclick="loadXMLDoc();">ajax</button>  
  39.       
  40. <div id="showview"></div>  
  41. </body>  
  42. </html>  

点击ajax这个button的时候,请求helloServlet。


见web.xml配置。

[html]  view plain copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  3. xmlns="http://java.sun.com/xml/ns/javaee"   
  4. xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"   
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"   
  6. id="WebApp_ID" version="3.0">  
  7.   <display-name>ZeroToOne</display-name>  
  8. <!--   <welcome-file-list>  
  9.     <welcome-file>index.html</welcome-file>  
  10.     <welcome-file>index.htm</welcome-file>  
  11.     <welcome-file>index.jsp</welcome-file>  
  12.     <welcome-file>default.html</welcome-file>  
  13.     <welcome-file>default.htm</welcome-file>  
  14.     <welcome-file>default.jsp</welcome-file>  
  15.   </welcome-file-list> -->  
  16.     <servlet>  
  17.         <servlet-name>Hello</servlet-name>  
  18.         <servlet-class>Servlet.HelloServlet</servlet-class>  
  19.     </servlet>  
  20.     <servlet-mapping>  
  21.         <servlet-name>Hello</servlet-name>  
  22.         <url-pattern>/helloServlet</url-pattern>  
  23.     </servlet-mapping>  
  24. </web-app>  

跳转处理的其实是HelloServlet类。

[java]  view plain copy
  1. public class HelloServlet extends HttpServlet{  
  2.     @Override  
  3.     protected void doGet(HttpServletRequest req, HttpServletResponse resp)  
  4.             throws ServletException, IOException {  
  5.         resp.setContentType("text/html");  
  6.         PrintWriter out = resp.getWriter();  
  7.         out.println("<html>");  
  8.         out.println("<head>");  
  9.         out.println("<body>");  
  10.         out.println("<h1>HELLO!</h1>");  
  11.         out.println("</body>");  
  12.         out.println("</head>");  
  13.         out.println("</html>");  
  14.     }  
  15.     @Override  
  16.     protected void doPost(HttpServletRequest req, HttpServletResponse resp)  
  17.             throws ServletException, IOException {  
  18.     }  
  19. }  

Servlet利用PrintWriter将字符输出到客户端。如果直接访问该Servlet的话,可以直接看到HELLO!这些字符。

但是现在是通过ajax进行交互,ajax通过xmlhttp.responseText获取Servlet输出的字符,再将字符赋予id为showview的div,div将Servlet的数据展示在ajax.html页面上。


这便是最简单的前后端的交互。

源码下载:http://download.youkuaiyun.com/detail/iaiti/9114975

最终的结果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值