JSP 기본문법 (지시자,선언부,스크립틀릿,표현식)

2023. 8. 1. 01:00·JSP
728x90
반응형
SMALL
🟰JSP 기본 문법

🔆지시자
문서 전반에 적용되는 설정
import, 인코딩, taglib등 페이지 전반에 걸치는 설정 적용
page지시자, include 지시자, taglib 지시자 3종류가 있다.
아래 사진처럼 자바에서 쓰이는 클래스를 import하고 톰캣에서 변환한 java파일을 함께 보겠습니다.
만약 아래 텍스트 파일을 왜 보는지 모르신다면 이 글부터 꼭 읽고 오세요!
>><<
위의 사진에처럼 페이지 전반에 영향을 미치는 영역이  지시자입니다.

🔆선언부
필드변수 및 메서드를 선언하는 부분입니다.
선언부에서 정의되는 변수와 메서드는 새로 컴파일될때까지 값이 유지됩니다.
새로 컴파일된다는 기준은 servlet이 해당 요청에대해 기존 파일의 변화가 있을 경우 새로 작업을 수행하여 response할때 입니다.

아래의 사진은 지시부에서 import한 클래스를 사용하여 새로운 객체를 생성하는 부분입니다.
해당 객체와 메서드들은 이 페이지가 유지되는 동안에 값과 기능을 유지합니다.
이는 스크립틀릿과 반대되는 특성입니다!
참고로 선언부에서는 request라는 내장객체로 파라미터를 가져올 수 없습니다.파라미터는 매번 값이 바뀌기 때문이죠.

🔆스크립틀릿
service 함수 내부의 내용을 작성합니다. 
이 구역에서 생성하는 변수는 지역변수의 특징을 갖습니다.
또한 Main클래스 내부 함수라고 생각하면 편합니다.
새로고침을하거나 새로 페이지를 불러올때 스크립틀릿은 매번 새로 내부에 있는 값들을 불러옵니다.
왜 스크립틀릿은 항상 새롭게 값을 가져올까요?
같은 페이지에서 요청이 들어와도 다수의 사람들이 각기 다른 값을 입력하여 다른 처리를 받아야하기 때문입니다.
request는 scriptlet에서 참조할 수 있고, 선언부에서는 참조할 수 없다. 물론 표현식에서도 가능합니다.
아까 말했던 선언부와의 차이점이 이것입니다.
📌선언부와의 차이점 : 새로 불러올때마다 값이 초기화된다. request 내장객체를 사용할 수 있다.

위 사진은 jsp에서 스크립틀릿과 자바파일로 변환된 파일의 내용입니다.
서비스에서 이러한 내용을 처리합니다.

🔆표현식
자바 변수의 값을 화면에 출력합니다.
.out.print()와 동일한 기능입니다.

html태그 언어 내부에 자바로 처리한 변수들의 내용을 집어넣을 수 있습니다.


전체적인 코드와 화면을 공유하겠습니다.

📌quiz2-result.jsp로 넘어가기전 문제 출제 화면

<%@ 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>


<ul>
	<li>날짜를 입력받아서, yyyy년 MM월 dd일 형식의 문자열로 바꿔서 출력하세요</li>
</ul>

<form action="quiz2-result.jsp">
	<p><input type="date" name="birth"> </p>
	<p><input type="submit"></p>
</form>
</body>
</html>​
위 코드의 실제 출력화면



📌quiz2-result.jsp에서 quiz2에서 받은 파라미터들을 처리하는 결과 화면

<%@page import="sun.security.jca.GetInstance"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.util.*" %>
<%! Date d1 = new Date(); 
	SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
	Calendar cal = Calendar.getInstance();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
	String date = request.getParameter("birth");
	int year=0,month=0,day=0,year2=0,month2=0,day2=0;
	
	if(date!=null){
		
	year = d1.getYear()+1900;
	 month = d1.getMonth()+1;
	 day = d1.getDate();
	
	
	
	cal.setTime(sdf.parse(date));
	
	 year2 = cal.get(cal.YEAR);
	 month2 = cal.get(cal.MONTH)+1;
	 day2 = cal.get(cal.DAY_OF_MONTH);
	}
	

	
	
