servlet
サーブレット
Javaサーブレット

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

( 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