酒店管理

package com.hnjd.hotel.controller;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.hnjd.hotel.entity.Room;
import com.hnjd.hotel.service.RoomService;
import com.hnjd.hotel.service.RoomServiceImpl;

import javax.servlet.ServletException;
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.List;

public class RoomController extends HttpServlet {
    private RoomService roomService = new RoomServiceImpl();
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");
         String path = req.getServletPath().substring(1,req.getServletPath().length()-3);
       if (path.equals("newroom")){
           newRoom(req,resp);
       }else  if (path.equals("addroom")){
           addRoom(req,resp);
       }else if(path.equals("getall")){
           getAll(req,resp);
       }else if(path.equals("removeroom")){
           removeRoom(req,resp);
       } else if(path.equals("updateroom")){
           updateRoom(req,resp);
       }
    }

    private void updateRoom(HttpServletRequest req, HttpServletResponse resp) throws IOException {
        //接收请求
        String idValue = req.getParameter("idValue");
        String roomNumValue = req.getParameter("roomNumValue");
        String roomTypeValue =req.getParameter("roomTypeValue");
        String roomPriceValue = req.getParameter("roomPriceValue");
        String roomStateValue = req.getParameter("roomStateValue");
        Room room = new Room();
        room.sethId(Integer.parseInt(idValue));
        room.sethNum(roomNumValue);
        room.sethType(roomTypeValue);
        room.sethPrice(Integer.parseInt(roomPriceValue));
        room.sethState(Integer.parseInt(roomStateValue));
        //处理请求
        int result = roomService.updateRoomByHidSerivce(room);
        PrintWriter printWriter = resp.getWriter();
        printWriter.println(result);
    }

    private void removeRoom(HttpServletRequest req, HttpServletResponse resp) throws IOException {
        //接收请求
        String id =req.getParameter("id");
        PrintWriter printWriter = resp.getWriter();
        //处理请求
        if(id == null || id== ""){
            printWriter.print(-1);
        }
       int result =  roomService.deleteRoomByHidSerivce(Integer.parseInt(id));
        printWriter.print(result);
    }

    private void getAll(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
        List<Room> list = roomService.checkSelectSerivce();
        //响应请求--json字符串
        ObjectMapper objectMapper = new ObjectMapper();
        PrintWriter printWriter = resp.getWriter();
        objectMapper.writeValue(printWriter,list);

        //req.setAttribute("list",list);
        //req.getRequestDispatcher("showroom.jsp").forward(req,resp);
    }

    private void addRoom(HttpServletRequest req, HttpServletResponse resp) throws IOException {
        //接受请求
        String roomNumValue = req.getParameter("roomNumValue");
        String roomTypeValue =req.getParameter("roomTypeValue");
        String roomPriceValue = req.getParameter("roomPriceValue");
        String roomStateValue = req.getParameter("roomStateValue");
        Room room = new Room();
        room.sethNum(roomNumValue);
        room.sethType(roomTypeValue);
        room.sethPrice(Integer.parseInt(roomPriceValue));
        room.sethState(Integer.parseInt(roomStateValue));
        //处理请求
        int result = roomService.checkAddRoomSerivce(room);
        PrintWriter printWriter = resp.getWriter();
        printWriter.println(result);
    }

    private void newRoom(HttpServletRequest req, HttpServletResponse resp) throws IOException {
        // 接收请求
        String input0Value =  req.getParameter("input0Value");
        //处理请求
      Room room = roomService.CheckRoomRepeatService(input0Value);
      //响应请求
      if (room != null){
          resp.getWriter().write("true");
      }else {
          resp.getWriter().write("false");
      }

    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req,resp);
    }
}

package com.hnjd.hotel.dao;

import com.hnjd.hotel.entity.Room;

import java.util.List;

public interface RoomDAO {
    //查询房间号
    Room selectRoomByRoomNum(String roomNum);
    //显示房间状态
    List<Room> showRoom();
    //添加房间信息
    int addRoom(Room room);
    //修改房间信息
    int updateRoom(Room room);
    //删除房间信息
    int deleteRoomByHid(int id);
}

