忍者ブログ
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

■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&param2=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: サーバ名:ポート番号」と記述出来る

PR
カレンダー
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
フリーエリア
最新コメント
最新トラックバック
プロフィール
HN:
学kun
性別:
男性
バーコード
ブログ内検索
P R
Copyright © 毎日勉強頑張ってます! All Rights Reserved.
Powered by NinjaBlog
Graphics by 写真素材Kun * Material by Gingham * Template by Kaie
忍者ブログ [PR]