JSP

Servlet 초기화

승모근뭉치 2022. 12. 8. 00:38

컨텍스트 패스(Context Path)

 

WAS(톰캣,Web Application Server)에서 웹어플리케이션을 구분하기 위한 path를 말한다.

프로젝트가 하나하나 웹어플리케이션이다.이것을 구분할 수 있게 하려고 context path를 지정한다.

이클립스에서 프로젝트를 생성할 때 마다 자동으로 server.xml에 입력을 한다.

 

서블릿 초기화 : ServletConfig 클래스

 

특정 Servlet이 생성될 때 초기에 필요한 데이터(아이디 정보, 특정경로)들을 초기화 하는 것을 서블릿 초기화라고 한다.

1. 초기화 파라미터(서블릿이 생성될 때 필요한 데이터)는 web.xml에 기술한다.

        ServletConfig클래스를 이용해서 초기화 파라미터 사용이 가능하다.

2. 초기화 파라미터를 web.xml 대신 Servlet 파일에 직접 기술하는 방법도 있다.

 

web.xml 에 초기화 파라미터 기술하기

 

Servlet 클래스 작성

             |

web.xml 에 초기화 파라미터를 입력

             |

ServletConfig(인터페이스로 HttpServlet은 이놈에게서 상속받고 구현함)의 메소드를 이용해서 데이터를 사용(접근)한다.

ServletConfig의 getInitParameter() 메소드를 이용해서 접근할 수 있다. 이것은 HttpServlet이 구현을 해놓았다.

 

Servlet 파일에 초기화 파라미터를 직접 기술하는 방법

Servlet 클래스 작성

              |

@WebInitParam 에 초기화 파라미터를 작성

              |

ServletConfig 메소드를 이용한다.

 

servlet01 프로젝트 내 Java Resources 내 src 내 com.test.ex 패키지 내 InitServlet.java

package com.test.ex;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

// 컨텍스트 패스(Context Path)

// WAS(톰캣,Web Application Server)에서 웹어플리케이션을 구분하기 위한 path를 말한다.
// 프로젝트가 하나하나 웹어플리케이션이다.이것을 구분할 수 있게 하려고 context path를 지정한다.
// 이클립스에서 프로젝트를 생성할때마다 자동으로 server.xml에 입력을 한다.

// 서블릿 초기화 : ServletConfig 클래스

// 특정 Servlet이 생성될때 초기에 필요한 데이터(아이디 정보, 특정경로)들을 초기화 하는 것을 서블릿 초기화라고 한다.
// 1. 초기화 파라미터(서블릿이 생성될때 필요한 데이터)는 web.xml에 기술한다.
// 		ServletConfig클래스를 이용해서 초기화 파라미터 사용이 가능하다.
// 2. 초기화파라미터를 web.xml대신 Servlet 파일에 직접 기술하는 방법도 있다.

// web.xml에 초기화 파라미터 기술하기

// Servlet 클래스 작성
//		|
// web.xml에 초기화 파라미터를 입력
// 		|
// ServletConfig(인터페이스로 HttpServlet은 이놈에게서 상속받고 구현함)의 메소드를 이용해서 데이터를 사용(접근)한다.
// ServletConfig의 getInitParameter()메소드를 이용해서 접근할 수 있다. 이것은 HttpServlet이 구현을 해놓았다.

// Servlet 파일에 초기화 파라미터를 직접 기술하는 방법
// Servlet 클래스 작성
//		|
// @WebInitParam 에 초기화 파라미터를 작성
// 		|
// ServletConfig 메소드를 이용한다.

/**
 * Servlet implementation class InitServlet
 */

@WebServlet(urlPatterns = {"/InitS"}, initParams= {@WebInitParam(name="id", value="test11"), @WebInitParam(name="pw", value="1000"), @WebInitParam(name="local", value="pusan")})
public class InitServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public InitServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//ServletConfig라는 인터페이슬르 구현한게 HttpServlet입니다. 굳이 ServletConfig라는객체를 생성할 필요는 없다.이 ServletConfig에 getInitParameter가 있다?
		String id = getInitParameter("id");//web.xml의 해당 파라미터이름을 적을것
		String pw = getInitParameter("pw");
		String local = getInitParameter("local");
		
		System.out.println("id : " + id);
		System.out.println("비밀번호 : " + pw);
		System.out.println("지역 : " + local);
		
		//response.setContentType("text/html; charset=UTF-8");
		//PrintWriter out = response.getWriter();
		
		//html 형식으로 출력
		// out.println("<html><head></head><body>");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}
}

WEB-INF 내 web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>servlet01</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>
  <context-param>
    <param-name>id</param-name>
    <param-value>test33</param-value>
  </context-param>
  <context-param>
    <param-name>password</param-name>
    <param-value>1234</param-value>
  </context-param>
  <context-param>
    <param-name>local</param-name>
    <param-value>kwangju</param-value>
  </context-param>
  
  <listener>
  	<listener-class>com.test.ex.ContextL</listener-class>
  </listener>
  
</web-app>

 

web.xml 에 쓴거는 출력이 안되고 Servlet java파일에 쓴 초기화값들이 출력이 된다.