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

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Dorothy_YANG

With Dorothy

[67일차] JSP 페이지의 디렉티브 / 스크립트 요소 / 주석 / 제어문 / 내장 객체
🏫 Open API_JAVA

[67일차] JSP 페이지의 디렉티브 / 스크립트 요소 / 주석 / 제어문 / 내장 객체

2022. 11. 1. 23:58
728x90

20221028(금)

  • 목차 
    - JSP 페이지의 디렉티브
    - JSP 페이지의 스크립트 요소
    - JSP 주석
    - JSP 제어문
    - 내장 객체 (Implicit Object) 

< JSP 페이지의 디렉티브 > - directive

  • JSP ? : Java Server Pages
    - Java를 이용한 서버 사이드 스크립트 언어
    - Java의 점유율을 대폭 상승시킨 1등 공신
    - JSP 파일은 그 자체로 실행 x ➡ servlet 성격의 자바파일로 변환되고 컴파일되어 클래스가 된 후 실행된다.


  • include 디렉티브 <@include>
    - <%@ include file="포함될 파일의 url"%>
    - 합쳐져서 실행된다!!!!!!!!!!
    - 두 개의 파일이 하나의 파일로 합쳐진 후 하나의 파일로서 변환되고 컴파일된다.


 

  • b나 c 링크로 들어갔을 경우, menu 내용이 공통적으로 나오게된다.
  • menu 내용 위치 이동은 원하는 곳으로 언제든지 이동가능하다.
    - 보통 상/하단에 많이 사용됨 (하단 : 회사 주소 등)

 


  • 경로타고 들어가보면
  • 경로 : workspace ➡ .metadata ➡ .plugins ➡ org.eclipse wst.server.core(밑에서 7번째) ➡ tmp0 ➡ work ➡ Catalina ➡ localhost ➡docjsp(프로젝트명) ➡ org ➡ apache ➡ jsp ➡ ch03
  • menu.jsp 파일은 존재하지 않는다!!!!!!!!!!!!!!!

 

 


< JSP 페이지의 스크립트 요소 > - 3가지 스타일

(1) 선언문 Declaration

     <%! 변수 및 메소드 선언 %>

     위치는 상관없지만(어디에 쓰든 클래스 바로 밑으로 들어가기 때문! ✌), 보통 먼저 쓰게 된다 :)

     사실, 스프링에서 잘 쓰으진 않는다.! 대신 기억 해두면,, 언젠간,, ㅠ

 

(2) 스크립트릿(Scriptlet)

     <% 프로그래밍 코드 기술 %>

     객체 생성하고 호출하는 문법만 존재. 이 코드가 메소드 안으로 들어간다.

     실제로 선언문은 쓰일일은 없고 스크립트릿이 주로 사용된다.

 

(3) 표현식(Expression)

     <%= 화면에 출력할 내용 기술 %>

 

변수 선언하기

 

** 선언문만 class 밑에 만들어진다!!!!!  나머진 jspService 안에 작성 순으로 들어간다.

class Test {

	String str2 = "Kingdora";
    
    void_jspService() {
    	String str1 = "Game ID - " + STR2;
        
        out.write("결과:");
        out.write("Game ID - Kingdora");
    }
}

 

메소드 선언

 

 


< 주석 정리 >

HTML 주석 <!-- --> 화면에 표시되지 않으나, 실행됨
(서버에는 들어있다. 검사창에 실행됨)
JSP 주석 <%-- --%> 화면에 표시되지도 실행되지도 않음
서버에서 동작조차 못하게 하려면 JSP주석 사용하기!!!!
자바 주석 //, /* */
화면에 표시되지도 실행되지도 않음

 

 

 

 


< JSP 제어문 >

  • JSP 파일 연결 및 파라미터 값 일치 주의!

 


  • 좋아하는 색 선택하고 결과창 나오게 만들기
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
	<h2>if-else문 예제 - 좋아하는 색 선택</h2>
	<form method = "post" action = "ifTest.jsp">
		<dl>
			<dd>
				<label for = "name">이름</label>
				<input type = "text" name = "name" id = "name" placeholder="지워니" autofocus required>
			</dd>
			<dd>
				<label for = "color">색선택</label>
				<select name = "color" id = "color" required>
					<option value = "" selected>선택하세요.</option>
					<option value = "blue">파랑색</option>
					<option value = "green">초록색</option>
					<option value = "red">빨강색</option>
					<option value = "yellow">기타</option>
				</select>		
			</dd>
			<dd>
					<input type = "submit" value = "확인">
			</dd>
			
		</dl>
	</form>
