본문 바로가기

개발/JAVA

[Servlet] #01. Servlet(서블릿)의 정의 및 셋팅

웹 구동 구조

1. 사용자가 웹페이지 form(HTML Form)을 통해 자신의 정보를 입력한다. (input)

2. Servlet의 doGet() 또는 doPost() 메소드는 입력한 form data에 맞게 DB 또는 다른 소스에서 관련된 정보를 검색한다.

3. 이 정보를 이용하여 사용자의 요청에 맞는 적절한 동적 컨텐츠(HTML Page)를 만들어서 제공한다. (Output)

 

■ Servlet(서블릿) 이란?

웹 기반의 요청에 의한 동적인 처리가 가능한 하나의 클래스이다.

-> Server Side에서 돌아가는 Java Program이며, 개발자가 작성해야 한다.

 Web Browser Web <-> Application Server와 통신(WAS)

Server 동작 방식

- Get : Parameter가 Open된 방식

- Post : Parameter가 Hide된 방식


■ 셋팅

eclipse에 끌어다가 놓기

 

● 수동으로 셋팅하는 방법

web.xml 파일 새로 생성해서, 기존 web.xml 파일에 <web-app> 부분 붙여넣기

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
  version="4.0">
  
  </web-app>

 

 

 

 

 

 

 

 

doGet과 doPost만 오버라이딩

Super부분은 지워주기

 

 

● 여기까지 들어오는지 확인

package sample01;

import java.io.IOException;

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

public class HelloServlet extends HttpServlet {

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
			System.out.println("HelloServlet doGet");
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
			System.out.println("HelloServlet doPost");
	}

}

new로 생성 안해줘도 된다. Web서버에서 생성해주면 된다.

 

● index.html 셋팅

<h1> Servlet </h1>

<form action="" method="get">			<!-- 안 적어도 기본 default값은 get이다. -->
		<input type="submit" value="get 방식">
</form>

<form action="" method="post">
		<input type="submit" value="post 방식">
</form>

 

● web.xml에 servlet class 등록하자

- 규칙 1. servlet-name, Servlet 이름은 동일해야한다. 이름 하나 생길때마다 한 셋트씩 만들어줘야한다.

- 규칙 2. servlet-class는 패키지명과 함게 서블릿 Class는 같이 입력해주어야한다.

- 규칙 3. url-pattern : 링크를 걸었을 때 문자열, 링크가 걸리면 무조건 sample01.HelloServlet 클래스로 가라!

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
  version="4.0">
  
<!--   servlet class 등록할 수 있는 부분 -->
  <servlet>
  		<servlet-name>helloServlet</servlet-name>
  		<servlet-class>sample01.HelloServlet</servlet-class>
  </servlet>
  
  <servlet-mapping>
  		<servlet-name>helloServlet</servlet-name>
  		<url-pattern>/location</url-pattern>
  </servlet-mapping>
  

  </web-app>
<h1> Servlet </h1>

<form action="location" method="get">			<!-- 안 적어도 기본 default값은 get이다. -->
		<input type="submit" value="get 방식">
</form>

<form action="location" method="post">
		<input type="submit" value="post 방식">
</form>

 

 

Console 확인!

 

Java코드를 쓸 수 있는 코드다~ 하면 무조건 DB접속이 가능해진다고 보면 된다.

(MVC에서 Model 1과 Model 2의 차이점이 여기에 있다.)