티스토리 뷰

정리 노트/JSP

11주-2일

eyoadgkn 2023. 12. 19. 09:22

쿠키 정보

생성된 쿠키의 정보를 얻어오려면 request 내장 객체의 getCookie() 메서드를 사용해서 쿠키 객체를 얻어온 뒤에 getName(),getValue() 를 이용해 쿠키 이름과 값을 가져옵니다.

쿠키 객체 얻기

클라이언트에 저장된 모든 쿠키 객체를 가져오려면 request 내장 객체의 getCookies() 메서드를 사용합니다. 
쿠키 객체가 여러개일 경우에는 배열형태로 저장이 되기 때문에 타입을 배열로 지정해줍니다.

Cookie[] cookies = request.getCookies()
쿠키 객체의 정보 얻기

쿠키 객체를 얻었다면 그 객체에 저장된 name과 value를 가져오기 위해서 getName(),getValue() 메서드를 사용합니다. 

Cookie[] cookies = request.getCookies()
for( int i = 0; i<cookies.length; i++)
{
out.println(cookies[i].getName() + " : " + cookies[i].getValue() + "<br>");
}

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		Cookie[] cookies = request.getCookies();
	
		out.println("현재 설정된 쿠키의 개수 =>" + cookies.length + "<br>");
		out.println("ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ"+ "<br>");
		
		for(int i =0; i<cookies.length; i++)
		{
			out.println("설정된 쿠키의 속성이름 [ "+i+"] : " + cookies[i].getName() + "<br>");
			out.println("설정된 쿠키의 속성값 [ "+i+"] : " + cookies[i].getValue() + "<br>");
			out.println("ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ"+ "<br>");
				
		}
	%>
</body>
</html>

 

쿠키 삭제

Cookie 클래스는 쿠키를 삭제하는 기능을 별도로 제공하지 않아서 쿠키를 더 유지할 필요가 없다고 판단이 된다면 쿠키의 유효 기간을 만료하면 됩니다. 즉 쿠키의 유효기간을 결정하는 setMaxAge() 메서드에 유효기간을 0으로 설정을 해서 쿠키를 삭제할 수가 있습니다.

Cookie cookie = new Cookie("memberId" , "admin");
cookie.setMaxAge(0); // 유효기간을 0으로 설정.
response.addCookie(cookie); // response 의 내장객체인 addCookie() 메서드에 cookie를 담아서 보냅니다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		Cookie[] cookies = request.getCookies();
	
		for(int i = 0; i<cookies.length; i++)
		{
			cookies[i].setMaxAge(0);
			response.addCookie(cookies[i]);
		}
		response.sendRedirect("cookie02.jsp");
	%>
</body>
</html>

데이터 베이스

데이터 베이스

데이터 베이스는 여러 자료를 동시에 여러 사람이 공유하여 사용할 수 있도록 체계화한 데이터의 집합을 말합니다. 몇 개의 데이터 파일을 조직적으로 통합해 중복을 없애고 구조화한 데이터의 모읍이므로 검색과 갱신이 효율적으로 처리가 됩니다. 

데이터 베이스의 몇가지 특성으로 

1.똑같은 자료를 중복해서 저장하지 않는 통합된 자료입니다.
2.컴퓨터가 액세스해서 처리할 수 있는 저장 장치에 수록된 자료입니다.
3.어떤 조직의기능을 수행하는 데 없어서는 안되는 자료이기 때문에 임시로 모아놓거나 단순한 입출력을 위한 자료가 아닙니다.
4.한 조직이 가지고 있는 데이터베이스는 그 조직의 공동 자료로서 사용자는 응용 목적에 따라 각자 다르게 사용할 수 있습니다.

이러한 자료를 관리하는 시스템을 데이터베이스 관리 시스템(DBMS) 라고 합니다.

 

데이터 베이스 관리 시스템

데이터베이스 관리 시스템은 데이터베이스를 관리하는 소프트웨어로 다수의 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성하는 역할을 합니다. 또한, 응용 프로그램들이 데이터베이스를 공유해 사용할 수 있는 환경을 제공하고, 사용자들이 데이터베이스 안에 데이터를 기록하거나 접근할 수 있게 합니다. 사용자나 다른 프로그램의 요구 사항을 관리함으로써 사용자나 다른 프로그램이 실제로 그 데이터가 저장 매체의 어디에 저장되어 있는지 알지 못해도 다중 사용자 환경의 누구든 데이터를 이용할 수 있게합니다. 

