서블릿은 Java EE 스펙, 이것을 구현한 구현체가 tomcat, undertow, jetty.
웹 서버(Web Server)
웹 애플리케이션 서버 (Web Application Server)
서블릿 구현체를 서블릿 컨테이너 (Servlet Container)라고 부른다.
구현체
package example_Servlet;
import java.io.IOException;
import javax.servlet.*;
/**
* Servlet implementation class HelloServelt
*/
@WebServlet("/path") // 경로
public class HelloServelt extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
* 서블릿 생성자
*/
public HelloServelt() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
//WebServlet에 지정된 경로로 GET 메서드로 요청 시 처리 할 로직
protected void doGet(HttpServletRequest request, HttpServletResponseresponse) throws ServletException, IOException {
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
//WebServlet에 지정된 경로로 POST 메서드로 요청 시 처리 할 로직
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
HTTP 요청에 대한 객체
JSP 기본 코드 구조
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP</title>
</head>
<body>
<%
final Date date = new Date();
final SimpleDateFormat sdf
= new SimpleDateFormat("yyyy-MM-dd hh:mm:ss(E)");
%>
<h1>._.</h1>
<p>현재 시간: <%= sdf.format(date) %></p>
</body>
</html>
위 코드는 크게 세 가지 부분으로 나뉨
1. 디렉티브(directive)
2. 스크립트 요소(Scriptlet, Expression)
3. HTML
디렉티브는 해당 JSP의 설정 정보를 나타냄.
<%@ page import="java.text.SimpleDateFormat"%>
<%@ page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
기본적인 사용 방법
<%@ 디렉티브이름 속성="값"%>
JSP 페이지 내에서 동적으로 생성되는 내용들을 위해 존재함.
<%=
와 >
로 감싼 값으로 평가되는 식<p>현재 시간: <%= sdf.format(date) %></p>
<%
final Date date = new Date();
final SimpleDateFormat sdf
= new SimpleDateFormat("yyyy-MM-dd hh:mm:ss(E)");
%>
<%!
private static String printDate() {
final Date date = new Date();
final SimpleDateFormat sdf
= new SimpleDateFormat("yyyy-MM-dd hh:mm:ss(E)");
return sdf.format(date);
}
%>
// <%@ 지시문 - > direction %>
// <%! 선언문 %>
// <%= 표현식 %>
<%@ 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>
<%
// 스크립트릿 영역 (scriptlet) : java coding area
// java -> System.out.println();
// js -> console.log();, document.write();
out.print("hi jQuery...");
%>
</body>
</html>