11
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

サーブレットとはなんぞや

Last updated at Posted at 2018-05-01

##( Java ) Servlet

  • リクエストを受け取り、処理して、クライアントへ返す窓口役
  • HTTPメソッド(GETやPOST)から呼び出されるメソッド(doGetやdoPost)の処理を記述するJavaプログラム
  • Webサーバ上(バックエンド)で動作する
  • データ処理を行う他、Webページ(HTML画面)生成もできる
  • クライアント側端末へのダウンロード不要
  • 部品(モジュール)化されているので、追加するだけで機能拡張できる
  • Javaプログラムなので、OSやハードウェアに依存せず動く
  • 一度呼び出すとメモリに常駐するので処理が早い

補足
##アプレット

  • クライアント側で動作するJavaプログラム
  • サーブレットの対義語

##使い方

  • HttpServletクラスを継承することで使える
  • クライアント端末で使われたHTTPメソッド(GET/POST )に応じて、doGet() / doPost()が呼び出される。
// HttpServletは必ず継承する
// 返すURLを @WebServlet で決める
@WebServlet(urlPatterns = {"/SampleServlet"})
public class SampleServlet extends HttpServlet {

  // GETリクエスト時に呼び出される
  @Override
  protected void doGet(HttpServletRequest request
    , HttpServletResponse response)
    throws ServletException, IOException {

      // Serializableインターフェイスを実装しているため必要 / ユニークな値にする
      private static final long serialVersionUID = 1L;

      // 出力内容を設定 (ここではHTMLで、文字列UTF-8を設定)
      response.setContentType("text/html;charset=UTF-8");

      // 画面出力用のWriterクラスインスタンスを取得
      PrintWriter out = response.getWriter().println("<!DOCTYPE html>");
      out.println("<html>");
      out.println("<head>");
      out.println("<title>title</title>");
      out.println("</head>");
      out.println("<body>");
      out.println("<h1>見出し</h1>");
      out.println("</body>");
      out.println("</html>");

  // POSTリクエスト時に呼び出される
  @Override
  protected void doPost(HttpServletRequest request
    , HttpServletResponse response)
    throws ServletException, IOException {
      doGet(request, response);
  }

  // Headメソッドでリクエスト時に呼び出し
  @Override
  protected void doHead(){}

  // Putメソッドでリクエスト時に呼び出し
  @Override
  protected void doPut(){}

  // Deleteメソッドでリクエスト時に呼び出し
  @Override
  protected void doDelete(){}
}

参考
https://employment.en-japan.com/tenshoku-daijiten/14901/
JSPとServletについてよくまとまっています↓
http://cartman0.hatenablog.com/entry/2015/12/01/205220
シリアライズIDってよく見るけど何なの?という疑問には↓
http://java-study.blog.jp/archives/1021151333.html

11
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?