웹개발 교육/jsp

[55일] jsp (22) - jsp 내부객체

2022. 10. 17. 12:21
목차
  1. JSP 내장 객체

 

 

사이트나 네이버 혹은 다음카페 같은 곳을 가보면 회원 등급이 나누어져 있다. 우리도 등급을 나누어 부여하자

--회원등급
A1: 관리자
B1: 중간 관리자
C1: 우수 사용자
D1: 일반 사용자 (기본)
E1: 비회원
F1: 탈퇴한 회원

 

--회원테이블
CREATE TABLE member (
    id       VARCHAR(10)  NOT NULL, -- 아이디, 중복 안됨.
    passwd   VARCHAR(10)  NOT NULL, -- 패스워드
    mname    VARCHAR(20)  NOT NULL, -- 성명
    tel      VARCHAR(14)  NULL,     -- 전화번호
    email    VARCHAR(50)  NOT NULL  UNIQUE, -- 전자우편 주소, 중복 안됨
    zipcode  VARCHAR(7)   NULL,     -- 우편번호, 12345
    address1 VARCHAR(255) NULL,     -- 주소 1
    address2 VARCHAR(255) NULL,     -- 주소 2(나머지주소)
    job      VARCHAR(20)  NOT NULL, -- 직업
    mlevel   CHAR(2)      NOT NULL, -- 회원 등급, A1, B1, C1, D1, E1, F1
    mdate    DATE         NOT NULL, -- 가입일    
    PRIMARY KEY (id)
);

unique는 한 번은 Null을 가질 수 있는 반면, primary key는 Null 값을 가질 수 없다.

 

이제 테이블을 생성하자

 

로그인 및 회원가입에 대한 것은 member 폴더를 생성하여 관리한다.

 

loginForm.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ include file="../header.jsp"%>
<!-- 본문 시작 loginForm.jsp-->
<h3>* 로 그 인 *</h3>
<form name="loginfrm" id="loginfrm">
	<table class="table">
		<tr>
		    <td>
			   <input type="text" name="id" id="id" placeholder="아이디" maxlength="10" required>
		    </td>
		    <td rowspan="2">
			   <!-- type=image는 기본 속성이 submit -->
			   <input type="image" src="../images/bt_login.gif">		   
		    </td>
		</tr>
		<tr>
		   <td>
		      <input type="password" name="passwd" id="passwd" placeholder="비밀번호" maxlength="10" required>
		   </td>
		</tr>
		<tr>
		   <td colspan="2">
		      <label><input type="checkbox" name="c_id" value="SAVE">아이디 저장</label>			  
			  &nbsp;&nbsp;&nbsp;
			  회원가입
			  &nbsp;&nbsp;&nbsp;
			  아이디/비밀번호찾기
		   </td>
		</tr>		  
	</table>
</form>
<!-- 본문끝 -->
<%@ include file="../footer.jsp"%>

type="image"는 기본 속성이 submit이다.

 

net.member 패키지를 만들고 그 안에 MemberDAO.java와 MemberDTO.java를 생성한다.

 

 

MemberDTO.java

package net.member;

public class MemberDTO { //전송객체 Value Object
	private String id;
	private String passwd;
	private String mname;
	private String tel;
	private String email;
	private String zipcode;
	private String address1;
	private String address2;
	private String job;
	private String mlevel;
	private String mdate;
	
	//기본생성자 default constructor
	public MemberDTO() {}

	//getter and setter 함수
	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getPasswd() {
		return passwd;
	}

	public void setPasswd(String passwd) {
		this.passwd = passwd;
	}

	public String getMname() {
		return mname;
	}

	public void setMname(String mname) {
		this.mname = mname;
	}

	public String getTel() {
		return tel;
	}

	public void setTel(String tel) {
		this.tel = tel;
	}

	public String getZipcode() {
		return zipcode;
	}

