package com.cn.servlet; // 定义Servlet所在的包名

import java.io.IOException; // 导入IOException，用于处理输入输出异常
import java.io.PrintWriter; // 导入PrintWriter，用于向客户端发送字符文本数据

import javax.servlet.ServletException; // 导入ServletException，用于处理Servlet运行时的异常
import javax.servlet.http.HttpServlet; // 导入HttpServlet，是所有HTTP servlet的父类
import javax.servlet.http.HttpServletRequest; // 导入HttpServletRequest，代表客户端的请求信息
import javax.servlet.http.HttpServletResponse; // 导入HttpServletResponse，代表服务器对客户端的响应信息
import javax.servlet.http.HttpSession; // 导入HttpSession，代表与客户端的会话

import com.cn.domain.Member; // 导入Member类，该类定义了会员的数据结构

/**
 * CheckLoginServlet类，用于校验会员是否已经登录。
 * @ClassName: CheckLoginServlet 类名：CheckLoginServlet
 * @Description: 校验会员是否登录
 * @author: ljy Servlet的作者
 * @date: 2019年11月23日 下午1:01:53 Servlet创建的日期和时间
 */
public class CheckLoginServlet extends HttpServlet {
	private static final long serialVersionUID = 1L; // 用于序列化

    /**
     * 处理GET请求的方法，用于校验会员是否登录。
     * @param request HttpServletRequest对象，包含客户端的请求信息
     * @param response HttpServletResponse对象，包含服务器对客户端的响应信息
     * @throws ServletException 抛出Servlet异常
     * @throws IOException 抛出输入输出异常
     */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// 获取当前会话
		HttpSession session = request.getSession();
		// 从会话中获取会员对象
		Member member = (Member) session.getAttribute("member");
		// 从请求中获取临时参数temp
		String temp = request.getParameter("temp");

		// 判断是否已经登录
		if (member != null) {
			// 如果会员已经登录
			
			if("1".equals(temp)) {
				// 如果temp参数为1，跳转到会员中心界面
				response.sendRedirect("pages/user/myCenter/myCenter.jsp");
			}
			
			if("2".equals(temp)) {
				// 如果temp参数为2，跳转到订票的Servlet
				// 从请求中获取车次ID
				Integer trainId = Integer.valueOf(request.getParameter("trainId"));
				// 将车次ID设置到请求中，以便在BookingServlet中使用
				request.setAttribute("trainId", trainId);
				// 转发请求到BookingServlet
				request.getRequestDispatcher("BookingServlet").forward(request, response);
			}
		} else {
			// 如果会员没有登录，向客户端发送JavaScript代码
			// 获取PrintWriter对象，用于向客户端发送响应
			PrintWriter out = response.getWriter();
			// 弹出提示并跳转到会员登录界面
			out.write("<script>alert('您还没有登录，请先登录！');window.location.href='pages/user/memberLogin.jsp'</script>");
			// 关闭PrintWriter对象
			out.close();
		}
	}

}