본문 바로가기

Java/JSP

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 액션태그 vs 디렉티브 태그

액션태그를 이용하면 동적 화면 구성이 가능함.

(디렉티브 태그(<%@  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>