이런 데이터베이스 관리 시스템의 종류는 데이터베이스의 모델에 따라 다르지만 일반적으로는 관계형 데이터베이스 관리 시스템인 RDBMS를 많이 사용하고, 대표적으로는 MySQL, Oracle Database를 꼽을 수가 있습니다.
MySQL

MySQL은 오픈소스 관계형 데이터베이스 관리 시스템입니다.
1.오픈소스 라이선스에 따라 배포가 되어 무료로 사용할 수 있습니다.
2.매우 빠르게 작동하고 대용량 데이터 세트로도 작동이 잘 됩니다.
3.PHP, Perl, C, C++, Java 등 많은 언어로 운영이 되고 있습니다.
4.웹 개발에서 가장 높이 평가되는 PHP에 친숙합니다.
5.사용자 정의가 가능합니다. 오픈소스 GPL 라이선스를 통해 프로그래머는 자신의 특정 환경에 맞게 MySQL 소프트웨어를 수정할 수 있습니다.



통합 개발 환경과 데이터 베이스 연동
데이터베이스 추가

이클립스에서 데이터베이스를 연동할려면 데이터베이스 커넥션을 설정해야 합니다. 데이터베이스 커넥션을 설정하기 전에 사용할 데이터베이스가 반드시 생성되어 있어야 합니다.

create database databasename;
MySQL 기본 명령어

데이터베이스 언어는 데이터베이스를 통해 특정 정보를 추출하고, 보여주는 언어를 말하며 SQL 이 대표적입니다.
데이터베이스용 쿼리 언어의 일종인 SQL은 관계형 데이터베이스를 관리하는 데이터베이스 관리 시스템에서 사용하는 언어입니다.
SQL은 질의 기능을 비롯해서 데이터 정의 및 조작 기능을 가지고 있으면서 개개의 레코드보다 테이블 단위로 연산을 수행합니다.

SQL문장의 종류.

SQL문장 종류
데이터 정의 언어 data deinition language [ddl] create, alter, drop ...
데이터 조작 언어 data manipulation language [dml] select, insert, delete, update ...
데이터 제어 언어 data control language [dcl] grant, revoke, commit, rollback...
테이블 관련 명령어

테이블 생성하기
: 테이블 생성은 데이터베이스에서 매우 기본적인 작업입니다.
create table 테이블 이름(필드 이름1 자료형1[, 필드이름2 자료형2, ...]);

테이블 조회하기
: 데이터베이스에 존재하는 테이블 목록을 출력하는 MySQL 명령어는 SHOW입니다.
show tables;

테이블 세부 조회하기
:특정 테이블의 세부 사항을 확인하는 SQL의 명령어는 desc입니다.
desc 테이블 이름; 

테이블 구조 변경하기
:특정 테이블의 구조를 변경하는 MySQL 명령어는 alter입니다.
alter table 테이블 이름
[add 필드 이름 자료형| drop column 필드 이름| change column 기존 필드 이름 새 필드 이름 자료형];


테이블 이름 변경하기
:특정 테이블 이름을 변경하는 SQL명령어는 rename 입니다.
rename table 테이블 이름 to 새 테이블 이름[, 테이블 이름 to 새 테이블 이름, ...];
create database jspbookdb_test;
show databases;
use jspbookdb_test; -- 이거 사용하던가 밑에 처럼 표기하면 된다.
create table sheet1-- jspbookdb_test.sheet2
(
	-- 괄호 안의 숫자는 최대 입력 숫자를 의미 
    -- varchar은 빈공간을 남기지 않는다. char,varchar 둘다 
	-- max를 넘길 수는 없다. 
	id varchar(10) primary key,
    -- primary key(id) 이렇게 보통 많이 사용. 위와 동일  
	pw char(10),
	age int,
	name varchar(10)
);

show tables;
-- 구체화를 시켜줘야 하기 때문에 전체를 다 작성해준다.
desc sheet1;

-- tel column 추가하기 
alter table sheet1 add tel varchar(10);
-- 방금 추가한 tel column 삭제하기 
alter table sheet1 drop column tel;
--  컬럼의 이름 변경하기
alter table sheet1 change column pw password varchar(60);
-- 테이블 이름 변경하기
rename table sheet1 to sheet3

 

'정리 노트 > JSP' 카테고리의 다른 글

11주-4일  (0) 2023.12.21
11주-3일  (0) 2023.12.20
11주차-1일  (0) 2023.12.18
10주-4일차 Filter관련 예제  (0) 2023.12.14
10주차-1일  (0) 2023.12.11
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/07   »
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
글 보관함