	public void setZipcode(String zipcode) {
		this.zipcode = zipcode;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getAddress1() {
		return address1;
	}

	public void setAddress1(String address1) {
		this.address1 = address1;
	}

	public String getAddress2() {
		return address2;
	}

	public void setAddress2(String address2) {
		this.address2 = address2;
	}

	public String getJob() {
		return job;
	}

	public void setJob(String job) {
		this.job = job;
	}

	public String getMlevel() {
		return mlevel;
	}

	public void setMlevel(String mlevel) {
		this.mlevel = mlevel;
	}

	public String getMdate() {
		return mdate;
	}

	public void setMdate(String mdate) {
		this.mdate = mdate;
	}

	@Override
	public String toString() {
		return "MemberDTO [id=" + id + ", passwd=" + passwd + ", mname=" + mname + ", tel=" + tel + ", zipcode="
				+ zipcode + ", email=" + email + ", address1=" + address1 + ", address2=" + address2 + ", job=" + job
				+ ", mlevel=" + mlevel + ", mdate=" + mdate + "]";
	}
	
	
}//class end

 

 

JSP 내장 객체

특정 사이트에 페이지를 요청하면 임시로 일종의 나만의 방을 만들어 준다.

빨간색 박스가 그 방의 번호이다.

 

요청 방식과 상태 등을 볼 수 있다.

 

우리가 페이지를 요청하면 임시로 세션 아이디를 부여해준다. 로그인은 임시로 아이디를 부여받는 대신 고정적인 아이디를 사용할 수 있도록 하는 것이다.

 

 

● [JSP 내장 객체]
- JSP페이지가 서블릿에서 변환될 때(.class) JSP컨테이너(Tomcat웹서버)가 자동적으로 제공
- JSP페이지 내에서 제공하는 특수한 레퍼런스(참조) 타입의 변수
- 객체 생성 없이 바로 사용할 수 있는 JSP의 객체

1) out : 출력 객체
2) pageContext : JSP페이지 자체의 Context 제공
3) request : 요청에 관한 정보
4) response : 응답에 관한 정보
5) session : 요청에 관한 Context 제공
6) application : 서블릿 및 외부 환경 정보 Context 제공
● [Scope의 종류]
- myweb 프로젝트에서 페이지들 간에 값을 공유하기 위해 사용
1) pageContext : 현재 페이지에서만 유효. 기본값
2) request : 부모페이지와 자식페이지에서만 유효
3) session : 프로젝트의 모든 페이지에서 유효 (사용자 개별 접근, 시간)
4) application : 프로젝트의 모든 페이지에서 유효 (모든 사용자 접근, 서버 정보)
● [내부변수 선언 형식] - 별도의 자료형이 없다
1) pageContext.setAttribute("변수명", 값)
2) request.setAttribute("변수명", 값)
3) session.setAttribute("변수명", 값)
4) application.setAttribute("변수명", 값)
● [내부변수값 가져오기]
1) pageContext.getAttribute("변수명")
2) request.getAttribute("변수명")
3) session.getAttribute("변수명")
4) application.getAttribute("변수명")

 

//각 내부변수에 값 올리기
pageContext.setAttribute("kor", 100);
request.setAttribute("eng", 200);
session.setAttribute("mat", 300);
application.setAttribute("uname", "ITWILL");

//내부 변수값 가져오기
out.print(pageContext.getAttribute("kor"));
out.print("<hr>");
out.print(request.getAttribute("eng"));
out.print("<hr>");
out.print(session.getAttribute("mat"));
out.print("<hr>");
out.print(application.getAttribute("uname"));
out.print("<hr>");

Object obj = pageContext.getAttribute("kor");
int kor = (int)obj;
int eng = (int)request.getAttribute("eng");
int mat = (int)session.getAttribute("mat");
String uname = (String)application.getAttribute("uname");

out.print("1)pageContext 영역 : " + kor + "<hr>");
out.print("2)request 영역 : " + eng + "<hr>");
out.print("3)session 영역 : " + mat + "<hr>");
out.print("4)application 영역 : " + uname + "<hr>");

 

 

//내부 변수 삭제
pageContext.removeAttribute("kor");
request.removeAttribute("eng");
session.removeAttribute("mat");
application.removeAttribute("uname");

out.print("<p>* SCOPE영역 변수 삭제 후 *</p>");
out.print("1)pageContext 영역 : " + pageContext.getAttribute("kor") + "<hr>");
out.print("2)request 영역 : " + request.getAttribute("eng") + "<hr>");
out.print("3)session 영역 : " + session.getAttribute("mat") + "<hr>");
out.print("4)application 영역 : " + application.getAttribute("uname") + "<hr>");

 

'웹개발 교육 > jsp' 카테고리의 다른 글

[55일] jsp (24) - session 내장 객체  (0) 2022.10.17
[55일] jsp (23) - SCOPE  (0) 2022.10.17
[54일] jsp (21) - myweb 프로젝트(페이징)  (0) 2022.10.14
[53~54일] jsp (20) - myweb 프로젝트(게시판-검색)  (0) 2022.10.13
[53일] jsp (19) - myweb 프로젝트(게시판-답변 쓰기)  (0) 2022.10.13
  1. JSP 내장 객체
'웹개발 교육/jsp' 카테고리의 다른 글
  • [55일] jsp (24) - session 내장 객체
  • [55일] jsp (23) - SCOPE
  • [54일] jsp (21) - myweb 프로젝트(페이징)
  • [53~54일] jsp (20) - myweb 프로젝트(게시판-검색)
ewok
ewok
ewok
기록장
ewok
전체
오늘
어제
  • 분류 전체보기
    • 웹개발 교육
      • HTML
      • CSS
      • JavaScript
      • Database
      • Java
      • jQuery
      • Ajax
      • Bootstrap
      • jsp
      • Spring
      • MyBatis
      • 프로젝트
    • JAVA
    • SpringBoot
      • 기초
      • AWS
      • 개인프로젝트
    • Spring Security
    • JPA
    • 테스트코드
    • Error
    • CS
      • 컴퓨터 구조
      • 이산수학
    • 알고리즘
      • 정리
      • Java
    • SQL
    • 자격증
      • SQLD
      • 정보처리기사
    • Git

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • branch
  • base
  • sqld 합격
  • git bash
  • 버전 관리
  • 생성자
  • sqld 자격증
  • org.hibernate.tool.schema.spi.CommandAcceptanceException
  • this
  • SQLD
  • merge commit
  • 브랜치
  • 노랭이
  • org.springframework.beans.factory.UnsatisfiedDependencyException
  • GIT

최근 댓글

최근 글

hELLO · Designed By 정상우.
ewok
[55일] jsp (22) - jsp 내부객체
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.