Session을 좀더 효과적을 사용하기 위해서 세션을 사용하여 로그인을 할 때, 데이타베이스에서 로그인한 사용자와 관련된 정보를 가져와서 세션에 저장 시켜 놓는 것이다. 그러면 사용자 정보가 필요할 때, 다시 데이타베이스를 접속하지 않아도 된다.
로그인을 통한 Session을 사용하는 방법과 사용자 정보를 가지고 와서 어떻게 유용하게 사용하는지 본다.
1. UserVO class를 만든다.
package org.web.member;
public class UserVO {
private String id;
private String pw;
private String name;
private String email;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPw() {
return pw;
}
public void setPw(String pw) {
this.pw = pw;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String toString(){
return id + ":" + pw + ":" + name + ":" + email;
}
}
2. login.jsp 작성 - 아이디와 패스워드를 입력하고 loginAction.jsp로 전송한다.
<%@ page contentType="text/html; charset=EUC-KR"
session="true"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<FORM METHOD=POST ACTION="loginAction.jsp">
<TABLE>
<TR>
<TD>아이디</TD>
<TD><INPUT TYPE="text" NAME="id"></TD>
</TR>
<TR>
<TD>패스워드</TD>
<TD><INPUT TYPE="password" NAME="pw"></TD>
</TR>
<TR>
<TD>로그인</TD>
<TD><INPUT TYPE="submit" value="전송"></TD>
</TR>
</TABLE>
</FORM>
</body>
</html>
3. loginAction.jsp - 원래는 여기서 데이타베이스에서 로그인한 사용자의 정보를 가지고 와서 VO 객체에 저장시켜준다.
<%@ page contentType="text/html; charset=EUC-KR" session="true"%>
<%@ page import = "org.web.member.*" %>
<%
String id = request.getParameter("id");
String pw = request.getParameter("pw");
//데이타베이스를 통해서 데이타를 가지고 온다. 여기서는 그냥 임의로 입력한다.
UserVO vo = new UserVO();
vo.setId(id);
vo.setPw(pw);
vo.setName(id + "님");
vo.setEmail("think@korea.kr");
session.setAttribute("LOGIN", vo); //LOGIN이라는 이름으로 vo 객체를 담아 준다.
%>
<%= id %><br/>
<%= pw%>
4. insertBbs.jsp - 세션에서 정보를 받아와서 입력할 창에 넣어준다. 이러면 사용자가 다시 자기 이름과 이메일 주소를 입력하지 않아도 된다.
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ page import = "org.web.member.*" %>
<%
//Object obj = session.getAttribute("LOGIN");
UserVO vo = (UserVO)session.getAttribute("LOGIN"); //session에 있는 정보를 받아온다.
if(vo == null){
System.out.println("로그인 안한 사용자");
}else{
System.out.println("로그인한 사용자");
}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<FORM METHOD=POST ACTION="insertBbsAction.jsp">
<TABLE border="1">
<TR>
<TD>제목</TD>
<TD><INPUT TYPE="text" NAME="title"></TD>
</TR>
<TR>
<TD>내용</TD>
<TD><INPUT TYPE="text" NAME="content"></TD>
</TR>
<TR>
<TD>작성자</TD>
<TD><INPUT TYPE="text" NAME="writer" value="<%=vo.getName()%>"></TD>
</TR>
<TR>
<TD>작성자 e-mail</TD>
<TD><INPUT TYPE="text" NAME="email" value="<%=vo.getEmail()%>"></TD>
</TR>
<TR>
<TD>전송</TD>
<TD><INPUT TYPE="submit" value="전송"></TD>
</TR>
</TABLE>
</FORM>
</body>
</html>
1. login.jsp
2. loginAction.jsp
3. insertBbs.jsp
'JavaEE' 카테고리의 다른 글
DBCP를 이용한 Connection Pool 설정 방법 (0) | 2009.08.29 |
---|---|
server.xml 의 tomcatThreadPool 과 커넥션 풀의 속성에서 maxActive의 관계 (0) | 2009.08.29 |
eclipse에 WAS(Tomcat) 추가하기. (0) | 2009.08.28 |
include 지시어와 include 액션 (0) | 2009.08.27 |
Cookie를 사용한 게시물 조회 올리기 방지 방법. (0) | 2009.08.27 |
Cookie와 Session (0) | 2009.08.25 |
인터페이스와 상속을 사용하여 DAO 처리 하기. (0) | 2009.08.20 |
PreparedStatement 로 사용할 쿼리 쉽게 만드는 방법 (0) | 2009.08.19 |
WAS 셋팅 하기. (0) | 2009.08.15 |
JUnit 사용을 사용한 개발. (0) | 2009.08.13 |