jsp란 무엇인가?

devlsn96·2024년 9월 13일
0

1. jsp란 무엇인가?

  • JavaServePages
  • HTML 코드에 자바코드를 넣어 동적 웹 페이지를 생성하는 웹 어플리케이션 도구이다.
  • jsp가 실행되면 자바 서블릿으로 변환되며 웹 어플리케이션 서버에서 동작되면서 필요한 기능을 수행하고 그렇게 생성된 데이터를 웹페이지와 함께 클라이언트로 응답한다.
  • 서블릿 기반의 '서버 스크립트 기술'
  • HTML + Java = jsp
  • HTML을 중심으로 자바와 연동하여 사용하는 웹 언어이다.

2. 스크립트 태그

  • HTML 코드에 자바코드를 넣어 프로그램이 수행할 기능을 구현할 수 있다.

3-1. jsp 내장 객체

3-1. jsp 내장 객체의 개념

  • jsp 페이지 내에서 제공되는 특수한 클래스 형의 객체이다.
  • 내장 객체는 선언과 할당 없이 사용할 수 있다,
  • jsp페이지가 자바 클래스로 변환될때 jsp에서 java 클래스안에 자동으로 포함한다.

3-2. 내장 객체 종류

- request
: HttpServletRequest
웹 브라우저의 요청정보를 저장하고 있는 객체
- response
: HttpServletResponse
웹 브라우저의 요청에 대한 응답정보를 저장하고 있는 객체

- out
: jspWriter
JSP페이지에 출력할 내용을 가지고 있는 출력 스트림 객체

- session
: HttpSession
하나의 웹브라우저의 정보를 유지하기 위한 세션정보를 저장하고 있는 객체

  • application
  • pageContext
  • page
  • config
  • exception
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<% 
	// localhost:8081/first.jsp?cnt=5
	String cntStr = request.getParameter("cnt");
	int cnt = 100;
	if (cntStr != null && !cntStr.equals("")){
		cnt = Integer.parseInt(cntStr);
	}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<% for (int i=0; i<cnt; i++){ %> 
		안녕 servlet <br/>
	<% } %>
</body>
</html>

4. 디렉티브 태그

  • <%@ include file="파일명" %>
  • 현재 JSP 페이지의 특정 영역에 외부 파일의 내용을 포함시키는 태그
  • 보통 header와 footer는 대부분의 페이지에 동일한 내용으로 작성되기 때문에 유지보수 및 편의를 위해 외부파일로 만든 후 include하여 사용한다.
  • 이런 것들을 "모듈화"라고 한다.

5. 액션태그

5-1. 액션태그란?

  • 행위에 대한 태그

  • jsp페이지에서 동일한 내용이라도 자바코드를 기술하기 보다는 태그를 기술하는 것이 지저분하지 않고 깔끔하게 코딩할 수 있어 가독성 높은 소스코드를 작성할 수 있다.
    또한, 코드의 양을 대폭 줄일 수 있다.

  • 페이지와 페이지 사이를 제어하거나 다른 페이지의 실행결과 내용을 현재페이지에 포함하거나 자바빈즈(객체)등의 다양한 기능을 제공한다.

  • 액션 태그 xml문법을 따른다.
    즉, 시작태그와 함께 반드시 종료 태그를 포함해야한다.

  • 액션태그 기본 형식
    : <jsp: ...속성 ="값"> 내용 </jsp: ...>

  • 내용이 없는 액션태그 기본 형식
    : <jsp: ...속성 ="값"/>

5-2. 액션태그의 종류

  • forward
    : 다른 페이지로의 이동, 페이지 흐름 제어
    <jsp: forward .../>

  • include
    : 외부페이지의 내용을 포함하거나, 페이지 모듈화
    <jsp: include .../>

  • param
    : 현재 페이지에서 다른 페이지에 정보를 전달할 때 사용
    <jsp: param .../>

  • useBean
    : 빈(Bean)을 생성하고, 사용하기 위한 환경을 정의하는 액션 태그

  • setProperty
    : 빈에서 속성값을 할당
    <jsp: setProperty .../>

  • getProperty
    : 빈에서 속성값을 얻어올때 사용
    <jsp: getProperty .../>

5-3. 페이지 이동

1) forward

  • request에 담긴 값이 유효하다. (request, response가 유지된다)
  • 이동된 url이 화면이 안보인다. (사용자는 이동했는지 알 수 없다.)
  • 포워드 하는 방법
    pageContext.forward("이동할 페이지");
    <jsp:forward page="이동할 페이지"/>

2) redirect

  • 클라이언트가 새로 페이지를 요청한 것과 같은 방식으로 페이지가 이동됨
  • request, response가 유지되지 않는다. (새로 만들어짐)
  • 이동된 url이 화면에 보인다.
  • 리다이렉트 하는 방법
    response.sendRedirect("이동할 페이지");

5-4. attribute scope (속성값에 대한 범위)

먼저, 입력값에 대한 선언과 그 값을 할당해야한다.

String userid = "admin";
String userpw = "1q2w3e4r";
String username = "김자바";

- page
: 페이지 내에서 지역변수처럼 사용
- request
: http요청을 WAS가 받아서 웹브라우저에게 응답할 때까지 변수가 유지되는 경우

request.setAttribute("userid",userid);
request.setAttribute("userpw",userpw);
request.setAttribute("username",username);

- session
: 웹 브라우저별로 변수가 관리되는 경우

String userid = (String)session.getAttribute("userid");
String userpw = (String)session.getAttribute("userpw");
String username = (String)session.getAttribute("username");

- application
: 웹 어플리케이션이 시작되고 종료될 때까지 변수가 유지되는 경우 사용
(모든 클라이언트에게 공통적으로 무언가를 보여줄때)

profile
Quantum Jump to class for java….

0개의 댓글