Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- ;
- \
- javaBeans
- 미래직장
- scanner
- opener
- 팝업창
- 빈즈
- Alert
- Import
- static
- 영감
- 향상된 for문
- 데이터사이언스
- 버리자
- 파일 호출
- 동기부여
- session.setAttribute
- 페이지이동
- "
- target
- session.getAttribute
- BEANS
- 자바빈즈
- session.removeAttribute
- 로그인화면
- 파일호출
- 동기 부여
- iframe
- 페이지 이동
Archives
- Today
- Total
갈림길 이정표
[JSP] *연구* jsp 로 alert창 띄우고 이동시키기 본문
이전 글을 보다가 문득 의문점이 하나 생겼다.
[editsave.jsp]
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("utf-8");
%>
<jsp:useBean id="bean" class="kr.shop.board.BoardBean"/>
<jsp:setProperty property="*" name="bean"/>
<jsp:useBean id="boardMgr" class="kr.shop.board.BoardMgr"/>
<%
String spage = request.getParameter("page");
boolean b = boardMgr.checkPass(bean.getNum(), bean.getPass());
if(b){
boardMgr.saveEdit(bean);
response.sendRedirect("boardlist.jsp?page=" + spage);
}else{
%>
<script>
alert("비밀번호 불일치!");
history.back();
</script>
<%
}
%>
b가 false 일 경우에는 alert창으로 "비밀 번호 불일치!"라는 메세지를 띄우지만,
b가 true 일 경우에는 어떠한 메세지도 없이 바로 DB에 저장 시키고 목록으로 돌아간다.
뭔가 사용자들에게 "저장되었습니다."라는 메세지를 주어 직관적으로 DB에 저장 되었다는 것을 확인시켜준 후에 목록으로 돌아가는 것이 나을 것 같다는 생각이 들어 false일 경우와 똑같은 방식으로 적용시켜 보았다.
<%
if(b){
boardMgr.saveEdit(bean);
%>
<script>
alert("저장되셨습니다");
</script>
<%
response.sendRedirect("boardlist.jsp?page=" + spage);
}
%>
하지만 alert 창이 뜨지 않고 바로 sendRedirect하여 목록 보기로 넘어갔다. 이게 무슨 일이지🤔
혹시나 해서 //response.sendRedirect( ); 부분을 주석 처리 했더니 alert 창이 떳다!
여기서 알 수 있는 사실!
JSP파일에서 우선 순위: jsp 태그 (<% %>) > HTML 태그 (<script></script>) |
처리과정에 우선순위가 있었기 때문에 HTML 태그의 코드들이 수행 되기도 전에 response.sendRedirect( ); 되어 진 것.
그렇다면 해결 방법은?
해결 방법 1: HTML 태그 안에 jsp 태그 선언 해결 방법 2: jsp 태그 안에 HTML 태그 선언 |
해결 방법 1: HTML 태그 안에 jsp 태그 선언
<%
if(b){
boardMgr.saveEdit(bean);
%>
<script>
alert("저장되셨습니다");
location.href= "boardlist.jsp?page=" + <%=spage %>;
</script>
<%
}
%>
해결 방법 2: jsp 태그 안에 HTML 태그 선언
<%
if(b){
boardMgr.saveEdit(bean);
out.println("<script>alert('저장되셨습니다');</script>");
response.sendRedirect("boardlist.jsp?page=" + spage);
또는 out.println("<script>location.href='boardlist.jsp?page=" + spage + "'</script>");
}
%>
※ 웹 프로그래밍 언어에서 다른 파일 호출(페이지 이동) 방법
<script>location.href=""</script> → HTML(<head> tag)
<body><a href=""/></body> → HTML(<body> tag - 클릭 시 이동)
<% response.sendRedirect();%> → JSP
<% out.println("<script>location.href=''</script>"); %> → JSP(HTML tag를 통해)
문제가 또 생겼다.
if(id == null){
out.println("<script>alert('로그인 후 사용해주세요');</script>"); //???왜 안돼!!!
//response.sendRedirect("../member/login2.jsp"); //로그인 안하고 왔으면 로그인 하고 오라고
out.println("<script>location.href='../member/login2.jsp';</script>");
}
'Programming Language > Servlet & JSP' 카테고리의 다른 글
[JSP] (최종 - Model Ⅰ방식) 회원 로그인 및 관리 (feat. session, 팝업창, Openet) (0) | 2020.09.07 |
---|---|
[JSP] (최종 - Model Ⅰ방식) 간단한 쇼핑몰 게시판 만들어 보기 *갱신 필* (0) | 2020.09.02 |
[JSP] 로그아웃, 로그인 화면 다르게 하기 (feat. session, include지시어) (0) | 2020.09.02 |
[JSP] beans + dbcp[connection pooling] (0) | 2020.09.02 |
[JSP] (problem) (0) | 2020.08.26 |
Comments