티스토리 뷰

수업/└JSP

[CH13]세션 연습문제

onlyun 2022. 2. 17. 11:53

 

[문제04] 세션을 이용하여 다음 조건에 맞게 JSP 애플리케이션을 만들어라.

[조건]

1. session.jsp파일을 생성합니다.
- input 태그에 text유형을 이용하여 아이디, 비밀번호 항목을 작성합니다.
- form 태그의 action 속성 값은 session_process.jsp로 작성합니다.


2. session_process.jsp파일을 생성합니다.
- request 내장 객체의 getParameter() 메소드를 이용하여 전송된 요청 파라미터 값을 받습니다.
- 아이디와 비밀번호가 인증되면 아이디 값을 세션명 userID의 세션 값으로 설정합니다.
- response 내장 객체의 sendRedirect() 메소드를 이용하여 welcome.jsp파일로 이동하도록 작성합니다.


3. welcome.jsp파일을 생성합니다.
- 설정된 세션명 userID값이 null이면 response 내장 객체의 sendRedirect() 메소드를 이용하여 session_out.jsp파일로 이동합니다.


4. session_out.jsp파일을 생성합니다.
- 설정된 모든 세션명을 해제하도록 작성합니다.
- response 내장 객체의 sendRedirect() 메소드를 이용하여 session.jsp 파일로 이동하도
록 작성합니다.


5. 웹브라우저에서 실행 결과를 확인합니다.

 

[풀이]

process.jsp에서 아이디 널값 확인을 해결하지 못했음.

 

[제출]

-입력폼 페이지  00session.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="00session_process.jsp" method="post">
		<p>ID : <input type="text" name="id"></p>
		<p>PW : <input type="text" name="pw"></p>
		<p><input type="submit" name="전송"></p>
	</form>
</body>
</html>

-프로세스 페이지  00session_process.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		String user_id = request.getParameter("id");
		String user_pw = request.getParameter("pw");
		
		if(user_id.equals("admin") && user_pw.equals("admin1234")){
			session.setAttribute("userID", user_id);
			session.setAttribute("userPW", user_pw);
			response.sendRedirect("00welcome.jsp");
		}else{
			out.println("세션 실패");
		}
	%>
</body>
</html>

-웰컴페이지  00welcome.jsp

(아이디의 널값 확인을 못했음)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		String name = request.getParameter("user_id");
		out.println(name+"님 반갑습니다.");
	
// 		if(name.getAttribute().equals(" ")){
// 			response.sendRedirect("00session_out.jsp");
// 		}
	%>
	<a href="00session_out.jsp">로그아웃</a>
</body>
</html>

-세션아웃 페이지 00session_out.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
	session.invalidate();
%>
</body>
</html>

 

 

[정답]

수정된 부분이 있는 것만 가져옴.

-프로세스

<%
		String user_id = request.getParameter("id");
		String user_pw = request.getParameter("pw");
		
		if(user_id.equals("admin") && user_pw.equals("admin1234")){
			session.setAttribute("userID", user_id);
			//★ 비번 생성은 안 함.
			response.sendRedirect("00welcome.jsp");
		}else{
			out.println("아이디와 비밀번호를 확인해주세요."); //★ 문구 수정
		}
	%>

-웰컴페이지

<h4><%= session.getAttribute("userID") %>님 반갑습니다</h4>
<a href="00session_out.jsp">로그아웃</a>
<%
	if(session.getAttribute("userID") == null){
		response.sendRedirect("00session_out.jsp");
}
%>

└null인지 확인하는 조건문 설정

└session의 값을 가져오면 됨. request 쓸 필요 없이.

 

-세션아웃 페이지

<%
	session.invalidate();
	response.sendRedirect("00session.jsp"); //★
%>

 

정상적으로 로그인 했을때, 월켐페이지가 떠야 하는데 안 뜲. 점심시간에 확인

세션 아이디가 널값인지 확인해야 함. userID. user_id가 아니라

'수업 > └JSP' 카테고리의 다른 글

[CH16]JDBC  (0) 2022.02.18
[CH14]쿠키  (0) 2022.02.17
[CH13]세션(Session)  (0) 2022.02.17
[CH07]파일업로드  (0) 2022.02.15
[CH06]폼 태그  (0) 2022.02.14
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/03   »
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 31
글 보관함