JSP 기본용어 소개

MINJU KIM·2023년 11월 30일

JSP

목록 보기
1/30

Server

웹에서 서비스를 제공하는 컴퓨터 시스템

Web Server

사용자로부터 HTTP프로토콜을 이용해 요청받거나 웹 컨테이너가 전달해준 '결과물'을 사용자에게 응답해주는 소프트웨어
결과물은 보통 html, css, js 정적인 결과물.

웹컨테이너 Web Container

웹 서버가 전송해준 요청에 따라 동적인 페이지를 생성해서 웹서버로 반환해준다.

  • 관리자/ 일반 유저
    //페이지 권한에 따라서 결과물을 다르게 생성해서 나타냄

WAS (Web Application Server)

웹 애플리케이션이 동작할 수 있는 환경을 제공해주는 소프트웨어
Tomcat, Weblogic...등

HTTP, HTTPS

웹 서버와 사용자 사이의 통신 프로토콜

프로토콜(Protocol)

네트워크를 통해 컴퓨터들이 정보를 주고받는 통신 규약

포트(Port)

데이터가 드나드는 하나의 통로.
0 ~ 65535번까지의 포트.
0~ 1023번까지 포트 well known port : 잘 사용하는 포트
80포트 HTTP
20포트 FTP(File Transfer Protocol)
특정 서버 > 개발 소스 보낼때 쓰는 것들: putty 파일질라

https://skstp35.tistory.com/150


정적 웹 페이지

웹 서버에 '저장되어 있는 파일 그대로' 웹 브라우저에 전송해 출력하는 가장 기본적인 웹 페이지
ex 포르폴리오 사이트 등

동적 웹 페이지

동일한 페이지라 할지라도 그때그때 내용이 달라질 수 있는 웹 페이지. 서버가 클라이언트의 요청을 해석하여 가장 적절한 웹 페이지를 그때그때 생성해 보내주는 기술.

[WEB] 정적 웹 페이지와 동적 웹 페이지
https://velog.io/@dyunge_100/WEB-%EC%A0%95%EC%A0%81-%EC%9B%B9-%ED%8E%98%EC%9D%B4%EC%A7%80%EC%99%80-%EB%8F%99%EC%A0%81-%EC%9B%B9-%ED%8E%98%EC%9D%B4%EC%A7%80

서블릿

  • 클라이언트의 요청을 받으면 서버에서 처리한 후 응답으로 결괏값만 보내주는 구조.
    자바(.java) 파일을 컴파일한 클래스(.class) 형태이며, 이를 실행하고 관리해주는 런타임을 서블릿 컨테이너라고 한다. 대표적인 서블릿 컨테이너로는 아파치 톰캣이 있다.

지시어 directive <%@ %>

jsp 페이지를 자바 코드로 변환하는데 필요한 정보들을 담고 있고, jsp 엔진에 알려주는 역할.
언어, 인코딩

<%@ 지시어 속성1 ="값" 속성2 = "값" %>

지시어 종류

page

  • jsp 페이지에 대한 설정.

language

  • 기본값이 자바이다.

contentType

  • 기본값은 text/html; 그 외 text/xml, text/plain

charset=UTF-8 c

-ISO-8859-1 한글 사용할 때에는 UTF-8

import

  • 자바에서 외부 클래스 사용할 때 import 해주는 것처럼 jsp에서도 필요한 클래스를 import해서 사용한다.
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>

<%--
<%@ %> -> 지시어 directive
jsp 페이지를 자바 코드로 변환하는데 필요한 정보들을 담고 있고, jsp 엔진에 알려주는 역할.
언어, 인코딩
<%@ 지시어 속성1 ="값" 속성2 = "값" %>
## 지시어 종류
### page
- jsp 페이지에 대한 설정.
### language
- 기본값이 자바이다.
### contentType
- 기본값은 text/html; 그 외 text/xml, text/plain
### charset=UTF-8 c
-ISO-8859-1 한글 사용할 때에는 UTF-8

### import
- 자바에서 외부 클래스 사용할 때 import 해주는 것처럼 jsp에서도 필요한 클래스를 import해서 사용한다.



include
tablib (테이블 라이브러리)


--%>
<%!
String str1 = "먹고자";
String str2 = "안녕하세요.";
%>
<!DOCTYPE html>
<html>
<head>
    <title>JSP - Hello World</title>
</head>
<body>
<h1><%= "Hello World!" %>
</h1>
<p>
    <% out.println(str2 + str1 + "입니다.");

    Date today = new Date();
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        String todayStr = dateFormat.format(today);
        out.println("오늘은 " + todayStr + "입니다.");
    %>
</p>
<br/>
<a href="hello-servlet">Hello Servlet</a>
</body>
</html>

page 지시어 - errorPage isErrorPage 속성

에러를 처리하는 방법

  1. try/ catch 문으로 직접 에러를 처리하는 방법
  2. errorPage isErrorPage 속성을 사용하여 적용된 페이지로 이동하게끔 만든다.
//webapp - 새로만들기 경로 - jsp페이지 작성.
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<html>
<head>
    <title>page 지시어 - errorPage isErrorPage 속성</title>
</head>
<body>
<%
//try catch문으로 에러 처리.
    try {
        int myAge = Integer.parseInt(request.getParameter("age")) + 10; //에러 발생
        out.println("10년 후 당신의 나이는" + myAge + "입니다."); //실행되지않음.
    }catch(Exception e){
        out.println("예외 발생 : 매개변수 myAge가 null입니다.");
    }
%>
</body>
</html>

업로드중..

<%--
  Created by IntelliJ IDEA.
  User: admin
  Date: 2023-11-30
  Time: 오후 12:24
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" isErrorPage="true" %>
<html>
<head>
    <title>error 발생 시 처리 페이지</title>
</head>
<body>
<h2>서비스 중 일시적인 오류가 발생했습니다.</h2>
<p>오류명 : <%= exception.getClass().getName()%> <br>
    오류 메세지 : <%= exception.getMessage()%>

</p>
</body>
</html>

include 지시어

반복되는 부분을 별도의 파일에 작성해두고 필요한 페이지에서 include 지시어로 포함시킬 수 있다.

<%@ page import="java.time.LocalDate" %>
<%@ page import="java.time.LocalDateTime" %>

<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<html>
<%
  LocalDate today = LocalDate.now(); //오늘 날짜
  LocalDateTime tomorrow = LocalDateTime.now().plusDays(1); //내일 날짜
%>
</html>

<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<%@ include file="includeFile.jsp" %>

<html>
<head>
    <title>Include 지시어 </title>
</head>
<body>
<%
    out.println("오늘 날짜 : " + today);

    out.println("내일 날짜 : " + tomorrow);

%>

</body>
</html>

0개의 댓글