성장 기록 블로그🌴
!1015 JSP&Servlet 뿌시기! ( Session, 세션 회원가입 , MemberVO 클래스 ) 본문
AI & BigData 교육과정/JavaScript 관련
!1015 JSP&Servlet 뿌시기! ( Session, 세션 회원가입 , MemberVO 클래스 )
wlswls2s 2022. 10. 15. 10:21728x90
< JSP&Servlet 0일차 내용 >
◆ JSP&Servlet 기본
개념정리
< Session > : Client의 정보를 서버의 Session 영역에 저장하는 것
- Web browser를 거치지 않고 web Server에 있는 데이터 영역을 통해 데이터를 전달하는 방법
- Session은 브라우저 당 하나씩 발급이 되며 Client 당 세션 영역을 구분하기 위해
고유의 (중복이 되지 않는) 키를 쿠키로 발급하여 관리한다!
- Session의 만료기간은 브라우저가 종료되는 즉시 만료가 된다!
- 세션은 쿠키를 키 값으로 받기때문에 만약에 쿠키값을 삭제하면 세션도 당연히 삭제된다!
< 세션 값 저장하기! >
- jsp에서는 Session 객체가 내장객체로 존재함
< 쿠키와 세션의 차이! >
브라우저에 저장하는 것은 쿠키이며 ! , 웹 서버에 저장하는 것은 세션!
< 세션 간단 응용 예제 >
- 세션 값 생성 , 값 가져오기 , 삭제 , 유효기간 설정
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%
// Session : Client의 정보를 서버의 Session 영역에 저장하는 것
// - Session은 브라우저 당 하나씩 발급이 되며
// Client 당 세션 영역을 구분하기 위해
// 고유의 (중복이 되지 않는) 키를 쿠키로 발급하여 관리한다!
// - Session의 만료기간은 브라우저가 종료되는 즉시 만료가 된다!
// Session 값 저장하기! .setAttribute(String,Object)
// - jsp에서는 Session객체가 내장객체로 존재한다
session.setAttribute("name","길동이");
// Session 값 가져오기! .getAttribute(String)
// getAttribute에 넣은 것들은 다 Object 임
// --> 따라서, 다운캐스팅을 해줘야함!
// --> 사용하고 싶은 타입에 맞게 형변환을 해줘야함
String name = (String)session.getAttribute("name");
out.print(name);
// Session에 값 삭제하기 .removeAttribute(String)
session.removeAttribute("name");
// Session 유효기간 설정 .setMaxInactionvInterval(int)
// int에 주로 시간이 들어가는데 초단위로 실행됨
session.setMaxInactiveInterval(10);
%>
</body>
</html>
< 회원가입 예제>
- 기본 구조 만들기 -
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<h2>메인페이지</h2>
<div class="panel panel-default">
<div class="panel-heading">원하시는 목록을 선택해주세요</div>
<div class="panel-body">
<a href= ""><button class="btn btn-info">회원가입</button></a>
<a href=""><button class="btn btn-success">로그인</button></a>
<a href=""><button class = "btn btn-warning">회원목록보기</button></a>
</div>
<div class="panel-footer">담당자 : 길동이 연락처 : 010-1111-2222</div>
</div>
</div>
</body>
</html>
- join.java -
package com;
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.websocket.Session;
/**
* Servlet implementation class join
*/
@WebServlet("/join")
public class join extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
*/
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 문제
// 입력한 회원정보 (id, pw, nick, addr)를 콘솔에 출력하시오!
//1. 한글 인코딩하기
request.setCharacterEncoding("EUC-KR");
//2. 회원정보 가져오기
String id = request.getParameter("id");
String pw = request.getParameter("pw");
String nick = request.getParameter("nick");
String addr = request.getParameter("addr");
// System.out.println(id);
// System.out.println(pw);
// System.out.println(nick);
// System.out.println(addr);
// id , pw, nick , addr 정보를 session에 저장하기
HttpSession session = request.getSession();
session.setAttribute("id", id);
session.setAttribute("pw", pw);
session.setAttribute("nick", nick);
session.setAttribute("addr", addr);
response.sendRedirect("joinResult.jsp");
}
}
- join.jsp -
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>
<form action="join" method="post">
<div class="container">
<h2>회원가입 홈페이지</h2>
<div class="panel panel-default">
<div class="panel-heading">회원가입</div>
<div class="panel-body">
<table class = "table table-hover table-sm table-borderless ">
<tr>
<td>아이디</td>
<td><input name="id" class="form-control" type = "text"></td>
</tr>
<tr>
<td>비밀번호</td>
<td><input name="pw" class="form-control" type = "text"></td>
</tr>
<tr>
<td>닉네임</td>
<td><input name = "nick" class="form-control" type = "text"></td>
</tr>
<tr>
<td>주소</td>
<td><input name="addr" class="form-control" type = "text"></td>
</tr>
<tr>
<td colspan = "2">
<button class = "btn btn-sm btn-info" type = "submit">회원가입</button>
<button class = "btn btn-sm btn-warning" type = "reset">취소</button>
</tr>
</table>
</div>
<div class="panel-footer">담당자 : 길동이 연락처 : 010-1111-2222</div>
</div>
</div>
</form>
</body>
</html>
- joinResult.jsp -
<%@page import="com.MemberVO"%>
<%@page import="java.util.Enumeration"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%
// Join Servlet에서 Session에 저장한
// id, pw, nick, addr을 web페이지로 출력하시오.
// 응답페이지에 출력시키기!
String id = (String)session.getAttribute("id");
String pw = (String)session.getAttribute("pw");
String nick = (String)session.getAttribute("nick");
String addr = (String)session.getAttribute("addr");
%>
</body>
</html>
< MemberVO.java > 로 한번에 받아오기!
@ MemberVO.java
package com;
public class MemberVO {
private String id;
private String pw;
private String nick;
private String address;
public MemberVO(String id, String pw, String nick, String address) {
this.id = id;
this.pw = pw;
this.nick = nick;
this.address = address;
}
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 getNick() {
return nick;
}
public void setNick(String nick) {
this.nick = nick;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
- join.java-
package com;
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.websocket.Session;
/**
* Servlet implementation class join
*/
@WebServlet("/join")
public class join extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
*/
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 문제
// 입력한 회원정보 (id, pw, nick, addr)를 콘솔에 출력하시오!
//1. 한글 인코딩하기
request.setCharacterEncoding("EUC-KR");
MemberVO vo = new MemberVO(id,pw,nick,addr);
// id , pw, nick , addr 정보를 session에 저장하기
HttpSession session = request.getSession();
session.setAttribute("vo",vo);
response.sendRedirect("joinResult.jsp");
}
}
- join.jsp -
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>
<form action="join" method="post">
<div class="container">
<h2>회원가입 홈페이지</h2>
<div class="panel panel-default">
<div class="panel-heading">회원가입</div>
<div class="panel-body">
<table class = "table table-hover table-sm table-borderless ">
<tr>
<td>아이디</td>
<td><input name="id" class="form-control" type = "text"></td>
</tr>
<tr>
<td>비밀번호</td>
<td><input name="pw" class="form-control" type = "text"></td>
</tr>
<tr>
<td>닉네임</td>
<td><input name = "nick" class="form-control" type = "text"></td>
</tr>
<tr>
<td>주소</td>
<td><input name="addr" class="form-control" type = "text"></td>
</tr>
<tr>
<td colspan = "2">
<button class = "btn btn-sm btn-info" type = "submit">회원가입</button>
<button class = "btn btn-sm btn-warning" type = "reset">취소</button>
</tr>
</table>
</div>
<div class="panel-footer">담당자 : 길동이 연락처 : 010-1111-2222</div>
</div>
</div>
</form>
</body>
</html>
<%@page import="com.MemberVO"%>
<%@page import="java.util.Enumeration"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%
// Join Servlet에서 Session에 저장한
// id, pw, nick, addr을 web페이지로 출력하시오.
// 클래스도 다운 캐스팅이 가능하다!!
MemberVO vo = (MemberVO)session.getAttribute("vo");
out.print("입력한 아이디 : " + vo.getId() + "<br>");
out.print("입력한 비밀번호 : " +vo.getPw() + "<br>");
out.print("입력한 닉네임 : " + vo.getNick() + "<br>");
out.print("입력한 주소 : " + vo.getAddress() + "<br>");
%>
</body>
</html>
728x90
'AI & BigData 교육과정 > JavaScript 관련' 카테고리의 다른 글
#1014 jsp&servlet 뿌시기! ( bootstrap 사이트 링크 , 쿠키 생성 , 쿠키 삭제 , 쿠키 값 get , bootstrap 활용해서 이미지 체크박스 페이지 구성하기! , 기본 상품 페이지 구성하기) (2) | 2022.10.14 |
---|---|
!1014 JSP&Servlet 뿌시기! ( 로그인 페이지 , 아이디 비밀번호 받아오기 ) (0) | 2022.10.14 |
!1014 JSP&Servlet 뿌시기! ( 랜덤 당첨 결과 , 랜덤으로 점심 메뉴 고르기 , (네이버, 구글, 다음) 사이트로 바로 이동! ) (0) | 2022.10.14 |
!1012 JSP & Servlet 2일차! (0) | 2022.10.12 |
! 1011 JSP&Servlet 1일차! (0) | 2022.10.11 |