前言
`黑马旅游网网站进行编写前台和后台内容,在其中遇到的一些问题,以及解决思路。
一、问题
1、前端传递数据回后端
2、多条数据从后端传递回前端
3、前端页面中ajax方法显示数据
4、servlet方法抽取
二、解决
1、通过ajax方法调用servlet中的方法。
$.get("hotel/pageQuery",function (pb) {
//2.列表数据展示
var route_lis="";
for (var i = 0; i <pb.length ; i++) {
//获取{rid:1,rname:"xxx"}
var route=pb[i];
route_lis+='<tr class="gradeX">\n' +
'<td>'+i+'</td>\n' +
'<td>'+route.rname+'</td>\n' +
'<td>'+route.price+'\n' +
'</td>\n' +
'<td>'+route.routeIntroduce+'</td>\n' +
'<td class="center">'+route.rflag+'</td>\n' +
'<td class="center">'+route.isThemeTour+'</td>\n' +
'<td class="center"><a onclick="deleteh('+route.rid+')">删除</a>' +'/'+'<a onclick="updateh('+route.rid+')" >修改</a></td>'
'</tr>';
}
$("#display").html(route_lis);
$.get(“hotel/pageQuery”):Ajax调用servlet方法,获取到值。
2、
//4.将pageBean对象序列化为json,返回
writeValue(pb,response);
通过将需要传递的数据通过writeValue方法序列化即可,pb是我们传递的数据,response是servlet自带的一个响应。
3、
for (var i = 0; i <pb.length ; i++) {
//获取{rid:1,rname:"xxx"}
var route=pb[i];
route_lis+='<tr class="gradeX">\n' +
'<td>'+i+'</td>\n' +
'<td>'+route.rname+'</td>\n' +
'<td>'+route.price+'\n' +
'</td>\n' +
'<td>'+route.routeIntroduce+'</td>\n' +
'<td class="center">'+route.rflag+'</td>\n' +
'<td
通过获取到的pb对象,该对象接收了从后端传递回来的数据,可以通过对其进行for循环,进行拉取该对象中的数据。
4、想要抽取servlet方法,其实就是定义一个继承了HttpServlet 的servlet然后不能让它有被外界访问。
然后在将自己定义的其他servlet进行继承那个继承了HttpServlet的servlet。
package cn.itcast.travel.servlet;
import cn.itcast.travel.domain.Route;
import cn.itcast.travel.service.HotelService;
import cn.itcast.travel.service.impl.HotelServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
/*
张昊(java文件)
*/
@WebServlet("/hotel/*")
public class HotelServlet extends BaseServlet {
private HotelService hotelService=new HotelServiceImpl();
/*
查询
*/
public void pageQuery(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//3.调用service查询PageBean对象
List<Route> pb = hotelService.pageQuery();
//4.将pageBean对象序列化为json,返回
writeValue(pb,response);
}
/*
删除
*/
public void delete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取rid
String rid=request.getParameter("rid");
//调用service进行删除
hotelService.delete(rid);
}
/*
添加
*/
public void add(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取数据
String rname=new String(request.getParameter("rname").getBytes("iso-8859-1"),"utf-8");
String price=request.getParameter("price");
String routeIntroduce=new String(request.getParameter("routeIntroduce").getBytes("iso-8859-1"),"utf-8");
String rflag=request.getParameter("rflag");
String isThemeTour=request.getParameter("isThemeTour");
//调用service进行添加
hotelService.add(rname,price,routeIntroduce,rflag,isThemeTour);
}
/*
修改
*/
public void updata(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取数据
String rid=request.getParameter("rid");
String rname=new String(request.getParameter("rname").getBytes("iso-8859-1"),"utf-8");
String price=request.getParameter("price");
String routeIntroduce=new String(request.getParameter("routeIntroduce").getBytes("iso-8859-1"),"utf-8");
String rflag=request.getParameter("rflag");
String isThemeTour=request.getParameter("isThemeTour");
//调用service进行添加
hotelService.updata(rid,rname,price,routeIntroduce,rflag,isThemeTour);
}
}
就可以在这个servlet中进行定义自己想要的方法。
版权声明:本文为bankser原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。