본문 바로가기
수업(국비지원)/JSP

[JSP] JSP 구성 요소 - 웹 어플리케이션의 기초, Jsp & Servlet

by byeolsub 2023. 4. 18.
  • 웹 어플리케이션의 기초

📌 

<%-- jsp의 디렉티브(지시어. 지시자.) : jsp 페이지의 특징을 설명 --%>
<%@page import="java.util.Calendar"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<%-- src/main/webapp/currentTime.jsp
   1. jsp 코딩 : currentTime.jsp
     - 서블릿으로 변경 : currentTime_jsp.java
     - 서블릿을 컴파일 : currentTime_jsp.class (바이트 코드) 
     - 바이트 코드 실행. (_jspService 메서드 실행.)
 --%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>현재시간</title>
</head>
<body>
<% //자바의 영역
    Calendar c = Calendar.getInstance();
    //변수 선언 해야한다.
    int h = c.get(Calendar.HOUR_OF_DAY);
    int m = c.get(Calendar.MINUTE);
    int s = c.get(Calendar.SECOND);
 %>
 <h1>현재시간:<%=h %>시<%=m %>분<%=s %>초</h1>
 <%-- 실제 웹 어플리케이션 폴더 : --%>
 <%= request.getRealPath("/") %>
</body>
</html>

  • Jsp & Servlet
- 서블릿(Servlet) : 웹에서 요청시 응답 할 수 있는 프로그램.
                    실행 코드 방식의 특징

- JSP(JavaServer Pages): 스크립트 코드 방식의 특징
     JSP의 특징
        : 자바기반 스크립트 언어(자바의 기능을 그대로 사용.)
          HTTP에 대한 클라이언트의 요청 처리/응답
          웹 어플리케이션에서 결과 화면을 생성할 때 주로 사용.         

 

📌

package chap1;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Calendar;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/CurrentTime") 
//URL 요청: http[프로토콜]://localhost[호스트]:8088[포트]/chap1/CurrentTime
public class CurrentTime extends HttpServlet {
	private static final long serialVersionUID = 1L;

    public CurrentTime() {
        super();
    }	
    //get방식 요청인 경우 호출되는 메서드(기본방식)
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//request : 요청객체. 브라우저의 요청정보를 저장.
    //response : 응답객체. 브라우저의 응답정보를 저장.
    //브라우저로 페이지 정보를 설정: 문서의 종류와 인코딩방식 브라우저로 전달.
    response.setContentType("text/html; charset=UTF-8");
		Calendar c = Calendar.getInstance();
		int h = c.get(Calendar.HOUR_OF_DAY);
		int m = c.get(Calendar.MINUTE);
		int s = c.get(Calendar.SECOND);
		//Writer <= 문자형 출력 스트림
		PrintWriter out = response.getWriter();
		out.println("<html><head><title>현재시간</title></head>");
		out.println("<body>");
		out.println("<h1>현재시간:"+h+"시"+m+"분"+s+"초");
		out.println("</body></html>");
	}
	//post방식 요청인 경우 호출되는 메서드(로그인 방식)
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}