JSP는 연산 능력을 가지는 HTML이다.
JSP(Jasper : Java Server Page)는 간단히 말하면, 내부적으로 연산 능력을 가지는 html이다.
html에 java 프로그램을 넣어서 html을 동적으로 변환한다.
jsp가 실행되면 java servlet으로 변환되어 WAS 서버에서 작동되어 필요한 기능을 수행한 뒤,
생성된 (결과) 데이터를 웹 페이지와 함께 클라이언트로 보낸다.
Servlet에서는 html의 태그(< / >)를 모두 작성해 주어야 하는데,
jsp로 작업하면 자동으로 태그를 만들어 tomcat이 서블릿으로 변환시켜준다.
서블릿으로 변환된 결과가 클라이언트 브라우저로 가서 표시된다.
- JSP 작업이 완료되면, 호출될 때 서블릿으로 변환되어 실행된다.
서블릿만으로는 UI 작업이 어렵기에 화면의 UI 디자인을 좀 더 쉽게 해주는 기능이 JSP라 볼 수 있다.
client > WAS (Web Application Server)
연산요청
Browser를 통해서
JSP 파일의 첫 머리에서
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
위 부분은 Servlet과 동일한 설정으로, 지시어(Standard Directives)로써 JSP의 속성을 지정하는 곳이다.
여기에 page, contentType, charset, pageEncoding 이외에
include file = "header.jsp, body.jsp, footer.html" 식으로 추가가 가능하다.
그리고 taglip tagdir = "WEB-INF/tags" prefix = "m" 식으로 써줄 수 있다.
<% (스크립트)
...
%> // 스크립트릿(Scriptlet) : jsp에서 자바코드를 사용하고자 할 때, 지정하는 영역
<%!
...
%> // 멤버 필드 영역(클래스에서의 멤버(전역)변수와 메서드 선언)이다.
<%
...
%> // 일반 영역이다. 여기서는 로컬 변수로 인식된다.
test.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!-- Servlet과 동일한 설정 -->
<%
String ip = request.getRemoteAddr(); // 접속자의 IP 주소 얻어오기
%> // request는 서블릿 객체이지만 나중에 이 JSP가 작업한 뒤, 서블릿으로 변환되기 때문에 사용 가능
<!DOCTYPE html>
<!--
html 4에서는
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
이렇게 나온다.
-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<p><%@내용%> : jsp header : 전송 시 인토딩, 페이지 인토딩, import 문장 등 설정 필수</p>
<p><%@자바코드%> : Scriptlet으로 JSP에서 자바코드 입력 부분</p>
<p><%@=변수_명%> : Scriptlet에서 변수 출력</p>
<p><%@=변수_명%> : Scriptlet에서 변수_명; 식으로 사용하면 오류</p>
<%=ip %>님 방문해주셔서 감사합니다.
<!-- =ip는 JSP에서 변수_명 출력 -->
</body>
</html>
<%@내용%> : jsp header : 전송 시 인토딩, 페이지 인토딩, import 문장 등 설정 필수
<%@자바코드%> : Scriptlet으로 JSP에서 자바코드 입력 부분
<%@=변수_명%> : Scriptlet에서 변수 출력
<%@=변수_명%> : Scriptlet에서 변수_명; 식으로 사용하면 오류
0:0:0:0:0:0:0:1님 방문해주셔서 감사합니다.
(위에 ip 버젼 6라는 것이다.)
JSP Templates(템플릿 이용, 부서 별 사원 입력 및 출력) (0) | 2022.08.19 |
---|---|
JSP (DB 연결, 부서 별 사원 입력 및 출력) (0) | 2022.08.19 |
VO(Value Object), JSP 내장 객체, (여러가지 정보를 하나로 묶어 저장할 수 있게 만든 클래스 VO) (0) | 2022.08.16 |
JSP 예제 (메서드 및 변수 출력, li 배열 출력, table 구구단 ) (0) | 2022.08.16 |
JSP (JavaServerPage) 설정 (0) | 2022.08.16 |