学生信息管理系统(2)

AJAX应用

 

  1 <html>
  2 <head>
  3     <title>图书管理系统</title>
  4     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5     <link rel="stylesheet" type="text/css" href="css/style.css">
  6     <link rel="stylesheet" type="text/css" href="css/jquery-ui.css">
  7     <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
  8     <script type="text/javascript" src="js/jquery-ui.js"></script>
  9     <script type="text/javascript">
 10         //通过AJAX方式检索所有的图书
 11         function RetrieveBooks() {
 12             $.post("list.action", {}, function(data) {
 13                 $("#BooksTable tr:gt(0)").remove();
 14                 for (var i = 0; i < data.length; i++) {
 15                     //插入表行
 16                     var trHtml = "<tr id = "+data[i].id +"><td>" + data[i].bookname + "</td><td>"
 17                         + data[i].author + "</td><td>" + data[i].price
 18                         + "</td><td><a href=\"#\" class=\"updateLink\">修改</a> <a href=\"#\" class=\"deleteLink\">删除</a></td></tr>";
 19                     $("#BooksTable").append(trHtml);
 20                 }
 21                 //绑定修改链接
 22                 $(".updateLink").click(function() {
 23                     $.post("edit.action", {id:$(this).closest("tr").attr("id")}, function(data){
 24                         $("#UpdateId").val(data.id);
 25                         $("#UpdateBookName").val(data.bookname);
 26                         $("#UpdateAuthor").val(data.author);
 27                         $("#UpdatePrice").val(data.price);
 28                         $("#UpdateDiv").dialog("open");
 29                     }, "json");
 30                 });
 31                 //绑定删除链接
 32                 $(".deleteLink").click(function(){
 33                     $.post("delete.action", {id:$(this).closest("tr").attr("id")}, function(data){
 34                         if (data=="1") {
 35                             RetrieveBooks();
 36                         } else
 37                         {
 38                             alert("删除图书失败!");
 39                         }
 40                     }, "json");
 41                 });
 42             }, "json");
 43         }
 44         $(function() {
 45             //设定Ajax提交编码格式为utf-8
 46             $.ajaxSetup({
 47                 contentType: "application/x-www-form-urlencoded; charset=utf-8"
 48             });
 49             //对“添加图书信息”窗口进行初始化
 50             $("#AddDiv").dialog({
 51                 title: "添加学生信息",
 52                 autoOpen : false,
 53                 height : 280,
 54                 width : 400,
 55                 modal : true,
 56                 show: "blind",
 57                 hide: "fade",
 58                 close : function(){
 59                     $("#AddBookName").val("");
 60                     $("#AddAuthor").val("");
 61                     $("#AddPrice").val("");
 62                 }
 63             });
 64             //对“修改图书信息”窗口进行初始化
 65             $("#UpdateDiv").dialog({
 66                 title: "修改图书信息",
 67                 autoOpen : false,
 68                 height : 280,
 69                 width : 400,
 70                 modal : true,
 71                 show: "blind",
 72                 hide: "fade",
 73                 close : function(){
 74                     $("#UpdateId").val("");
 75                     $("#UpdateBookName").val("");
 76                     $("#UpdateAuthor").val("");
 77                     $("#UpdatePrice").val("");
 78                 }
 79             });
 80             //对添加图书窗口的添加键绑定事件驱动程序
 81             $("#AddSubmit").click(function(){
 82                 //提交服务器
 83                 $.post("add.action", {bookname:$("#AddBookName").val(), author:$("#AddAuthor").val(), price:$("#AddPrice").val()}, function(data){
 84                     if (data=="1") {
 85                         $("#AddDiv").dialog("close");
 86                         RetrieveBooks();
 87                     } else
 88                     {
 89                         $("#AddTip").html("添加图书失败!请重新输入数据。");
 90                         $("#AddTip").show().delay(5000).hide(0);
 91                     }
 92                 }, "json");
 93             });
 94             //对添加图书窗口的添加键绑定事件驱动程序
 95             $("#UpdateSubmit").click(function(){
 96                 //提交服务器
 97                 $.post("update.action", {id:$("#UpdateId").val(),bookname:$("#UpdateBookName").val(), author:$("#UpdateAuthor").val(), price:$("#UpdatePrice").val()}, function(data){
 98                     if (data=="1") {
 99                         $("#UpdateDiv").dialog("close");
100                         RetrieveBooks();
101                     } else
102                     {
103                         $("#UpdateTip").html("更新图书失败!请重新输入数据。");
104                         $("#UpdateTip").show().delay(5000).hide(0);
105                     }
106                 }, "json");
107             });
108             //对“新增图书信息”链接绑定事件驱动程序
109             $("#AddButton").click(function() {
110                 $("#AddDiv").dialog("open");
111             });
112             //第一次加载检索所有书籍
113             RetrieveBooks();
114         });
115     </script>
116 </head>
117 <body>
118 <h1>学生管理系统</h1>
119 <a id="AddButton" href="#">增加学生信息</a>
120 <table style="width: 50%" id="BooksTable">
121     <tr>
122         <th>学号</th>
123         <th>姓名</th>
124         <th>性别</th>
125         <th>生日</th>
126         <th>住址</th>
127     </tr>
128 </table>
129 <div id="AddDiv" style="display: hidden">
130     <form id="AddForm">
131         <table style="width: 350px;" id="AddTable">
132             <tr>
133                 <th width="30%">学号:</th>
134                 <td width="70%" class="ltd"><input name="bookname" type="text" id="AddBookName"></td>
135             </tr>
136             <tr>
137                 <th>姓名:</th>
138                 <td class="ltd"><input name="author" type="text" id="AddAuthor"></td>
139             </tr>
140             <tr>
141                 <th>性别:</th>
142                 <td class="ltd"><input name="price" type="text" id="AddPrice">元</td>
143             </tr>
144             <tr>
145                 <th>生日:</th>
146                 <td class="ltd"><input name="price" type="text" id="AddPrice">元</td>
147             </tr>
148             <tr>
149                 <th>住址:</th>
150                 <td class="ltd"><input name="price" type="text" id="AddPrice">元</td>
151             </tr>
152             <tr>
153                 <th colspan="2"><input type="button" value="添加" id ="AddSubmit"> <input
154                         type="reset" value="重置"></th>
155             </tr>
156         </table>
157     </form>
158     <span style="color:red;" id="AddTip"></span>
159 </div>
160 <div id="UpdateDiv" style="display: hidden">
161     <form id="UpdateForm">
162         <table style="width: 350px;" id="UpdateTable">
163             <tr>
164                 <th width="30%">书名:</th>
165                 <td width="70%" class="ltd"><input name="id" type="hidden" id="UpdateId"><input name="bookname" type="text" id="UpdateBookName"></td>
166             </tr>
167             <tr>
168                 <th>作者:</th>
169                 <td class="ltd"><input name="author" type="text" id="UpdateAuthor"></td>
170             </tr>
171             <tr>
172                 <th>价格:</th>
173                 <td class="ltd"><input name="price" type="text" id="UpdatePrice">元</td>
174             </tr>
175             <tr>
176                 <th colspan="2"><input type="button" value="修改" id ="UpdateSubmit"> <input
177                         type="reset" value="重置"></th>
178             </tr>
179         </table>
180     </form>
181     <span style="color:red;" id="UpdateTip"></span>
182 </div>
183 <br />
184 <hr />
185 <div style="text-align: center; width: 100%; font-size: 12px; color: #333;">
186     &copy;版权所有:石家庄铁道大学信息科学与技术学院&nbsp;&nbsp;<a href="Lab04-2.png"
187                                               target="_blank">网站地图</a>
188 </div>
189 </body>
190 </html>

 

