!!!基本形1 Servlet 2.5 までの基本的な形 !!ディレクトリ構成 [プロジェクトルート] │ ├─src │ ├─jspファイル │ └─WEB-INF │ web.xml │ └─classes(コンパイル後の実行体) !!サンプルソース 参照 http://www.atmarkit.co.jp/fjava/javafaq/jsp/jsp05.html Bean package searchtel; import java.util.Vector; import java.sql.*; public class SearchTelBean { private String tel = null; /** 結果を取得するメソッド */ public String getTel() { return tel; } public void setTel(String tel) { this.tel = tel; } /** 氏名から電話番号を検索するメソッド */ public void searchTels(String name) { String result = "XX-XXXX-XXXX"; //氏名から電話番号を検索し文字列resultをセット //するロジックを実装する setTel(result); } } Servlet package searchtel; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; public class SearchTelServlet extends HttpServlet { /**HTTP Get リクエストの処理*/ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getParameter("name"); SearchTelBean searchTelBean = new SearchTelBean(); //電話番号を検索 searchTelBean.searchTels(name); //BeanをJSPに渡すためにHttpServletRequestオブジェクトにセット request.setAttribute("searchTelBean", searchTelBean); //ViewであるJSPを呼び出す RequestDispatcher rDispatcher = request.getRequestDispatcher("/result.jsp"); rDispatcher.forward(request, response); } } JSP 検索結果 検索結果: Web.xml test SearchTelServlet test /search !jsp ファイルに直接アクセスさせない Jsp Security Protected Area *.jsp DELETE GET POST PUT を web.xml に追記する !!!基本形2 Servlet 3.0 以降 アノテーションを使うことで、web.xml を書かなくても良くなった !!ディレクトリ構成 [プロジェクトルート] │ ├─src │ ├─jspファイル │ └─WEB-INF │ web.xml(なくてもよい) │ └─classes(コンパイル後の実行体) !!servlet {{code Java, package servlet; 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; /** * テストサーブレットクラス */ @WebServlet(description = "サーブレット テスト", urlPatterns = { "/HelloServlet" }) public class TestServlet extends HttpServlet { /** * GETリクエスト処理 */ protected void doGet( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // レスポンスヘッダの設定 response.setContentType("text/html; charset=UTF-8"); // ページの描画 PrintWriter writer = response.getWriter(); writer.println(""); writer.println(" "); writer.println(" HelloServlet"); writer.println(" "); writer.println(" "); writer.println("

Hello Servlet

"); writer.println("

GET Request.

"); writer.println("

日本語のテスト

"); writer.println(" "); writer.println(""); } } }} !!コンパイル javac -cp /usr/share/java/servlet.jar src/TestServlet.java -d WEB-INF/classes/ !!web.xml なくても動くけど、一応作る Test Application !!!基本形3 jspだけで作ってしまう。 http://d.hatena.ne.jp/nowokay/20131108 !!ディレクトリ構成 [プロジェクトルート] │ ├─src │ ├─jspファイル │ └─WEB-INF │ web.xml(なくてもよい) │ └─classes(コンパイル後の実行体) !!ロジック {{code Java, package servlet; public class CalcLogic { public int add(int left, int right){ return left + right; } } }} !!ビュー {{code HTML, <%@page contentType="text/html" pageEncoding="UTF-8"%> <%@ page import="servlet.*" %> <% CalcLogic calcLogic = new CalcLogic(); %> JSP Page

Hello World!

2と3を足すと<%=calcLogic.add(2, 3)%>
}} {{category2 プログラミング言語,Servlet & Struts}}