Servlet・JSP

eclipseでのservletの作成

  1. Servletのファイルを作成
    • ファイル→新規→クラス
    • javax.servlet.http.HttpServletクラス継承したクラスを作成
      • 名前は○○Servletとしておく(ほうがわかりやすい、たぶん)
    • http://codezine.jp/article/detail/1481
  2. Get/Postを受ける関数を設定
    • 別記
  3. jspファイルを作成
    • ○○.jsp
  4. 作成した Servlet.java と ○○.jsp を関連付ける
    • WEB-INFフォルダの中にある、web.xmlファイルに次を記述
      • <servlet><servlet-name>○○</servlet-name><servlet-class>〈パッケージ名〉.○○Servlet</servlet-class></servlet>
      • <servlet-mapping><servlet-name>○○</servlet-name><url-pattern>/○○</url-pattern></servlet-mappint>
  5. ポストされたデータが文字化けしないように設定しておく
    • filter
  6. ブラウザから直接呼び出しされたくない場合は、その設定も
    • security-constraint

GetとPost

簡単には、情報を要求する か 情報を送る か、の違い

Postで受ける

ServletでdoPostをオーバーライドする


protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException \{
	RequestDispatcher rd = getServletContext().getRequestDispatcher("/WEB-INF/index.jsp");
	rd.forward(req, resp);
\
}

パラメータを受け取る

GETでもPOSTでも同じ受け取り方ができる
req.getParameter("param")
指定した名前に対して、値がない場合はnullが返る
リクエストパラメータの取得(getParameter) - JavaDrive

表示させるだけなら、わざわざここで取り出さなくても、JSP内で、

<%= request.getParameter("productname") %>


WEB-INF

「web.xml」のように重要な情報が記述されているファイルは、必ずこの「WEB-INF」内に配置をします。

WARファイルの作成

warファイルって何?

  • Web Archive(WAR)
  • 簡単にWebアプリケーションをサーバにアップし公開できるように、Webアプリケーションを単一のアーカイブファイルの形で配布することができる
  • WebアプリケーションをまるごとZIP圧縮し、拡張子を.warに変更したもの

Scope

  • 一つのjspで完結する場合は、requestスコープとpageスコープに違いはない。
  • しかし、以下の場合は意味がある
    • サーブレットからJSPページを呼び出す場合(MVCモデルなど)
    • あるJSPからほかのJSPを呼び出す場合(JSPページのインクルードなど)

include時の文字化け

includeで読み込んだファイルが文字化けしないように設定
読み込み元
<%@ page language="java" contentType="text/html; charset=(文字コード)" %>
読み込み先
<%@ page pageEncoding="(文字コード)" %>
最終更新:2014年08月02日 18:14