</body>
</html>

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%-- 폼으로 전송되어 온 한글데이터 깨짐방지 목적 --%>
<%-- request 객체 : 브라우저를 이용하여, 전송한 관련정보를 참조하는 객체 --%>
<%	request.setCharacterEncoding("utf-8"); %>


<h2>if-else문 예제 - 좋아하는 색 선택</h2>
<%
	String name = request.getParameter("name");
	String color = request.getParameter("color");
	
	String selectColor = "";
	
	if(color.equals("blue")){
		selectColor = "파랑색";
	}else if(color.equals("green")) {
		selectColor = "초록색";
	}else if(color.equals("red")) {
		selectColor = "빨강색";
	}else {
		selectColor = "기타색";
	}
	
%>
<%= name %>님이 선택한 색은 <%= color %>입니다. <br>
선택한 색 : <br>
<img src = "<%=color + ".jpg" %>" border = "0">

 


 

  • 톰캣기반에서 JSP 페이지의 한글처리
  • 서버에서 웹 브라우저에 응답되는 페이지의 화면 출력 시 한글처리
    <%@ page contentType="text/html;charset=utf-8"%>
<%@ 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>while문 예제 - 임의의 값을 임의의 횟수로 곱하기</h2>
	<form method = "post" action = "whileTest.jsp">
		<dl>
			<dd>
				<label for = "number"> 곱해질 값 : </label>
				<input type = "number" name = "number" autofocus required>
			</dd>
			<dd>
				<label for = "num"> 곱해질 횟수 : </label>
				<input type = "number" name = "num" required>
			</dd>
			<dd>
				<input type = "submit" value = "확인">
			</dd>
		</dl>
	</form>

</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<h2>while문 예제 - 임의의 값을 임의의 횟수로 곱하기</h2>
<%
	int number = Integer.parseInt(request.getParameter("number"));
	int num = Integer.parseInt(request.getParameter("num"));
	long multiply = 1;
	int count = 0;
	
	while(count < num) {	
		multiply *= number;
		count++;
	}
%>
결과 : <%= multiply %>


< 내장 객체 (Implicit Object) >

(1) request 객체

     - 웹 브라우저의 요청 정보를 저장하고 있는 객체

     - 사용자의 요구사항을 얻어내는 요청 메소드

     - String getParameter(name) : 파라메터 변수 name에 저장된 변수 값을 얻어내는 메소드

<%@ 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>request 예제 - 요청메소드</h2>
	<form method="post" action="requestTest1.jsp">
		<dl>
			<dd>
				<label for = "name">이름</label>
				<input type = "text" name = "name" id = "name" placeholder = "이름을 입력" autofocus required>
			</dd>
			<dd>
				<label for = "age">나이</label>
				<input type = "number" name = "age" id = "age" min = "20" max = "99" value = "20" required>
			</dd>
			<dd>
				<fieldset>
					<legend>성별</legend>
					<input type = "radio" name = "gender" id = "gender" value = "m" checked>
					<label for = "gender">남</label>
					<input type = "radio" name = "gender" id = "gender" value = "f">
					<label for = "gender">여</label>
				</fieldset>
			</dd>
			<dd>
				<label for = "hobby">취미</label>
				<select  id="hobby" name="hobby" required>
					<option value = "잠자기">잠자기</option>
					<option value = "무협지보기">무협지보기</option>
					<option value = "애니메이션시청">애니메이션시청</option>
					<option value = "건프라">건프라</option>
				</select>
			</dd>
			<dd>
				<input type = "submit" value = "전송">
			</dd>
		</dl>
	</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<% request.setCharacterEncoding("utf-8"); %>

<h2>request 예제 - 요청메소드</h2>

