본문으로 바로가기

[JSP]session을 활용한 프로그램

category JSP 2018. 4. 16. 01:50

1. Login.jsp

사용자 이름을 입력한 후 폼태그로 setProduct로 name을 보낸다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<% request.setCharacterEncoding("UTF-8"); %>
<% session.invalidate(); %>  <%-- 로그아웃을 눌러서 Login페이지로 오면 세션에 입력되었던 값을 다 지움 --%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>IT교실</title>
</head>
<body>
<form action="setSubject.jsp ">
<center>
<h1>IT교실</h1>
<h3>로그인 하세요.</h3>
<tr>
<td>사용자 이름 : <input type="text" size="5" required name="name"></td>
</tr>
<input type="submit" value="로그인">
</center>
</form>
</body>
</html>

 

 

Login.jsp 결과화면:

 

 

 

2. setSubject.jsp

 

과목을 선택하는 화면

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<% request.setCharacterEncoding("UTF-8"); %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>과목선택화면</title>
</head>
<body>
<%
String name = request.getParameter("name");
if(name==""){ //Login화면에서 아무것도 입력을 하지않고 버튼을 누르면 밑에 alert가 출력된다.
%><%="<script>alert('이름을 입력해주세요.'); history.back(); </script>" %><%
return;
}
if(name!=null){ //이름을 제대로 입력을 했다면 session에 등록한다.
session.setAttribute("name", name); /* 사용자 이름정보를 세션에 집어넣는다 */
}
%>
<!-- 과목 세션에 담기 -->
<center>
<form action="add.jsp" method="POST"> <!-- 안적으면 디폴트(GET)다이가 -->
<h1>과목을 고르세요</h1>
<hr>
<h3 align="left">
[<%=session.getAttribute("name")%>]님 반갑습니다. <!-- session에 들어있는 name키의 값을 출력한다 -->
</h3>
수강하고 싶은 과목을 선택하세요.<br>
<table align="center" border="5">
<tr>
<td><select name="subject">
<option value="자바">자바</option>
<option value="C언어">C언어</option>
<option value="자바스크립트">자바스크립트</option>
<option value="JSP">JSP</option>
<option value="안드로이드">안드로이드</option>
<option value="DB">DB</option>
<option value="HTML">HTML</option>
</select></td>
<td><input type="submit" value="추가하기"></td>
</tr>
<tr>
<td><input type="button" value = "로그아웃" onclick="location.href='Login.jsp'"></td> <!-- 로그아웃버튼을 누르면 로그인 페이지로 가서 세션지움 -->
<td><input type="button" value = "결제하기" onclick="location.href='checkOut.jsp'"></td>
</table>
</form>
</center>
</body>
</html>

 

setSubject.jps 결과화면

 

 

3. add.jsp

setSubject페이지에서 리스트에서 직접 추가한 과목을 받아와서 ArrayList를 이용해서 값을 저장을 한다.

 

<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<% request.setCharacterEncoding("UTF-8"); %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>add</title>
</head>
<body>
<%
ArrayList <String> list = null;
String subject_name = request.getParameter("subject"); /* 과목을 받아와서 subject_name에 저장 */
if(session.getAttribute("subject_name")==null){ /* session에 있는 subject_name의 값이 null이라면 */
list = new ArrayList<String>(); /* <String>타입의 ArrayList를 만들고 list에 대입해준다 */
}else{
list=(ArrayList<String>)session.getAttribute("subject_name"); /* 세션에서 subject라는 이름의 속성을 가지고와서 ArrayList타입의 참조변수 list에 대입 */
}
list.add(subject_name); /* ArrayList타입의 참조변수 list에 과목을 추가한다. */
session.setAttribute("subject_name", list); /* session에 subject_name의 key와 value 를 넣음 / object //session.setAttribute("id", "value");. */
%>
<script> alert("<%=subject_name%>를 추가하였습니다"); history.back();</script>
</body>
</html>

4. checkOut.jsp

입력한 결과를 출력해주는 페이지이다.

세션에 저장한 과목을 뽑아서 출력을 한다.

 

<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<% request.setCharacterEncoding("UTF-8"); %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>확인하기</title>
</head>
<body>
<!-- 세션에 저장된 arraylist를 가지고와 화면에 보여준다. -->
<%
/* arraylist 담을 변수 적고 */
ArrayList<String>list = (ArrayList<String>)session.getAttribute("subject_name"); /* session에서 "이름"으로 뽑아서 key와 value를 list를 넣어 뽑는다. */
String name = (String)session.getAttribute("name"); /* getAttribute가 obj객체로 반환을 해서 string으로 형변환해줘야한다 */
if(session.getAttribute("subject_name")==null) //session에서 "이름"으로 뽑는데 null 이라면
%><%= "선택한 과목이 없어요." %><%
else {
%><%="<h2>"+name+"열심히 들으세요~~~"+"</h2>"+ "<hr>"+"<br>"%><br><br><%
for(String subject : list){
%><%= "["+subject+"]" %><br><%
}
}
%>
<input type="button" value="과목 추가하기" onclick="location.href='setSubject.jsp'">
</body>
</html>
<%-- for(int i = 0; i< list.size(); i++ ){
%><%= "["+list.get(i)+"]"%><br><% --%>

 

checkOut 결과화면