%>


	<h3>오늘은 <%=date.substring(0,4)%>년 <%=date.substring(5,7) %>월 <%=date.substring(8,10) %>일 입니다. </h3>
	<h3>오늘은 <%=year%>년 <%=month %>월 <%=day %>일 입니다. </h3>
	<h3>오늘은 <%=year2%>년 <%=month2 %>월 <%=day2 %>일 입니다. </h3>
	<p><a href="Quiz2.jsp"><button>돌아가기</button></a></p>
</body>
</html>​
위 코드 실제 출력화면



 

728x90
반응형
SMALL

'JSP' 카테고리의 다른 글

JSP 내장 객체 유효 범위 (pageContext,Request,Session,Application), Attribute  (0) 2023.08.03
JSP - method (GET, POST)  (0) 2023.08.02
JSP와 Servlet이 어렵다면 들어오세요!  (0) 2023.07.31
MVC 패턴 공부 순서(목차)  (1) 2023.04.01
JSP- singleton이란?  (0) 2023.03.30
'JSP' 카테고리의 다른 글
  • JSP 내장 객체 유효 범위 (pageContext,Request,Session,Application), Attribute
  • JSP - method (GET, POST)
  • JSP와 Servlet이 어렵다면 들어오세요!
  • MVC 패턴 공부 순서(목차)
공부하고 기억하는 공간
공부하고 기억하는 공간
IT 비전공자로 시작하여 훌륭한 개발자가 되기 위해 공부하고 있는 공간입니다. 틀린 내용이나 부족한 부분이 있으면 댓글로 알려주세요 바로 수정하겠습니다.
    250x250
  • 공부하고 기억하는 공간
    IT - railroad
    공부하고 기억하는 공간
  • 전체
    오늘
    어제
    • 분류 전체보기 (315)
      • 면접 준비 (36)
        • OS (6)
        • Spring Security (0)
        • Java (2)
        • DB (9)
        • Network (3)
      • ElasticSearch (2)
      • Kafka (4)
      • Spring (22)
        • Spring Cloud (7)
        • Security6 (5)
        • JPA (12)
        • 프로젝트 리팩토링 회고록 (4)
        • Logging (8)
        • Batch (2)
      • Redis (17)
        • Redis 개념 (8)
        • Redis 채팅 (5)
        • Redis 읽기쓰기 전략 (1)
      • AWS (11)
      • 리눅스 (29)
        • 리눅스 마스터 2급 (5)
        • 네트워크(기초) (7)
        • 리눅스의 이해 (6)
        • 리눅스의 설치 (2)
        • 리눅스 운영 및 관리 (6)
      • JAVA-기초 (16)
        • JAVA기본 (11)
        • Design Pattern (5)
      • JSP (27)
        • JSP 기본 개념 (10)
        • JSP (1)
      • SQL (1)
      • TIL (36)
      • 문제 풀이 (2)
        • Programmers (9)
        • 백준 문제풀이 (28)
      • JavaScript (10)
      • HTML (17)
      • Ngrinder (1)
        • Ngrinder 문서 정리 (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      redis
      자바
      스프링프레임워크
      자바스크립트
      Spring Data Redis
      redis 채팅
      Springframework
      Til
      springsecurity
      spring redis
      JS
      리눅스마스터2급정리
      리눅스
      자바 알고리즘
      레디스
      jsp request
      JSP
      리눅스마스터2급
      백준
      CSS
      JavaScript
      자바 면접질문
      Spring
      java
      HTML
      자바 반복문
      자바기초
      자바 면접
      jsp기초
      프로그래머스
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    공부하고 기억하는 공간
    JSP 기본문법 (지시자,선언부,스크립틀릿,표현식)
    상단으로

    티스토리툴바