AjaxController
  1 package servlets;
  2 
  3 import java.io.IOException;
  4 import java.util.*;
  5 import javax.servlet.ServletException;
  6 import javax.servlet.annotation.WebServlet;
  7 import javax.servlet.http.HttpServlet;
  8 import javax.servlet.http.HttpServletRequest;
  9 import javax.servlet.http.HttpServletResponse;
 10 
 11 import org.json.*;
 12 
 13 import book.bean.Book;
 14 
 15 /**
 16  * 接受客户端后缀为action的请求,并进行处理,并返回响应
 17  *
 18  * @author Leiyu
 19  * @version 1.0
 20  *
 21  */
 22 @WebServlet("*.action")
 23 public class AjaxController extends HttpServlet {
 24     private static final long serialVersionUID = 1L;
 25 
 26     public AjaxController() {
 27         super();
 28         // TODO Auto-generated constructor stub
 29     }
 30 
 31     protected void doGet(HttpServletRequest request, HttpServletResponse response)
 32             throws ServletException, IOException {
 33         doPost(request, response);
 34     }
 35 
 36     protected void doPost(HttpServletRequest request, HttpServletResponse response)
 37             throws ServletException, IOException {
 38 
 39         request.setCharacterEncoding("utf-8");
 40         response.setContentType("text/html;charset=utf-8");
 41 
 42         String actionUrl = request.getServletPath(); // 获取客户端的访问URL地址信息
 43 
 44         if (actionUrl.equals("/list.action")) { // 查询所有图书
 45             ArrayList<Book> list = Book.getBookList(); // 调用BookInfo的getBookList方法完成
 46             // 使用JSONArray对象将结果构建为json对象并输出到客户端
 47             JSONArray jsonArray = new JSONArray();
 48             for (int i = 0; i < list.size(); i++) {
 49                 Book book = list.get(i);
 50                 Map<String, Object> map = new HashMap<String, Object>();
 51                 map.put("id", book.getId());
 52                 map.put("bookname", book.getBookname());
 53                 map.put("author", book.getAuthor());
 54                 map.put("price", book.getPrice());
 55                 JSONObject BookObj = new JSONObject(map);
 56                 jsonArray.put(BookObj);
 57             }
 58             // 向客户端返回json结果
 59             response.getWriter().print(jsonArray.toString());
 60 
 61         } else if (actionUrl.equals("/add.action")) { // 增加图书操作
 62             Book bi = new Book();
 63             bi.setBookname(request.getParameter("bookname"));
 64             bi.setAuthor(request.getParameter("author"));
 65             bi.setPrice(request.getParameter("price"));
 66 
 67             int r = Book.addBook(bi); // 调用BookInfo的addBook方法完成
 68             // 向客户端返回结果
 69             response.getWriter().print(r);
 70 
 71         } else if (actionUrl.equals("/edit.action")) { // 编辑图书操作
 72             String id = request.getParameter("id");
 73             Book bi = Book.getBookById(id); // 调用BookInfo的getBookById方法完成
 74             // 将该对象构建为json数据
 75             Map<String, Object> map = new HashMap<String, Object>();
 76             map.put("id", bi.getId());
 77             map.put("bookname", bi.getBookname());
 78             map.put("author", bi.getAuthor());
 79             map.put("price", bi.getPrice());
 80             JSONObject BookObj = new JSONObject(map);
 81             // 向客户端返回结果
 82             response.getWriter().print(BookObj.toString());
 83 
 84         } else if (actionUrl.equals("/update.action")) { // 更新图书操作
 85             Book bi = new Book();
 86             bi.setId(request.getParameter("id"));
 87             bi.setBookname(request.getParameter("bookname"));
 88             bi.setAuthor(request.getParameter("author"));
 89             bi.setPrice(request.getParameter("price"));
 90             int r = Book.updateBook(bi);// 调用BookInfo的updateBook方法完成
 91             response.getWriter().print(r); // 向客户端返回结果
 92 
 93         } else if (actionUrl.equals("/delete.action")) { // 删除图书操作
 94             String id = request.getParameter("id");
 95             int r = Book.deleteBook(id); // 调用BookInfo的deleteBook方法完成
 96             response.getWriter().print(r); // 向客户端返回结果
 97         }
 98     }
 99 
100 }

 

posted @ 2023-05-26 20:09  旺旺大菠萝  阅读(11)  评论(0编辑  收藏  举报