ページ

2014年7月16日水曜日

GAEと戯れる 5 - JSP/サーブレット -

前回に引き続き、GAE環境を使ってJSP/サーブレットのお勉強。

前回現在時刻を表示したjspを以下に変更。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.util.Calendar" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%
Calendar calendar = Calendar.getInstance();
SimpleDateFormat format = new SimpleDateFormat("yyyy月 MM月 dd日");
String result = format.format(calendar.getTime());
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Sample jsp</title>
    <style>
    h1 {font-size:16pt; background:#AAFFAA; padding:5px; }
    </style>
</head>
<body>
    <h1>Sample jsp page</h1>
    <p>これはサンプルで用意したページです。</p>
    <p><% out.println(result); %></p>
</body>

</html>

⬇️実行結果












次にメソッドの定義や変数の宣言を行う。
<%! %>のタグ内に行う。以下に修正。
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.util.Calendar" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%!
String format_str = "yyyy-MM-dd";
String result = "none.";

void setFormatStr(String s){
    format_str = s;
}
void printToday(){
    Calendar calendar = Calendar.getInstance();
    SimpleDateFormat format = new SimpleDateFormat(format_str);
    result = format.format(calendar.getTime());
}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Sample jsp</title>
    <style>
    h1 {font-size:16pt; background:#AAFFAA; padding:5px; }
    </style>
</head>
<body>
    <h1>Sample jsp page</h1>
    <p>これはサンプルで用意したページです。</p>
    <% printToday(); %>
    <p><%=result  %></p>
    <% setFormatStr("yyyy年 MM月 dd日"); %>
    <% printToday(); %>
    <p><%=result  %></p>
</body>
</html>
















クエリー文字列で値を受け取る。

次はクライアント->サーバー->クライアントの順で値の受け渡しを行う。
・クエリー文字列


http://ドメイン/ファイルの指定?名前1=値1&名前2=値2&……

値は半角、英数字以外はURLエンコードを使って表す。

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%
String str = request.getParameter("param");
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Sample jsp</title>
    <style>
    h1 {font-size:16pt; background:#AAFFAA; padding:5px; }
    </style>
    <script type="text/javascript">
    function doAction(){
        var s = document.getElementById('input').value;
        var url = 'hello.jsp?param=' + encodeURI(s);
        window.location.href = url;
    }
    </script>
</head>
<body>
    <h1>Sample jsp page</h1>
    <p>これはサンプルで用意したページです。</p>
    <p>パラメータ:<%=str  %></p>
    <input type="text" id="input">
    <button onclick="doAction();">Click</button>
    </body>
</html>

⬇️実行結果


0 件のコメント:

コメントを投稿