7.03 리스트를 이용한 회원가입 구현
사용자들의 정보를 저장하는 VO 객체 클래스. 생성 경로 참고하기.
<!-- joinCheck.jsp -->
<%@page import="vo.MemberVO"%>
<%@page import="java.util.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String uid = request.getParameter("uid");
String upw = request.getParameter("upw");
String uname = request.getParameter("uname");
MemberVO joinMember = new MemberVO(uid,upw,uname);
// application에 회원 정보가 있는지부터 확인해야함.(Object 타입으로 저장되어있기 때문에 타입변환해주기)
// 등록된 회원 목록 호출
// application에 등록된 회원 목록 정보를 memberList key 값으로 관리
List<MemberVO> memberList = (List<MemberVO>)application.getAttribute("memberList");
if(memberList == null){
memberList = new ArrayList<>();
application.setAttribute("memberList",memberList);
}
// 회원 목록 존재
memberList.add(joinMember);
request.setAttribute("message", "회원가입완료!");
// 출력 페이지를 login.jsp로 변경
RequestDispatcher rd = request.getRequestDispatcher("login.jsp");
rd.forward(request,response);
%>
application에 회원 정보가 있는지부터 확인해야함.(Object 타입으로 저장되어있기 때문에 타입변환해주기)
--login.jsp--
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
//joinCheck에서 페이지가 출력된 경우 request에 값이 존재함
String message = (String)request.getAttribute("message");
if(message != null){
%>
<script>
alert('<%=message%>');
</script>
<% } %>
<!-- login.jsp -->
<%@ include file="common/header.jsp" %>
<%@ include file="common/tail.jsp" %>
로그인 정보 유지시간
tomcat 서버 > web.xml (session 유효시간 : 분단위)
<!-- ==================== Default Session Configuration ================= -->
<!-- You can set the default session timeout (in minutes) for all newly -->
<!-- created sessions by modifying the value below. -->
<session-config>
<session-timeout>30</session-timeout>
</session-config>
자바코드 내에서 설정 시 초단위
session.setMaxInactiveInterval(30); : 세션 유지시간
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- logout.jsp -->
<%
session.setMaxInactiveInterval(30);
// interval second = 초단위
int max = session.getMaxInactiveInterval();
System.out.println("max interval : " + max);
// 파라미터로 전달된 속성만 삭제
//session.removeAttribute("loginMember");
// session 객체 새로 생성 - 모든 속성 삭제
//session.invalidate();
%>
자바빈즈 = 클래스...
useBean : 인스턴스 생성
<input type="hidden": 사용자에게 노출되지 않는 데이터. 파라미터 전달 시 사용
<%@ 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>
<h1>forwardTest.jsp</h1>
<form action="forwardTest2.jsp" method="POST">
<!-- type="hidden": 사용자에게 노출되지 않는 데이터. 파라미터 전달 시 사용 -->
<input type="hidden" name="resultPage" value="forwardTest1.jsp"/>
이름 : <input type="text" name="name" /><br/>
나이 : <input type="number" name="age" min="1" max="100" /><br/>
<button>확인</button>
</form>
</body>
</html>
액션태그를 이용하면 동적 화면 구성이 가능함.
(디렉티브 태그(<%@ include file="파일위치" %>)는 표현문 사용이 불가.)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String selectPage = request.getParameter("page");
if(selectPage == null){
selectPage = "default";
}
// default
selectPage = selectPage + ".jsp";
// default.jsp
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style>
table{
width:900px;
margin:0 auto;
text-align:center;
border : 1px solid black;
}
table tr td:first-child{
border-right:1px solid gray;
}
</style>
</head>
<body>
<table>
<tr>
<th colspan="2" height="150">
<jsp:include page="header.jsp"/>
</th>
</tr>
<tr>
<td>
<jsp:include page="aside.jsp"/>
</td>
<td width="790">
<jsp:include page="<%=selectPage%>"/>
</td>
</tr>
<tr>
<th colspan="2" height="150">
<jsp:include page="footer.jsp"/>
</th>
</tr>
</table>
</body>
</html>