Webバックエンドプログラミング-サーブレット3の作成方法


📌 Webバックエンドプログラミング-サーブレット3の作成方法

네이버 부스트코스의 웹 백엔드 수강을 기반으로 작성된 글입니다.

1.サーブレット3.0仕様不足時の使用方法


Webの基本的な作成方法とライフサイクルを理解します!


1.サーブレット3.0仕様不足時の使用方法


実習
サーブレット2.5仕様exce 25という名前のアイテムを作成
TenServiceletを作成し、1から10に出力します.http://localhost:8080/exam25/tenに設定
  • 動的Webモジュールバージョン2.5プロジェクトの作成
  • ❓ Generate web.xml deployment descriptor
    3.0未満のバージョンなのでxmlチェックが必須であることを確認します

  • 試験31項目の3.1バージョンとは異なり、webです.xmlファイルがあるかどうかを確認できます


  • 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_2_5.xsd" id="WebApp_ID" version="2.5">
      <display-name>exam25</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>
    </web-app>
    

  • サーブレットの作成



  • サーバ側ファイルの要求時に指定したサーバ側名をTenに変更


  • doGetメソッドのみを使用

  • TenServlet.Javaの作成
  • 3.0以降とは異なり、@WebServlet("/Ten")は説明する必要はありません.
    package exam;
    
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * Servlet implementation class TenServlet
     */
    public class TenServlet extends HttpServlet {
    	private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public TenServlet() {
            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
    		response.getWriter().append("Served at: ").append(request.getContextPath());
    	}
    
    }
  • サーブレットを作成すると、web.xmlに次の新しいサーブレットコードが追加されます.
  •   <servlet>
        <description></description>
        <display-name>TenServlet</display-name>
        <servlet-name>TenServlet</servlet-name>
        <servlet-class>exam.TenServlet</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>TenServlet</servlet-name>
        <url-pattern>/Ten</url-pattern>
      </servlet-mapping>
    ❗URL要求が/tenの場合<servlet-mapping>ラベルから<servlet-name>を確認後
    同じelement<servlet>ラベルで検索します.<servlet-name>というパッケージでexamを実行
  • 応答
    HttpServeretRequest:クライアントリクエスト
    HttpServeretResponse:サーバ応答
  • setContentType()を使用して、クライアントに送信するデータ型
  • を設定します.
    /**
     * @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 객체 리턴받음
    	PrintWriter out = response.getWriter();
    	out.println("<h1>1-10까지 출력</h1>");
    	for(int i=1; i<=10; i++) {
    		out.print(i + "<br>");
    	}
    	out.close();
    }
    📍 しゅつりょく
  • /Ten
  • URLを別のアドレスに変更する場合は、TenServletからweb.xmlに変更してください
    変更:/ten👉/TTT
    変更する場合は、サーバを再起動する必要があります.
    <servlet-mapping>
        <servlet-name>TenServlet</servlet-name>
        <url-pattern>/TTT</url-pattern>
      </servlet-mapping>
    📍 しゅつりょく

  • /TTTに変更されたことを確認できます


  • /tenに出力中に404エラーが発生しました
    どこにも見つからないから