<%

	String name = request.getParameter("name");
	String age = request.getParameter("age");
	String gender = request.getParameter("gender");
	String hobby = request.getParameter("hobby");
	
	if(gender.equals("m")) {
		gender = "남자";
	}else {
		gender = "여자";
	}

	
	
%>

<%= name %> 님의 입력정보는<br>
나이 : <%=age %><br>
성별 : <%=gender %><br>
취미 : <%=hobby %>

 


(2) response 객체

     - 웹 브라우저의 요청에 대한 응답 정보를 저장하고 있는 객체
     - 응답 정보와 관련하여 주로 헤더 정보 입력, 리다이렉트 등의 기능을 제공

 

  • 클라이언트 - 서버(페이지 이동이 일어나는 것이 아니다!!!!)
    - 페이지 이동에 대한 정보가 클라이언트로 넘어가서 다시 클라이언트가 서버로 페이지 이동
      (파견 나갔다가 거기서 퇴근하는게 아니라 본사로 돌아와서 퇴근하는 관점으로 보기)

  • response 객체의 메소드
void setHeader(name, value) 헤더정보 값을 수정.
void setContentType(type) 웹 브라우저의 요청 결과로 보일 페이지의 contentType을 설정
void sendRedirect(url) 페이지를 이동

(3) out 객체 ➡ 메소드는 기술의 발전으로 무의미해졌다. (출력용도로만 쓰인다.)

     - JSP페이지의 출력할 내용을 가지도 있는 출력 스트림 객체.
     - 표현식(<%=문장%>) 과 같음

 


(4) pageContext 객체 
     - JSP페이지 대한 정보를 저장하고 있는 객체.
     - 다른 내장객체를 구하거나, 페이지의 흐름제어 그리고 에러데이터를 얻어낼 때 사용.

ServletRequest getRequest() request객체를 얻어냄
ServletResponse getResopnse() response객체를 얻어냄

(5) session 객체

     - 하나의 웹 브라우저 내에서 정보를 유지하기 위한 세션 정보를 저장하고 있는 객체
     - 웹 브라우저(클라이언트)당 1개가 할당. 
     - 주로 회원관리 시스템에서 사용자 인증에 관련된 작업을 수행할 때 사용.

      ✨ 쉽게 이해하기!

      체육관에 개인라카번호 같은 느낌!!!!! 할당받은 공간에 내 물건들을 다 집어넣을 수 있다.

      우리도 문법을 이용해 할당받은 공간에 내용을 저장시킨다.

 

      id/pw로 로그인을 성공적으로 끝났을 때 내가 로그인했다는 걸 저장시켜 줄 수 있다.

      로그인 했다는 사실이 저장되어있는 메모리를 제거하는 것이 바로 로그아웃이다!!!!!

 

 

  • 톰캣의 기본 세션시간 : 30분(1800초)
    // session.setMaxInactiveInterval(1800);

 

728x90
저작자표시

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

[69일차] 쿠키 / 표현언어 Expression Language : EL  (0) 2022.11.03
[68일차] session 객체 / application 객체 / 내장객체의 영역 / JSP 페이지의 모듈화 / 데이터베이스와 JSP의 연동  (0) 2022.11.02
[66일차] 백엔드 / 웹 프로그래밍의 이해 / 각 파일들의 역할 - jsp, servlet  (0) 2022.10.31
[65일차] 예외처리 / 트랜잭션  (0) 2022.10.30
[64일차] PL/SQL(익명블록, 변수, 상수, DML, 제어문, 함수) / 프로시저  (0) 2022.10.25
    '🏫 Open API_JAVA' 카테고리의 다른 글
    • [69일차] 쿠키 / 표현언어 Expression Language : EL
    • [68일차] session 객체 / application 객체 / 내장객체의 영역 / JSP 페이지의 모듈화 / 데이터베이스와 JSP의 연동
    • [66일차] 백엔드 / 웹 프로그래밍의 이해 / 각 파일들의 역할 - jsp, servlet
    • [65일차] 예외처리 / 트랜잭션
    Dorothy_YANG
    Dorothy_YANG
    Slowly but Surely, 비전공 문과생의 개발공부

    티스토리툴바