본문 바로가기
BACK-END

[JSP]Java Server Pages 시작

by 지에스정 2022. 1. 17.

웹 컨테이너

 

동적인 데이터 연산, 요청이 들어왔을 떄 서버가 연산을 요청하는 곳

연산이 끝나면 정제된 데이터(html, json, xml, ...)로 서버에 돌려준다

 

JSP (Java Server Page)

 

HTML을 중심으로 자바와 같이 연동하여 사용하는 웹 언어이다

HTML 코드 안에 JAVA 코드를 작성할 수 있도록 도와주는 언어이다.

 

<%@ 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>
	첫번째 작업물 입니다(JSP 파일)
</body>
</html>

 

서블릿(Servlet)

 

JAVA 코드 안에서 HTML문서를 작성할 수 있는 JAVA 프로그램이다

JSP 파일은 해석시 서블릿으로 자동으로 변환되고, 변환된 서블릿 파일이 실행하면서 내부 코드로 인해 HTML 파일이 만들어 지게 된다

 

사용자가 URL 요청 -> web.xml에 매핑해놓은 서블릿 찾기 -> 해당하는 서블릿의 클래스로 요청 전송 -> Thread에 의해 service() 호츨 -> 요청 방식에 따라 doGet() 혹은 doPost()호츨 -> 처리

 

소멸단계

WAS(Web Server + Web Container)는 response 객체를 HttpResponse 형태(정적인 형태)로 바꿔서 웹서버에 전달하고 생성된 Thread를 종료한다.

 그리고 HttpServletRequest HttpServletResponse 객체를 제거한다.

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
  <display-name>day01</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

 

package servlet;

import java.io.IOException;
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("/test")
public class FirstServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.setContentType("text/html; charset=utf-8;");
		response.setCharacterEncoding("utf-8");
		response.getWriter().append("Served at: ").append(request.getContextPath());
		response.getWriter().write("첫번째 작업물입니다(Servlet)");
	}
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

'BACK-END' 카테고리의 다른 글

[JSP] DB연결 ) Mybatis  (0) 2022.01.31
[JSP] 스크립트 태그 / 디렉티브 태그 /액션 태그  (0) 2022.01.25
[MySQL]간단한 MySQL 사용 방법(SQL문)  (0) 2022.01.04
[ORM] ORM 프레임워크  (0) 2020.06.17
[MySQL] MySQL 과 schema  (0) 2020.06.15