Dorothy_YANG
With Dorothy
Dorothy_YANG
전체 방문자
오늘
어제
  • 분류 전체보기 (279)
    • Hi, I'm Dorothy 🕵️‍♂️ (21)
      • Slowly but Surely (18)
      • IT certifications (3)
    • 🤯TIL (80)
      • HTML & CSS (2)
      • Javascript & jQuery (13)
      • React (13)
      • C언어 (1)
      • JAVA (22)
      • Python (2)
      • Oracle SQL (10)
      • My SQL (5)
      • Spring (12)
    • 💻Programmers (17)
    • 🏫 Open API_JAVA (101)
    • 🌎 Project (10)
      • Shopping (10)
    • 💥 Error (24)
    • ⚙ Setting (23)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

  • 이것이자바다
  • SQL
  • 시작일종료일
  • 노마드코더
  • 오류해결
  • spring
  • Javascript
  • 서버등록
  • 창초기화
  • colaboratory
  • 기간쿼리
  • 코딩앙마
  • AllArgsConstructor
  • HTML
  • 비쥬얼스튜디오코드
  • 기간설정
  • java
  • 독학후기
  • googlecolaboratory
  • sql기간
  • 파이썬온라인
  • 백준
  • CSS
  • Eclipse
  • 연습문제
  • Database
  • oracle
  • 콜라보레이토리
  • SQLD합격후기
  • SQLD합격

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Dorothy_YANG

With Dorothy

[68일차] session 객체 / application 객체 / 내장객체의 영역 / JSP 페이지의 모듈화 / 데이터베이스와 JSP의 연동
🏫 Open API_JAVA

[68일차] session 객체 / application 객체 / 내장객체의 영역 / JSP 페이지의 모듈화 / 데이터베이스와 JSP의 연동

2022. 11. 2. 01:44
728x90

20221031(월)

  • 목차 
    - session 객체
    - application 객체
    - 내장객체의 영역 
    - JSP 페이지의 모듈화 
    - 데이터베이스와 JSP의 연동


< session 객체 > 

dorothy 작업

  • 세션(Session) : 클라이언트가 서버에 연결된 상태.
  • 로그인 사용자를 구분해서
  • 로그인한 사용자에게 보여주는 메뉴
  • 비로그인한 사용자에게 보여주는 메뉴
  • 세션ID
    : 유저가 브라우저를 이용하여, 사이트를 첫 접속했을 경우
      해당 서버에서 사용자를 구분하는 목적으로 발급(생성)해주는 고유한 ID

< application 객체 >

  • 웹 어플리케이션 Context(문맥, 정황)의 정보를 저장하고 있는 객체
  • 서버의 설정 정보, 자원에 대한 정보, 어플리케이션이 실행되는 동안에 발생할 수 있는 이벤트 로그 정보등을 제공
  • 웹 어플리케이션 당 1개의 객체가 생성
<%@ 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>
	<h2>application 내장객체</h2>
	<%
		String info = application.getServerInfo();
		String path = application.getRealPath("/");
		application.log("로그 기록 : ");
	%>
	
	웹 컨테이너의 이름과 버전 : <%= info %><br>
	웹 어플리케이션 폴더의 로컬 시스템 경로 : <%= path %>
	
</body>
</html>


< 내장객체의 영역 >

  • 웹 어플리케이션은 page, request, session, application 이라는 4개의 영역을 가짐
  • 내장 객체의 영역 : 객체의 유효기간
  • 객체를 누구와 공유할 것인가를 나타냄

✨ 영역 암기!!!

page영역  한 번의 웹 브라우저(클라이언트)의 요청에 대해 하나의 JSP페이지가 호출.
request영역  한 번의 웹 브라우저(클라이언트)의 요청에 대해 같은 요청을 공유하는 페이지가 대응.
같은 request영역 
include 액션 태그, forward 액션 태그를 사용하면 request 객체를 공유하게 됨
session영역 하나의 웹 브라우저 당 1개의 session객체가 생성. 
같은 session영역 
같은 웹 브라우저 내에서는 요청되는 페이지들 
주로 회원관리에서 회원인증에 사용.
application영역   하나의 웹 어플리케이션 당 1개의 application 객체가 생성. 
같은 application영역
- 같은 웹 어플리케이션에 요청되는 페이지들 
- /studyjsp 웹 어플리케이션에서는 같은 application객체를 공유

< JSP 페이지의 모듈화 >

(1) include 액션태그 - <jsp:include>

