● JSP(Java Server PJSP(Java Server Page)
- HTML을 중심으로 자바와 같이 연동하여 사용하는 웹 언어이다.
- HTML코드 안에 JAVA코드를 작성할 수 있는 언어이다.
● 서버
- 사용자의 요청에 맞는 서비스를 제공해주는 것
1. 요청(request): 클라이언트 ---> 서버
2. 응답(response): 서버 ---> 클라이언트
● 웹(Web)
- 페이지 요청과 응답이 일어나는 장소
- 인터넷에 연결된 컴퓨터들을 통해 사람들이 정보를 공유할 수 있는 정보공간
● 웹 서버(http) - 아파치
- 사용자의 요청이 정적 데이터인지 동적 데이터인지 판단한다.
- 정적 데이터 : 이미 준비된 HTML 문서를 그대로 응답해준다.
- 동적 데이터 : 웹 컨테이너(서블릿 컨테이너)에 처리 요청을 보낸다.
● 웹 컨테이너(서블릿 컨테이너)
- 동적 데이터일 경우 JSP, 서블릿으로 연산 및 제어
- DB에 접근해서 정제된 데이터(정적 데이터)가 완성되면 이를 응답해준다.
● WAS(Web Application Server) - 톰캣
- 동적 데이터를 처리할 서블릿을 메모리에 할당하며, web.xml을 참조하여 알맞는 서블릿에 대한 Thread를 생성한다.
- 서블릿 요청과 서블릿 응답 객체 생성 후 서블릿에 전달하면, 연산 종료 후 메모리에서 해제시킨다.
● 서블릿(Servlet)
- JAVA 코드 안에 HTML 코드를 작성할 수 있는 JAVA 프로그램이다.
- Thread에 의해 서블릿에 있는 service()메소드가 호출된다.
- 전송 방식 요청에 맞게 doGet() 또는 doPost()등의 메소드를 호출한다.
실습(Servlet)
1. index.jsp
<%@ 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>
<h1>JSP로 만든 페이지</h1>
<form action="Hello" method="post">
<p>서블릿으로 이동</p>
<button>이동</button>
</form>
</body>
</html>
2. MyServlet.java
package com.example.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class MyServlet
*/
@WebServlet(description = "나의 첫 서블릿", urlPatterns = { "/Hello" })
public class MyServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public MyServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
out.print("<h1 style='color=brown'>");
out.print("서블릿으로 만든 페이지");
out.print("</h1>");
out.print("<a href='index.jsp'>JSP 이동</a>");
out.close();
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
out.print("<h1 style='color=brown'>");
out.print("서블릿으로 만든 페이지");
out.print("</h1>");
out.print("<a href='baby'>JSP 이동</a>");
out.close();
}
}
3. web.xml
<?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>
<servlet>
<servlet-name>Baby</servlet-name>
<jsp-file>/index.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>Baby</servlet-name>
<url-pattern>/baby</url-pattern>
</servlet-mapping>
</web-app>
![](https://blog.kakaocdn.net/dn/Mi2Ok/btrBZsssTdZ/f9t4rVWGgKGQRGR1Z1T8DK/img.png)
![](https://blog.kakaocdn.net/dn/dyoqMu/btrBY1PyCEY/OUKi5mjyaIIabyLHITxDU0/img.png)
'웹 개발 > JSP' 카테고리의 다른 글
[Web_JSP] 06 (0) | 2022.05.24 |
---|---|
[Web_JSP] 05 (0) | 2022.05.23 |
[Web_JSP] 04 (0) | 2022.05.22 |
[Web_JSP] 03 (0) | 2022.05.18 |
[Web_JSP] 02 (0) | 2022.05.17 |