package com.hnjd.hotel.dao;

import com.hnjd.hotel.entity.Room;
import com.hnjd.hotel.utils.JDBCUtil;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import java.sql.SQLException;
import java.util.List;

public class RoomDAOImpl implements RoomDAO {
   private QueryRunner queryRunner = JDBCUtil.getQueryRunner() ;
    @Override
    public Room selectRoomByRoomNum(String roomNum) {
       String sql = "select * from hotelroom where hNum = ?";
        Room room = null;
        try {
             room = queryRunner.query(JDBCUtil.getConnection(),sql,new BeanHandler<Room>(Room.class),roomNum);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return room;
    }

    @Override
    public List<Room> showRoom() {
        String sql = "select * from hotelroom";
        List<Room> list = null;
        try {
            list =  queryRunner.query(JDBCUtil.getConnection(),sql,new BeanListHandler<Room>(Room.class));
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return list;
    }
    //添加
    @Override
    public int addRoom(Room room) {
        String sql = "insert into hotelroom(hNum,hType,hPrice,hState) values (?,?,?,?)";
        Object[] params = {room.gethNum(),room.gethType(),room.gethPrice(),room.gethState()};
        int result = -1;
        try {
            result = queryRunner.update(JDBCUtil.getConnection(),sql,params);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return result;
    }

    @Override
    public int updateRoom(Room room) {
        String sql ="update hotelroom SET hNum=?,hType=?,hPrice=?,hState=? WHERE hId = ?";
        Object[] params = {room.gethNum(),room.gethType(),room.gethPrice(),room.gethState(),room.gethId()};
        int result =0;
        try {
            result = queryRunner.update(JDBCUtil.getConnection(),sql,params);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return result;
    }

    @Override
    public int deleteRoomByHid(int id) {
        String sql = "delete from hotelroom where hId=?";
        int result =0;
        try {
            result = queryRunner.update(JDBCUtil.getConnection(),sql,id);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return result;
    }

}

package com.hnjd.hotel.entity;

public class Room {
    private int hId;
    private String hNum;
    private String hType;
    private int hPrice;
    private int hState;

    public Room(){

    }
    public int gethId() {
        return hId;
    }

    public void sethId(int hId) {
        this.hId = hId;
    }

    public String gethNum() {
        return hNum;
    }

    public void sethNum(String hNum) {
        this.hNum = hNum;
    }

    public String gethType() {
        return hType;
    }

    public void sethType(String hType) {
        this.hType = hType;
    }

    public int gethPrice() {
        return hPrice;
    }

    public void sethPrice(int hPrice) {
        this.hPrice = hPrice;
    }

    public int gethState() {
        return hState;
    }

    public void sethState(int hState) {
        this.hState = hState;
    }

    @Override
    public String toString() {
        return "Room{" +
                "hId=" + hId +
                ", hNum='" + hNum + '\'' +
                ", hType='" + hType + '\'' +
                ", hPrice=" + hPrice +
                ", hState=" + hState +
                '}';
    }
}

package com.hnjd.hotel.service;

import com.hnjd.hotel.entity.Room;

import java.util.List;

public interface RoomService {

    Room CheckRoomRepeatService(String roomNum);
    int checkAddRoomSerivce(Room room);
    List<Room> checkSelectSerivce();
    int updateRoomByHidSerivce(Room room);
    int deleteRoomByHidSerivce(int id);
}

package com.hnjd.hotel.service;

import com.hnjd.hotel.dao.RoomDAOImpl;
import com.hnjd.hotel.entity.Room;
import com.hnjd.hotel.utils.JDBCUtil;

import java.util.List;

public class RoomServiceImpl implements RoomService {
    private RoomDAOImpl roomDAO = new RoomDAOImpl();
    @Override
    public Room CheckRoomRepeatService(String roomNum) {
        //业务层添加一个事务,保证一组的增删改能够完整的执行--原子性 一致性 持久性;一个事务对应一个Connection
        //手动关闭自动提交事务,开启事务
        JDBCUtil.beginTransation();
        //执行增删改操作
        Room room =roomDAO.selectRoomByRoomNum(roomNum);
        //提交事务
        JDBCUtil.commitTransation();
        return room;
    }

    @Override
    public int checkAddRoomSerivce(Room room) {
        JDBCUtil.beginTransation();
        //执行增删改操作
        int  result =roomDAO.addRoom(room);
        //提交事务
        JDBCUtil.commitTransation();
        return result;
    }

    @Override
    public List<Room> checkSelectSerivce() {
        JDBCUtil.beginTransation();
        //执行增删改操作
        List<Room>  result =roomDAO.showRoom();
        //提交事务
        JDBCUtil.commitTransation();
        return result;
    }

    @Override
    public int updateRoomByHidSerivce(Room room) {
        JDBCUtil.beginTransation();
        //执行增删改操作
        int  result =roomDAO.updateRoom(room);
        //提交事务
        JDBCUtil.commitTransation();
        return result;
    }

    @Override
    public int deleteRoomByHidSerivce(int id) {
        JDBCUtil.beginTransation();
        //执行增删改操作
        int  result =roomDAO.deleteRoomByHid(id);
        //提交事务
        JDBCUtil.commitTransation();
        return result;
    }
}

package com.hnjd.hotel.utils;

import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.apache.commons.dbutils.QueryRunner;

import java.sql.Connection;
import java.sql.SQLException;

public class JDBCUtil { //处理dao层的工具
    //加载c3p0
    private static ComboPooledDataSource dataSource = new ComboPooledDataSource("hotelc3p0");
    //通过c3p0里调用Connection 给到QueryRunner --QueryRunner 简化dao层操作
    //这样的queryRunner只能在不需要事务的前提下使用
   // private static QueryRunner queryRunner = new QueryRunner(dataSource);
    //在需要事务控制的情况下声明
    private  static QueryRunner queryRunner = new QueryRunner();
    //为了保证多线程以及事务的可用性情况,我们通过ThreadLocal变量来保存Connection对象,
    // 可用保证当前线程下所存储的对象是同一个
    private static ThreadLocal<Connection> threadLocal = new ThreadLocal<Connection>();
    //获取QueryRunner对象
    public static QueryRunner getQueryRunner() {
        return queryRunner;
    }
    //获取连接的方法
    public static Connection getConnection() {
        Connection connection =threadLocal.get();//可以获取在存储在threadLocal变量
        if(connection != null){
            return connection;
        }else {
            try {
                connection =dataSource.getConnection();
                threadLocal.set(connection);
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        return connection;
    }

    //开启事务的方法
    public static void beginTransation() {
        try {
            getConnection().setAutoCommit(false);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    //提交事务的方法
    public static void commitTransation() {
        try {
            getConnection().commit();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    //回滚事务
    public static void rollbackTransation() {
        try {
            getConnection().rollback();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
    <default-config>
        <property name="driverClass">com.mysql.cj.jdbc.Driver</property>
        <property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/hotels?useSSL=false&amp;serverTimezone=Asia/Shanghai
        </property>
        <property name="user">root</property>
        <property name="password">root</property>
        <property name="checkoutTimeout">30000</property>
        <property name="idleConnectionTestPeriod">30</property>
        <property name="initialPoolSize">10</property>
        <property name="maxIdleTime">30</property>
        <property name="maxPoolSize">100</property>
        <property name="minPoolSize">10</property>
        <property name="maxStatements">200</property>
    </default-config>
    <named-config name="hotelc3p0">
        <property name="driverClass">com.mysql.cj.jdbc.Driver</property>
        <property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/hotels?useSSL=false&amp;serverTimezone=Asia/Shanghai</property>
        <property name="user">root</property>
        <property name="password">root</property>
        <property name="acquireIncrement">50</property>
        <property name="initialPoolSize">100</property>
        <property name="minPoolSize">50</property>
        <property name="maxPoolSize">1000</property>
        <property name="maxStatements">0</property>
        <property name="maxStatementsPerConnection">5</property>
    </named-config>
</c3p0-config>

```xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>roomServlet</servlet-name>
        <servlet-class>com.hnjd.hotel.controller.RoomController</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>roomServlet</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
</web-app>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  <a href="addroom.jsp">添加房间信息</a>
  <p><a href="<%=request.getContextPath()%>/showroom.jsp">显示页面</a></p>
  </body>


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<div id="form">
    <form action="<%=request.getContextPath()%>/newroom.do" method="post">
        房间号: <input type="text" id="num"><span></span></br>
        </br> 房间类型:<select id="select0">
            <option value ="单人标准间">单人标准间</option>
            <option value ="单人豪华间">单人豪华间</option>
            <option value="双人标准间">双人标准间</option>
            <option value="双人豪华间">双人豪华间</option>
           </select>
        </br> 单间价格: <input type="text" id="price" ><span></span></br>
        </br> 房间状态:<select id="select1">
        <option value ="0" selected="selected">未预定</option>
        <option value ="1">预定</option>
        <option value="2">未入住</option>
        <option value="3">入住</option>
    </select>
        </br> <input type="button" value="提交" id="but"><span></span>
    </form>

</div>
<script src="js/jquery-3.5.1.min.js"></script>
   <script>
    var inputs = $("#form form input");
    var flag = new Array();
    var input0 = inputs.eq(0);
    inputs.eq(0).blur(function () {
       var input0Value = input0.val();
       var regroom = /\d{4}/;
       if (regroom.test(input0Value)){//发送异步请求校验数据的重复性。
           $.ajax({
               url:"<%=request.getContextPath()%>/newroom.do",//发送的地址
               data:"input0Value="+input0Value,//发送的数据,可以是字符串也可以是json对象
               type:"POST",//发送请求的类型 POST/GET
               async:true,//异步请求,默认是true即异步请求。不改变的情况可以不写
               cache:false,//设置是否从浏览器缓存中加载请求信息,默认是true。get请求的时候,如果请求的url不变就会从缓存读取数据
               //dataType:"html",//设置服务器响应的数据类型。如果要求服务器必须返回某一种数据类型可以设置这个参数。
               success:function (data) {//如果该异步请求成功,则结果会响应给到该函数,响应的数据都在 data里
                 if (data=="true"){
                     input0.next().html("<font color='red'>该房间已经录入系统</font>");
                     flag[0] = true;
                 }else {
                     input0.next().html("<font color='green'>√</font>");
                     flag[0] = false;
                 }
               },
               // error:function () {}
               //contentType 设置请求数据的格式默认是application/x-www-form-urlencoded 键值对 application/json json字符串
               contentType:"application/x-www-form-urlencoded;charset=utf-8"
           });
       }else {//
           input0.next().html("<font color='red'>输入正确的房间号类型</font>");
       }
    });
    //校验价格
    var input2 = inputs.eq(1);
    input2.blur(function () {
        var input2Value = input2.val();
        var regprice = /^[1-9]\d{2,3}$/;
        if (input2Value>0 && regprice.test(input2Value)){//发送异步请求校验数据的重复性。
            input2.next().html("<font color='green'>√</font>");
            flag[1] = false;
        }else {//
            input2.next().html("<font color='red'>输入正确的价格</font>");
            flag[1] =true;
        }
    });
    //添加
    $("#but").click(function () {
        var roomNumValue = inputs.eq(0).val();
        var roomTypeValue =  $("#select0 option:selected").val();
        var roomPriceValue = inputs.eq(1).val();
        var roomStateValue =  $("#select1 option:selected").val();
        if(flag[0] == true || flag[1] ==true){
            alert("请检查你的数据")
        }else {//发生异步请求
            $.ajax({
                url:"<%=request.getContextPath()%>/addroom.do",//发送的地址
                data:"roomNumValue="+roomNumValue+"&roomTypeValue="+roomTypeValue+
                    "&roomPriceValue="+roomPriceValue+"&roomStateValue="+roomStateValue,//发送的数据,可以是字符串也可以是json对象
                type:"POST",//发送请求的类型 POST/GET
                async:true,//异步请求,默认是true即异步请求。不改变的情况可以不写
                cache:false,//设置是否从浏览器缓存中加载请求信息,默认是true。get请求的时候,如果请求的url不变就会从缓存读取数据
                //dataType:"html",//设置服务器响应的数据类型。如果要求服务器必须返回某一种数据类型可以设置这个参数。
                success:function (data) {//如果该异步请求成功,则结果会响应给到该函数,响应的数据都在 data里
                    if (data==1){
                        alert("添加成功");
                        window.location.href = "<%=request.getContextPath()%>/showroom.jsp";
                    }else {
                        alert("添加失败");
                    }
                },
                // error:function () {}
                //contentType 设置请求数据的格式默认是application/x-www-form-urlencoded 键值对 application/json json字符串
                contentType:"application/x-www-form-urlencoded;charset=utf-8"
            });
        }
    });

   </script>
</body>
</html>

<%@ page import="com.hnjd.hotel.entity.Room" %>
<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2021/1/4 0004
  Time: 17:17
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>显示</title>
</head>
<body>
<div id="container">
</div>
<div id="eidtform" style="display: none">
    <form action="<%=request.getContextPath()%>/newroom.do" method="post">
        <input type="text" name="id" hidden="hidden">
        房间号: <input type="text" name="num"><span></span></br>
        </br> 房间类型:<select id="select0">
        <option value="单人标准间">单人标准间</option>
        <option value="单人豪华间">单人豪华间</option>
        <option value="双人标准间">双人标准间</option>
        <option value="双人豪华间">双人豪华间</option>
    </select>
        </br> 单间价格: <input type="text" name="price"><span></span></br>
        </br> 房间状态:<select id="select1">
        <option value="0" selected="selected">未预定</option>
        <option value="1">预定</option>
        <option value="2">未入住</option>
        <option value="3">入住</option>
    </select>
        </br> <input type="button" value="提交" id="but"><span></span>
    </form>

</div>
<script src="js/jquery-3.5.1.min.js"></script>
<script>
    $(document).ready(function () {
        $.ajax({
            url: "<%=request.getContextPath()%>/getall.do",
            type: "POST",//发送请求的类型 POST/GET
            async: true,//异步请求,默认是true即异步请求。不改变的情况可以不写
            cache: false,//设置是否从浏览器缓存中加载请求信息,默认是true。get请求的时候,如果请求的url不变就会从缓存读取数据
            success: function (data) {
                //json字符串
                var jsonObject = JSON.parse(data);
                var table = "<table border='1'><thead><tr>" +
                    "<td>ID</td>" +
                    "<td>房间编号</td>" +
                    "<td>房间类型</td>" +
                    "<td>价格</td>" +
                    "<td>房间状态</td>" +
                    "<td colspan='2'>操作</td>"
                "</tr></thead><tbody>";
                $.each(jsonObject, function (index, value) {
                    table += "<tr><td>" + value.hId +
                        "</td><td>" + value.hNum +
                        "</td><td>" + value.hType +
                        "</td><td>" + value.hPrice + "</td>";
                    if (value.hState == 0) {
                        table += "<td>未预定</td>";
                    } else if (value.hState == 1) {
                        table += "<td>预定</td>";
                    } else if (value.hState == 2) {
                        table += "<td>未入住</td>";
                    } else if (value.hState == 3) {
                        table += "<td>入住</td>";
                    }
                    table += "<td><a class='remove' name=" + value.hId + " href='<%=request.getContextPath()%>/removeroom.do'>删除</a></td>" +
                        "<td><a class='update' name=" + value.hId + " href='<%=request.getContextPath()%>/editroom.do'>修改</a></td></tr>";
                });
                table += "<th colspan='7'>" +
                    "<a href=\"<%=request.getContextPath()%>/addroom.jsp\">添加房间信息</a>\n" +
                    "</th></tbody></table>"
                $("#container").append(table);//将表格添加到div里

            }
            //contentType:"application/x-www-form-urlencoded;charset=utf-8"
        });
    });
    //动态html元素要绑定事件需要使用on(事件,选择器,函数)实现事件的绑定
    $("#container").on('click', '.remove', function () {
        var attrNameValue = $(this).attr("name");
        $.ajax({
            url: "<%=request.getContextPath()%>/removeroom.do?id=" + attrNameValue,
            type: "GET",
            async: true,
            cache: false,
            success: function (data) {
                if (data == -1) {
                    alert("删除失败");
                } else if (data == 1) {
                    alert("删除成功!");
                    window.location.href = "showroom.jsp";
                }
            }
        });
        return false;
    });

    $("#container").on('click', '.update', function () {
        $("#eidtform").css("display", "block");
        var tr = $(this).parent().parent();
        var td = tr.children();
        $("#eidtform form input[name='id']").val(td.eq(0).html());
        $("#eidtform form input[name='num']").val(td.eq(1).html());
        var td2Value = td.eq(2).html();
        if (td2Value == "单人标准间") {
            $("#select0 option").eq(0).prop("selected", true);
        } else if (td2Value == "单人豪华间") {
            $("#select0 option").eq(1).prop("selected", true);
        } else if (td2Value == "双人标准间") {
            $("#select0 option").eq(2).prop("selected", true);
        } else if (td2Value == "双人豪华间") {
            $("#select0 option").eq(3).prop("selected", true);
        }
        $("#eidtform form input[name='price']").val(td.eq(3).html());
        var td4Value = td.eq(4).html();
        console.log(td4Value);
        if (td4Value == "未预定") {
            $("#select1 option").eq(0).prop("selected", true)
        } else if (td4Value == "预定") {
            $("#select1 option").eq(1).prop("selected", true)
        } else if (td4Value == "未入住") {
            $("#select1 option").eq(2).prop("selected", true)
        } else if (td4Value == "入住") {
            $("#select1 option").eq(3).prop("selected", true)
        }
        return false;
    });
    var inputs = $("#form form input");
    $("#but").click(function () {
        var idValue = $("#eidtform form input[name='id']").val();
        var roomNumValue = $("#eidtform form input[name='num']").val();
        var roomTypeValue = $("#select0 option:selected").val();
        var roomPriceValue = $("#eidtform form input[name='price']").val();
        var roomStateValue = $("#select1 option:selected").val();
        console.log(roomStateValue);
        $.ajax({
            url: "<%=request.getContextPath()%>/updateroom.do",//发送的地址
            data: "idValue=" + idValue + "&roomNumValue=" + roomNumValue + "&roomTypeValue=" + roomTypeValue +
                "&roomPriceValue=" + roomPriceValue + "&roomStateValue=" + roomStateValue,//发送的数据,可以是字符串也可以是json对象
            type: "POST",//发送请求的类型 POST/GET
            async: true,//异步请求,默认是true即异步请求。不改变的情况可以不写
            cache: false,//设置是否从浏览器缓存中加载请求信息,默认是true。get请求的时候,如果请求的url不变就会从缓存读取数据
            //dataType:"html",//设置服务器响  应的数据类型。如果要求服务器必须返回某一种数据类型可以设置这个参数。
            success: function (data) {//如果该异步请求成功,则结果会响应给到该函数,响应的数据都在 data里
                if (data == 1) {
                    alert("修改成功");
                    window.location.href = "<%=request.getContextPath()%>/showroom.jsp";
                } else {
                    alert("修改失败");
                }
            },
            // error:function () {}
            //contentType 设置请求数据的格式默认是application/x-www-form-urlencoded 键值对 application/json json字符串
            // contentType:"application/x-www-form-urlencoded;charset=utf-8"
        });

    });
</script>
</body>
</html>

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沐凌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值