일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- #Git #Git Merge #깃 병합
- #JSP #Servlet #세션 #Session #제이에스피 #서블릿
- #JSP #Servlet #제이에스피 #서블릿 #필터 #filter #web.xml #필터예제 #filter예제
- #게터 #세터
- #JSP #Servlet #제이에스피 #서블릿 #세션 #session #세션로그인 #세션예제
- #.war #Export
- #JSP #Servlet #contextroot #contentdirectory
- #JSP #Servlet #Ajax #에이젝스 #HTML #success #.HTML() #HTML로붙이기
- #유틸클래스 #VO
- #JSP #Servlet #세션 #Session #제이에스피 #서블릿 #web.xml #세션알림 #알림팝업 #세션알림팝업 #session-timeout
- #Servlet #servletClass #servletURL #servlet구현 #JSP
- JAVA #JSP #Servlet #Exception #custom #익셉션 #에러처리 #에러
- #JSP #Servlet #서블릿 #쿠키 #cookie #Cookie #쿠키클래스 #쿠키유틸클래스 #cookieClass #cookieUtilClass #Cookie #제이에스피
- Git #Stash #깃 #스테시 #임시저장 #소스트리 #협업툴
- #JAVA #정보은닉 #접근제어자 #private
- JSP #Servlet #Exception #errorPage #web.xml #error-page #error-code #에러 #익셉션 #java
- #JSP #Servlet #Exception #errorPage #web.xml #error-page #error-code #에러 #익셉션 #java
- #JSP #Servlet #제이에스피 #서블릿 #필터 #Filter @WebFilter #어노테이션필터
- #깃 #Git #Git cherry-pick #체리픽 #깃 체리픽
- Listener #jsp #servlet #ServletContextListener #리스너
- #JSP #Servlet #@WebServlet #urlPatterns
- JSP #Servlet #Exception #error #page #errorpage #exceptionPage #Customerror #톰캣 #404 #에러페이지 #java
- Today
- Total
David의 블로그
[JSP/Servlet]상태를 유지할 수 있는 Session, 세션(두번째) 본문
앞서 첫 번째에는 간단하게 로그인 정보를 세션멤버변수로 등록하여 로그인을 해보는 방법을 살펴보았다.
두 번째는 2. 세션멤버변수를 유틸클래스(VO)로 이용해 화면에 뿌려주기를 해 볼 것이다.
[세션멤버변수를 유틸클래스(VO)로 이용해 화면에 뿌려주기]
앞서 내가 저장된 세션 멤버 속성을 가져올 때, 하나 하나 일일이 변수를 만들어 초기화를 해 주었다.
ex) String id = (String)session.getAttribute("MEMBERID");
또, 초기화 한 변수에 맞게 형변환도 해줘야한다. 세션이 Object이기 때문.
만약,
저장된 세션 속성 값들이 여럿 존재한다면? 가령 아이디 / 비밀번호 / 이메일 / 주소 / 핸드폰번호 / 키 / 좋아하는 연예인 등..
여러개 되는 변수들을 초기화하고 형변환까지 하는 행동은 귀찮을 것이다.
이처럼,
유틸클래스(VO)로 만들어 준다면 이 귀찮은 행동은 사라지게 된다.
[MemberInfo.java]
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
package util;
public class MemberInfo {
private String id;
private String pw;
private String name;
private String email;
public MemberInfo(String id, String pw, String name, String email) {
super();
this.id = id;
this.pw = pw;
this.name = name;
this.email = 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;
}
@Override
public String toString() {
return "MemberInfo [id=" + id + ", pw=" + pw + ", name=" + name + ", email=" + email + "]";
}
}
|
cs |
변수 아이디 / 패스워드 / 이름 / 이메일를 초기화 해줬다.
파라미터있는 생성자, 게터/세터 메소드, toString()메소드를 구현했다.
[loginForm.jsp]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인 폼 화면입니다.</title>
</head>
<body>
<form method="post" action="<%=request.getContextPath()%>/controller/SessionServlet.do">
아이디 : <input type="text" name="id" />
비밀번호 : <input type="password" name="pw" />
이름 : <input type="text" name="name" />
이메일 : <input type="email" name="email" />
<input type="submit" value="전송" />
</form>
</body>
</html>
|
cs |
아이디 / 비밀번호 / 이름 / 이메일을 request객체로 서블릿에다가 보내줄 것이다.
[SessionServlet.java]
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
package controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.jsp.PageContext;
import util.MemberInfo;
@WebServlet(urlPatterns = {"/controller/SessionServlet.do"})
public class SessionServlet extends HttpServlet{
MemberInfo memberInfo = null;
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
//super.doPost(req, resp);
process(req, resp);
}
@Override
public String toString() {
// TODO Auto-generated method stub
return super.toString();
}
public void process (HttpServletRequest req, HttpServletResponse res) throws IOException{
System.out.println("환영합니다!");
HttpSession session = req.getSession(false);
String id = req.getParameter("id");
String pw = req.getParameter("pw");
String name = req.getParameter("name");
String email = req.getParameter("email");
memberInfo = new MemberInfo(id, pw, name, email);
if (memberInfo != null) {
session.setAttribute("memberInfo", memberInfo);
}
System.out.println(memberInfo.toString());
res.sendRedirect(req.getContextPath()+"/practice/viewSession.jsp");
}
}
|
cs |
38 ~ 41Line : request객체에 있는 아이디 / 비밀번호 / 이름 / 이메일을 각 변수에 초기화 해준다.
43Line : 그리고, 초기화 한 변수를 유틸클래스(VO) 생성자를 호출한다.
45 ~ 47Line : 생성자를 호출해 생성된 멤버변수(memberInfo) 발리데이션 체크를 하고
세션변수를 "memberInfo"로 만들어준다.
49Line : 생성된 세션 변수를 찍어보기 위한 출력문.
마지막으로 viewSession.jsp로 리다이렉트 해준다.
[viewSession.jsp]
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
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import = "util.MemberInfo" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>member 세션 정보 뿌려주기 화면입니다.</title>
</head>
<body>
<%
if (session.getAttribute("memberInfo") != null) {
MemberInfo member = (MemberInfo)session.getAttribute("memberInfo");
%>
아이디 : <%= member.getId() %>
패스워드 : <%= member.getPw() %>
이름 : <%= member.getName() %>
이메일 : <%= member.getEmail() %>
<% } else { %>
세션 정보가 들어있지 않습니다.
<%
}
%>
</body>
</html>
|
cs |
12 ~ 14Line : 생성된 세션변수를 가져와서 유틸클래스(VO)로 맞춰준다.
15 ~ 18Line : 유틸클래스(VO)에서 구혀한 게터/세터로 출력을 해 볼 수 있다.
세션 정보가 없다면 '세션 정보가 들어있지 않습니다'를 뿌려준다.
[결과]
아이디 / 비밀번호 / 이름 / 이메일을 입력하고 전송을 누른다.
'프로그래밍 > Jsp_Servlet' 카테고리의 다른 글
[JSP/Servlet] 서블릿과 Ajax로 통신 후에 결과를 HTML로 뿌려주기. (1) | 2024.01.21 |
---|---|
[JSP/Servlet]상태를 유지할 수 있는 Session, 세션(세번째) (0) | 2024.01.20 |
[JSP/Servlet]상태를 유지할 수 있는 Session, 세션(첫번째) (0) | 2024.01.20 |
[JSP/Servlet]정보를 저장할 수 있는 객체 쿠키.Cookie (1) | 2024.01.06 |
[JSP/Servlet]Listener 리스너 (2) | 2023.12.19 |