본문 바로가기

웹 개발/JSP

[Web_JSP] 01

 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>

 

결과1(실행 시, 결과2의 버튼 클릭 시)
 
결과2(결과1의 버튼 클릭 시)
 

 

 

 

'웹 개발 > 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