【Java】ソエンレット

16804 ワード

  • サーバ
  • の作成
  • タブレットプロジェクト
  • xml設定

  • (web.xml)デプロイメント記述子の使用方法


    作成
  • 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);
    	}
    	
    
    }
    
  • 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);
    	}
    
    }
    
  • サーバからブレード
  • を追加