include action태그 jsp:include 는 별도로 실행이 되고 결과를 만들어서 들어오기 때문에

 top_jsp파일도 java파일이 생성된다.

(include 지시자 <%-- <%@include file = "top.jsp" %> --%> 는 top.jsp 자바파일이 생성되지 않는다!

 

*결과는 화면으로 봤을 때 동일하지만 처리하는 과정이 다르다!


(2) request

  • 주의! " " 사이에 <% 사이에 공백 넣으면 공백까지 값으로 입력되므로 주의하기!!!!

 


(3) forward 액션태그 - <jsp:forward>

include는 보여진다.

forward는 내용이 보여지지 않는다.

     ✨ JSP 인클루드 방법

     1) include 지시자 <%@ include file = ""%>

     2) 액션태그

          - 파라미터 사용가능.

          - <jsp:include>

          - <jsp:forward>

 


< 데이터베이스와 JSP의 연동 >

  • JDBC(Java Database Connectivity)의 개요
    자바 프로그램(JSP포함)과 관계형 테이터 원본(데이터베이스, 테이블...)을 연결하는 인터페이스
    JDBC 라이브러리는 ‘java.sql’ 패키지에서 제공
    JDBC 라이브러리는 SQL문을 실행시키기 위한 인터페이스로 설계

  • JDBC 라이브러리 : JDK 구성요소 중의 하나이다.
     -  java.sql 패키지가 JDBC 기능을 제공한다.
     - 기능 : 데이타베이스를 연결하고 쿼리(SQL문)를 실행하는 기능
  • JDBC Driver
    : 데이타베이스를 접속하기 위하여, 데이타베이스 회사에서 제공하는 프로그램

  • 오라클, MS-SQL Server, My-SQL, DB2, Sybase, ...

 

< 드라이버 테스트 >

<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<h2>JDBC드라이버 테스트.</h2>

<%

	Connection conn = null;

	try {
		String jdbcUrl = "jdbc:oracle:thin:@localhost:1521:xe";
		String dbId = "ora_user";
		String dbPass = "1234";
		
		// 오라클 드라이버(ojdbc8.jar)에 존재하는 클래스명
		Class.forName("oracle.jdbc.OracleDriver"); // DriverManager 객체가 메모리상에 생성됨.
		// Sql Developer 툴로 접속한 의미와 커넥션 객체생성 의미가 동일
		conn = DriverManager.getConnection(jdbcUrl, dbId, dbPass);
		out.println("데이타베이스가 연결됨");
	} catch(Exception ex) {
		
	}
	
	
%>

 

 

     ✨ 암기하기!!

          JDBC를 사용한 JSP와 데이터베이스의 연동
          JDBC프로그램의 작성단계
          3단계(Statement/PrepardStatement/CallableStatement 객체 생성)
          sql쿼리를 생성하며, 반환된 결과를 가져오게 할 작업영역을 제공

          예)
          - Statement stmt = conn.createStatement();
          - PrepardStatement pstmt = prepareStatement(sql); ➡ 나중에 얘 관련 에러 많이나온다!(스프링에서) 
          - CallableStatement cstmt = prepareCall();

 

 

728x90
저작자표시 (새창열림)

'🏫 Open API_JAVA' 카테고리의 다른 글

[70일차] JSTL 라이브러리 / 기본이론 / 스프링 프레임워크 / CRUD 기능  (0) 2022.11.04
[69일차] 쿠키 / 표현언어 Expression Language : EL  (0) 2022.11.03
[67일차] JSP 페이지의 디렉티브 / 스크립트 요소 / 주석 / 제어문 / 내장 객체  (0) 2022.11.01
[66일차] 백엔드 / 웹 프로그래밍의 이해 / 각 파일들의 역할 - jsp, servlet  (0) 2022.10.31
[65일차] 예외처리 / 트랜잭션  (0) 2022.10.30
    '🏫 Open API_JAVA' 카테고리의 다른 글
    • [70일차] JSTL 라이브러리 / 기본이론 / 스프링 프레임워크 / CRUD 기능
    • [69일차] 쿠키 / 표현언어 Expression Language : EL
    • [67일차] JSP 페이지의 디렉티브 / 스크립트 요소 / 주석 / 제어문 / 내장 객체
    • [66일차] 백엔드 / 웹 프로그래밍의 이해 / 각 파일들의 역할 - jsp, servlet
    Dorothy_YANG
    Dorothy_YANG
    Slowly but Surely, 비전공 문과생의 개발공부

    티스토리툴바