모달창, 스위트알랏, alert(),....등은 웹에서 시작한것이 아닌 모바일에서 시작되어 웹에 정착되었다.
페이지 주도권
main.do로 바로 이동하기 때문에 Login.jsp 에 잔류해 있는 시간이 없기 때문에
out.print가 수행은 했지만 알랏창이 뜨지 않고 넘어가게 된다.

스크립트는 해당 페이지에 머물러 있을 때만 실행된다
스크립트는 뷰에서만 작성하는 것이 맞다(jsp에서 작성)

el식사용해서 안내페이지를 어디로 이동하고 어떤 메시지를 띄울지 받아와서 한번에 작성 가능 하다.
<info.jsp>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>안내 페이지</title>
</head>
<body>
<script>
alert('${msg}');
location.href='${path}';
</script>
</body>
</html>
<LoginAction>
package controller.member;
import controller.common.Action;
import controller.common.ActionForward;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import model.dao.MemberDAO;
import model.dto.MemberDTO;
public class LoginAction implements Action {
@Override
public ActionForward execute(HttpServletRequest request, HttpServletResponse response) {
MemberDAO memberDAO=new MemberDAO();
MemberDTO memberDTO=new MemberDTO();
memberDTO.setMid(request.getParameter("mid"));
memberDTO.setPassword(request.getParameter("password"));
memberDTO.setCondition("CHECKMID");
memberDTO = memberDAO.selectOne(memberDTO);
ActionForward forward=new ActionForward();
if(memberDTO != null) { // 로그인 성공
HttpSession session=request.getSession();
session.setAttribute("loginInfo", memberDTO.getMid());
forward.setPath("main.do");
forward.setRedirect(true);
}
else {
request.setAttribute("msg", "로그인 실패...");
request.setAttribute("path", "loginPage.do");
forward.setPath("info.jsp");
forward.setRedirect(false);
}
return forward;
}
}
2024.09.04
'WEB' 카테고리의 다른 글
| [WEB] 14. 필터(Filter) (0) | 2024.09.05 |
|---|---|
| [WEB] 12. 리스너 (0) | 2024.09.03 |
| [WEB] 11. 비동기 처리 (0) | 2024.08.23 |
| [WEB] 10. 핸들러맵핑과 싱글톤 패턴 (0) | 2024.08.22 |
| [WEB] 09. 스프링 프레임워크의 구조 (0) | 2024.08.20 |