일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- #프로그래머스 #코딩 #l로만들기
- #프로그래머스 #코딩 #자바 #문자열묶기
- #프로그래머스 #코딩 #자바 #2의영역
- #프로그래머스 #코딩 #문자열뒤집기 #자바
- #프로그래머스 #자바 #코딩 #배열만들기2
- #프로그래머스 #코딩 #자바 #수열과구간쿼리2
- 코딩 #자바 #조건에맞게수열변환하기2
- #프로그래머스 #코딩 #x사이의개수
- #프로그래머스 #코딩 #자바 #왼쪽오른쪽
- #프로그래머스 #코딩 #배열의길이에따라다른연산하기
- #JSP #Servlet #제이에스피 #서블릿 #필터 #Filter @WebFilter #어노테이션필터
- #JSP #Servlet #Ajax #에이젝스 #HTML #success #.HTML() #HTML로붙이기
- #프로그래머스 #코딩 #자바 #문자열이몇번등장하는지세기
- #프로그래머스 #코딩 #자바 #수열과구간쿼리1
- #프로그래머스 #자바 #코딩 #전국대회선발
- #프로그래머스 #코딩 #순서바꾸기
- #프로그래머스 #코딩 #문자열잘라서정렬하기
- #git #commit #message #깃커밋 #메시지 #gitmessage #누락 #reset #mixed #마지막커밋정정하기
- #프로그래머스 #코딩 #배열원소 삭제하기
- #프로그래머스 #코딩 #자바 #빈배열에추가삭제하기
- #프로그래머스 #자바 #코딩 #무작위로k개의수뽑기
- #프로그래머스 #코딩 #자바 #리스트자르기
- #프로그래머스
- #프로그래머스 #코딩 #자바 #수열과구간쿼리3
- #프로그래머스 #코딩 #자바 #문자열여러번뒤집기
- #프로그래머스 #코딩 #글자지우기 #자바
- #JSP #Servlet #제이에스피 #서블릿 #필터 #filter #web.xml #필터예제 #filter예제
- #프로그래머스 #코딩 #배열비교하기
- #프로그래머스 #자바 #코딩 #특정문자열로끝나는가장긴부분문자열찾기
- #프로그래머스 #코딩 #배열만들기3
- 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 |