黑马旅游网总结

本文档介绍了在黑马旅游网项目中,前端与后端数据交互的常见问题及解决方案。涉及前端通过Ajax调用Servlet方法传递数据,后端将PageBean对象序列化为JSON返回,以及前端如何解析并展示数据。同时展示了如何通过定义一个基础Servlet来统一处理请求。
摘要由CSDN通过智能技术生成


前言

`黑马旅游网网站进行编写前台和后台内容,在其中遇到的一些问题,以及解决思路。


一、问题

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中进行定义自己想要的方法。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值