4月27日 サーブレット フォーム・セッション

doPostだけしか記述されていない時、doGetを呼び出すとエラーになる。

対処方法:doGEtの中にdoPost(request,response)を記述し、doGetからもdoPostを呼び出すようにする。

 

リクエストパラメータのエンコード

request.setCharacterEncoding("UTF-8");

これを書かないと受け取る側がUTF-8にならない可能性がある。またsetCharacterEncoding( )のデフォルト値はアスキーになっているので英字しか表示されない。

 

Getリクエスト

Getリクエストは秘匿性の高い情報のやり取りをしてはいけない。アドレスバーに記載されてしまうため。これはHttpを暗号化しても防げないので、doPostを使う。

 

response.setContentType(text/html;charset="UTF-8");

//↑これを先に書かないと文字化けする,

PrintWriter.out = response.getWriter( );

 

セッション

セッションを使い始める

HttpSession session = request.getSession();

セッションに情報を入れる

session.setAttribute("key名",データ);

セッションから情報を取り出す

session.getAttribute("Key名");

→取り出したデータはすべてObject型なので、データを取得するには。同じ型に戻すキャストが必要!!