[Java] 쒀쀨릿

  1. 서버생성

  1. 서블릿 프로젝트

  1. xml설정

배포서술자를(web.xml)를 이용하는 방법

  1. URL주소 만들기
package kr.or.ddit.basic;

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

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

/*
 	Servlet이란 컨테이너(서블릿엔진)에 의해 관리되는 자바기반의 웹컴포넌트. 동적인 웹 컨텐츠 생성을 가능하게 한다.
 */

/*
 	이 서블릿을 호출할 URL주소 만들기
 	예) http://localhost:80/servletTest/servletTest01.do
 	   - http => 프로토콜
 	   - localhost => 컴퓨터이름(도메인명) 또는 IP주소
 	   - 80 => PORT번호 (80번은 생략가능)
 	   - /servletTest => 컨텍스트패스(보통 프로젝트명으로 지정한다)
 	   - /servletTest01.do => 서블릿 요청 URL패턴
 */

// 서블릿을 등록하는 방법 2가지
// 1. 배포서술자(web.xml)를 이용하는 방법
// 2. 애노테이션을 이용하는 방법

// 이 예제는 배포서술자를 이용하는 방법을 사용하는 예제이다.
// HttpServlet를 상속받는다. default설정
public class ServletTest01 extends HttpServlet {
	private static final long serialVersionUID = 1L;
	
	/*
	    이 곳에서는 대부분 service()메서드나, doGet()메서드 또는 doPost()메서드를 재정의해서 작성한다.
	   
	  doGet()메서드나 doPost()메서드의 매개변수로 다음과 같은 2개의  객체가 전달된다.
	  1) HttpServletRequest객체
	  	 서비스 요청에 관련된 정보 및 메서드를 관리하는 객체
	  2) HttpServletResponse객체
	  	 서비스 응답에 관련된 정보 및 메서드를 관리하는 객체
	 */
	
	// service 메서드 : 모든 요청시 실행되는 메서드. 이 메서드에서 전송방식에 맞는 메서드를 자동 호출해준다. 생략가능.
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		super.service(req, resp);
	}
	
	
	
	// doGet()메서드 : GET방식의 요청을 처리하는 메서드
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		
		resp.setCharacterEncoding("utf-8"); //응답 문서의 인코딩 방식 지정
		resp.setContentType("text/html; charset=utf-8"); //응답 문서의 ContentType지정
		
		// 처리한 내용을 응답으로 보내기위한 PrintWriter객체생성
		PrintWriter out = resp.getWriter();
		
		//처리한 내용을 PrintWriter객체를 이용하여 출력한다.
		// (이 작업이 곧 응답데이터를 보내는 작업이 된다.)
		
		// 방법1 : append()메서드 이용하기
		out.append("<html>").append("<head>").append("<meta charset='utf-8'>")
			.append("<title>첫번째 서블릿 연습</title>").append("</head>").append("<body>")
			.append("<h1 style='text-align:center;'>").append("안녕하세요. 첫번째 서블릿 프로그램입니다. <br>")
			.append("실행 Servlet 경로: "+ req.getContextPath()).append("</h1></body></html>");
	}
	
	// doPost()메서드 : POST방식의 요청을 처리하는 메서드
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doGet(req, resp);
	}
	

}
  1. 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>servletTest</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>servletTest01</servlet-name>
  	<servlet-class>kr.or.ddit.basic.ServletTest01</servlet-class>
  </servlet>
  
 <!--  서블릿을 언제 사용 -->
 	<servlet-mapping>
 	<servlet-name>servletTest01</servlet-name> <!--  실행하고싶은 서블릿 이름 -->
 	<url-pattern>/servletTest01.do</url-pattern>
 	</servlet-mapping>
 	
 	
</web-app>

애노테이션을 이용하는방법

package kr.or.ddit.basic;

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;

/*
  		이 예제는 애노테이션을 이용하여 서블릿을 등록하는 예제입니다.
  		애노테이션(@WebService)은 Servlet버전 3.0이상에서 사용할 수 있다.
  		
 */

/*
  @WebServlet 애노테이션 속성들. urlPatterns만 잘 설정하면됨
  1) name : 서블릿 이름을 설정한다. (기본값: 빈문자열(""))
  2) urlPatterns : 서블릿의 요청 URL패턴의 목록을 설정한다. (기본값: 빈배열({})
  	예) urlPatterns = "/url1" 또는 urlPattern = {"/url1"} => 패턴이 한개일 경우
  	예) urlPatterns = {"/url1", "/url2", ...} => 패턴이 2개 이상일 경우
  3) value : urlPattern속성과 동일한 기능을 한다.
  4) description : 주석(설명글)을 설정한다.
  
 */

@WebServlet(urlPatterns = "/servletTest02.do", description="애노테이션을 이용한 서블릿 설정")
public class ServletTest02 extends HttpServlet {

	private static final long serialVersionUID = 1L;
	
	@Override
		protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
			response.setCharacterEncoding("utf-8");
			response.setContentType("text/html; charset=utf-8");
			
			// 처리한 내용을 응답으로 보내기위한 PrintWriter객체생성
			PrintWriter out = response.getWriter();
			
			//처리한 내용을 PrintWriter객체를 이용하여 출력한다.
			// (이 작업이 곧 응답데이터를 보내는 작업이 된다.)
			
			// 방법2 : print()메서드 또는 println() 메서드 이용하기
			out.println("<html>");
			out.println("<head><meta charset='utf-8'><title>두번째 서블릿 예제</title></head>");
			out.println("<body>");
			out.println("<h1 style='text-align:center; '>");
			out.println("안녕하세요. 두번째 서블릿 예제입니다. <br>");
			out.println("애너테이션을 이용하여 설정했습니다.<br><br>");
			out.println("실행 ContextPath: " + request.getContextPath() + "</h1>");
			out.println("</body></html>");
			
		}
	
	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		super.doPost(request, response);
	}

}
  1. 서버에 서블릿 추가

좋은 웹페이지 즐겨찾기