You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hotelbook-JavaWeb-master/src/main/java/com/inks/hb/authinfo/controller/AuthInfoServlet.java

102 lines
4.3 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.inks.hb.authinfo.controller;
//11111
import com.google.gson.Gson;
import com.inks.hb.authinfo.pojo.AuthInfo;
import com.inks.hb.authinfo.service.AuthService;
import com.inks.hb.authinfo.service.AuthServiceImpl;
import com.inks.hb.common.PojotoGson;
import javax.servlet.annotation.WebServlet;
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.sql.SQLException;
import java.util.ArrayList;
/**
* 分页查询权限表的Servlet
* 如果查询过程中出现异常,则统一返回'数据查询出现异常'
* 返回的数据类型为PojotoGson
*/
@WebServlet(value = "/AuthInfoServlet", name = "AuthInfoServlet")
public class AuthInfoServlet extends HttpServlet {
// 重写doPost方法调用doGet方法以处理POST请求
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
this.doGet(request, response);
}
// 重写doGet方法处理GET请求
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
// 设置请求和响应的字符编码
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
// 获取响应输出流
PrintWriter out = response.getWriter();
// 从请求中获取分页参数和操作类型
int page = Integer.parseInt(request.getParameter("page")); // 当前页码
int limit = Integer.parseInt(request.getParameter("limit")); // 每页的数据量
int make = Integer.parseInt(request.getParameter("make")); // 操作类型
// 创建AuthService实例
AuthService service = new AuthServiceImpl();
// 初始化返回信息
String code = "0"; // 状态码默认为0表示成功
String msg = "数据查询正常"; // 状态信息,默认为正常
String count = ""; // 数据总数,初始化为空字符串
ArrayList<AuthInfo> list = new ArrayList<>(); // 数据内容列表
// 声明单个全局属性
int authId; // 权限ID
String authItem = ""; // 权限名称
String isRead; // 可读
String isWrite; // 可写
String isChange; // 可改
String isDelete; // 可删
AuthInfo authInfo = null; // AuthInfo对象
try {
// 根据操作类型执行不同的逻辑
if (make == 2) {
// 修改权限信息
authId = Integer.parseInt(request.getParameter("authId"));
authItem = request.getParameter("authItem");
isRead = request.getParameter("isRead");
isWrite = request.getParameter("isWrite");
isChange = request.getParameter("isChange");
isDelete = request.getParameter("isDelete");
authInfo = new AuthInfo(authId, authItem, isRead, isWrite, isChange, isDelete);
service.updateAuthInfo(authInfo); // 更新权限信息
} else if (make == 3) {
// 搜索权限信息
authItem = request.getParameter("authItem");
authInfo = service.query(authItem); // 查询权限信息
list.clear(); // 清空列表
list.add(authInfo); // 添加查询结果到列表
}
// 根据操作类型获取数据
if (make != 3) {
list = service.query(page, limit); // 分页查询权限信息
count = String.valueOf(service.queryAuthInfoNum()); // 获取权限信息总数
} else {
// 如果搜索结果为空则设置count为0否则为1
count = (authInfo.getAuthId() == 0) ? "0" : "1";
}
} catch (SQLException e) {
// 捕获到SQLException异常设置错误状态码和信息
code = "1";
msg = "数据查询出现异常";
e.printStackTrace(); // 打印异常堆栈信息
} finally {
// 创建PojotoGson对象并序列化为JSON字符串
PojotoGson pojotoGson = new PojotoGson(code, msg, count, list);
Gson gson = new Gson();
out.print(gson.toJson(pojotoGson)); // 输出JSON字符串
}
}
}