基本形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
<HTML> <HEAD> <jsp:useBean id="searchTelBean" scope="request" class="searchtel.SearchTelBean" /> <TITLE>検索結果</TITLE> <BODY> 検索結果:<jsp:getProperty name="searchTelBean" property="tel" /> </BODY> </HTML>
Web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web
Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<!-- (1)DTD宣言の設定 -->
<web-app>
<!-- (2)servletタグの設定 -->
<servlet>
<servlet-name>test</servlet-name>
<servlet-class>SearchTelServlet</servlet-class>
</servlet>
<!-- (3)servlet-mappingタグの設定 -->
<servlet-mapping>
<servlet-name>test</servlet-name>
<url-pattern>/search</url-pattern>
</servlet-mapping>
</web-app>
jsp ファイルに直接アクセスさせない
<security-constraint>
<display-name>Jsp Security</display-name>
<web-resource-collection>
<web-resource-name>Protected Area</web-resource-name>
<url-pattern>*.jsp</url-pattern>
<http-method>DELETE</http-method>
<http-method>GET</http-method>
<http-method>POST</http-method>
<http-method>PUT</http-method>
</web-resource-collection>
<auth-constraint>
</auth-constraint>
</security-constraint>
を web.xml に追記する
基本形2
Servlet 3.0 以降
アノテーションを使うことで、web.xml を書かなくても良くなった
ディレクトリ構成
[プロジェクトルート]
│
├─src
│
├─jspファイル
│
└─WEB-INF
│ web.xml(なくてもよい)
│
└─classes(コンパイル後の実行体)
servlet
1 |
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("<html>");
writer.println(" <head>");
writer.println(" <title>HelloServlet</title>");
writer.println(" </head>");
writer.println(" <body>");
writer.println(" <h1>Hello Servlet</h1>");
writer.println(" <p>GET Request.</p>");
writer.println(" <p>日本語のテスト</p>");
writer.println(" </body>");
writer.println("</html>");
}
} |
コンパイル
javac -cp /usr/share/java/servlet.jar src/TestServlet.java -d WEB-INF/classes/
web.xml
なくても動くけど、一応作る
<?xml version="1.0" encoding="UTF-8" ?> <web-app xmlns:xsi="http://www.w3c.org/2001/XMLSchema-instance"> <display-name>Test Application</display-name> </web-app>
基本形3
jspだけで作ってしまう。
http://d.hatena.ne.jp/nowokay/20131108
ディレクトリ構成
[プロジェクトルート]
│
├─src
│
├─jspファイル
│
└─WEB-INF
│ web.xml(なくてもよい)
│
└─classes(コンパイル後の実行体)
ロジック
1 |
package servlet;
public class CalcLogic {
public int add(int left, int right){
return left + right;
}
} |
ビュー
1 |
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="servlet.*" %>
<% CalcLogic calcLogic = new CalcLogic(); %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Hello World!</h1>
2と3を足すと<%=calcLogic.add(2, 3)%><br/>
</body>
</html> |
[カテゴリ: プログラミング言語 > Servlet & Struts]
[通知用URL]
Tweet
最終更新時間:2015年10月17日 22時07分54秒