■WEBアプリの課題
・URL直接入力
・戻るボタン
・2度押し
・マルチウィンドウ
の抑止(よくし)
1.リダイレクト
[リダイレクトとフォワードの違いを知る]
・リダイレクト
response.sendRedirect("遷移先のページ");
*リダイレクトはサーバがクライアントにリダイレクトの指示を出し、クライアントが
自動的に要求をする。
・フォワード
application.getRequestDispatcher("転送先のページ").forward(request, response);
*クライアントからの要求に対し、サーバ内でページへ処理が移送され、クライアントに返す。
★パフォーマンスは フォワード>リダイレクト
★フォワードは同一サーバ内ページ(クラス)間でしか利用出来ない。
★リクエスト情報を引き継げるのはフォワードのみ。
2.ポストバック×
3.可変個数のパラメータをPOSTで送信する。
[参考サイト]
http://forza.cocolog-nifty.com/blog/2008/02/index.html
■HTTPの仕組み
・HTTPはリクエストから始まる
GET /test.html?param1=value1¶m2=value2 HTTP/1.1
Accept: image/gif, image/......
Accept-Lenguage: ja
....
1行目は、リクエストライン(Request-Line)と呼ばれる。↓書式
「メソッド リクエストURI HTTPバージョン」
・メソッド…GETやPOST
・リクエストURI…URL中の絶対パス以降の部分
2行目以降は、リクエストヘッダと呼ばれる。↓書式
「ヘッダ名: ヘッダ値」
★GETメソッドの場合、最後に改行のみの行を送ることでHTTPリクエストが終了する。
・POSTの場合―GETとどう違うか?
例)↓のようなformが記述されている場合
<form action="test.html?get1=value1&get2=value2" method="POST">
<input type="text" name="post1" value="value1">
<input type="password" name="post2" value="value2">
<input type="hidden" name="post3" value="value3">
<input type="checkbox" name="post4" value="value4" checked>
<input type="submit" value="送信">
</form>
↓のようなHTTPリクエストが送信される。
POST /test.html?get1=value1&get2=value2 HTTP/1.1
Accept: image/gif, image/......
Accept-Lenguage: ja
....
....
post1=value1&post2=value2&post3=value3.....
HTTPヘッダより下の部分に、↑のような形でinputタグで指定した値が挿入される。
★注文すべきはinputタグのtype属性がHTTPリクエスト内では違いがなくなっている。
■HTTPリクエストの変数
Acceptヘッダ] javax.servlet.http.HttpServletRequest#getHeader("Accept")
Refererヘッダ] javax.servlet.http.HttpServletRequest#getHeader("Referer")
Accept-Languageヘッダ] javax.servlet.http.HttpServletRequest#getHeader("Accept-Language")
Content-Typeヘッダ] javax.servlet.ServletRequest#getContentType()
User-Agentヘッダ] javax.servlet.http.HttpServletRequest#getHeader("User-Agent")
Hostヘッダ] javax.servlet.ServletRequest#getServerName()
Cookieヘッダ] javax.servlet.http.HttpServletRequest#getCookies()
Hostヘッダ内ポート番号] javax.servlet.ServletRequest#getServerPort()
※Hostヘッダは「Host: サーバ名:ポート番号」と記述出来る
04 | 2025/05 | 06 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |