サーブレットに挑戦
JSPとサーブレットは同じらしい。。JSPで書いたものをサーバー側でサーブレットに変換し、HTMLを出力してくれる。。へえ〜^^;フロントエンド・・・JSP
バックエンド・・・・サーブレット
で書くのがやりやすい。
サーブレットには大きく分けてVer3.0以前のものと移行のものがメジャー。
GAEは2,5のバージョンしか使えないorz
以下サイトを参考に簡単なサーブレットを書いてみる。
http://libro.tuyano.com/index3?id=892001&page=4
実行!!
ちゃんとできているっぽい。
重要なのは、doGetとdoPostメソッドで、
ContextType (html or plane text)や文字エンコードの設定等を行う必要がある。
という事らしい。
次は、フォームページとサーブレットとのやりとりを実装してみる。
form.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Hello App Engine</title>
<style>
h1 {
font-size: 16pt;
background: #AAFFAA;
padding: 5px;
}
</style>
</head>
<body>
<h1>Hello App Engine!</h1>
<p id="msg">※なにか書いて送信してください。</p>
<form method="post" action="/mygaeapp">
<table>
<tr>
<td>入力</td>
<td><input type="text" id="input" name="text1"></td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" value="送信する">
</td>
</tr>
</table>
</form>
</body>
</html>
MyGaeAppServlet
/**
*
*/
package gae2014.hello;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* @author slowhand
*
*/
public class MyGaeAppServlet extends HttpServlet {
/* (non-Javadoc)
* @see javax.servlet.http.HttpServlet#doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
super.doGet(req, resp);
}
/* (non-Javadoc)
* @see javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/html");
resp.setCharacterEncoding("utf8");
req.setCharacterEncoding("utf8");
String param = req.getParameter("text1");
PrintWriter out = resp.getWriter();
out.println("<html><head></head><body>");
out.println("<h1>result</h1>");
out.println("<p>you typed: " + param + ".</p>");
out.println("</body></html>");
}
}
実行結果
できてますな〜^^
0 件のコメント:
コメントを投稿