Skip to content

Instantly share code, notes, and snippets.

@BalicantaYao
Created May 27, 2018 07:13
Show Gist options
  • Save BalicantaYao/d17a850cf4b973b17d557c9278d1a80a to your computer and use it in GitHub Desktop.
Save BalicantaYao/d17a850cf4b973b17d557c9278d1a80a to your computer and use it in GitHub Desktop.
package controller;
import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import bean.MailList;
import dao.MailListDAO;
/**
* Servlet implementation class LoginController
*/
@WebServlet("/LoginController")
public class LoginController extends HttpServlet {
private static final long serialVersionUID = 1L;
public LoginController() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 0. 先檢查他是不是有 session 的資料
HttpSession session = request.getSession();
String email = (String)session.getAttribute("email");
String phone = (String)session.getAttribute("phone");
// 如果有,就執行 doPOST();
if(email != null && phone != null) {
doPost(request, response);
} else {
// 如果沒有,就導向登入頁面。
RequestDispatcher requestDispatcher = request.getRequestDispatcher("login.jsp");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
requestDispatcher.forward(request, response);
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
String sessionEmail = (String)session.getAttribute("email");
String sessionPhone = (String)session.getAttribute("phone");
String email;
String phone;
if(sessionEmail == null && sessionPhone == null) { // Session 沒有值
// 取得 Email 和 Phone
email = request.getParameter("email");
phone = request.getParameter("phone");
System.out.println("Requset " + email + " :" + phone);
// 1. 把使用者提供資訊放到 session 裡面。
session.setAttribute("email", email);
session.setAttribute("phone", phone);
} else {
email = sessionEmail;
phone = sessionPhone;
}
// 到資料庫去找,這個 email 以及 這個電話是不是已經填過?
try {
MailList mailList = MailListDAO.findByEmailAndPhone(email, phone);
if(mailList != null) {
request.setAttribute("mailList", mailList);
RequestDispatcher requestDispatcher = request.getRequestDispatcher("/sign-up-complete.jsp");
requestDispatcher.forward(request, response);
} else {
RequestDispatcher requestDispatcher = request.getRequestDispatcher("/sign-up.jsp");
requestDispatcher.forward(request, response);
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment