HttpServletResponse インターフェースは ServletResponse インターフェースを継承しています。
出力用 PrintWriter オブジェクトの取得
javax.servlet.ServletResponse のメソッド
PrintWriter getWriter()
文字エンコーディング
javax.servlet.ServletResponse のメソッド
void setCharacterEncoding(String charset)
getWriter より前に呼び出す
レスポンスがコミットされる前に呼び出す。
void setContentType(String type)
getWriter より前に呼び出す
レスポンスがコミットされる前に呼び出す。
リダイレクト
void sendRedirect(String location)
/ で始まるコンテナルートを基準とするパスを location に設定するか、相対パスを設定する。
(例)/SCWCD/Sample1
(例)Sample1
sendRedirect メソッドは一旦レスポンスをクライアントに返してから location へリダイレクトする。
リクエスト属性を利用できない。
他のドメインにリダイレクトするには http://..... というように location を設定する。
URL 書き換え
String encodeUrl(String url)
String encodeRedirectURL(String url)
Cookie をサポートしてないブラウザのセッションを構成するには URL 書き換えが使われる。
sendRedirect メソッドへ送られる URL はこのメソッドを利用する。
<サンプル>
import java.io.*;
import javax.servlet.ServletException;
import javax.servlet.http.*;
public class Sample3 extends HttpServlet {
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
if (req.getParameter("message").equals("")) {
res.sendRedirect("/SCWCD/index.html");
} else {
PrintWriter out = res.getWriter();
out.println("<html><body>");
out.println(req.getParameter("message"));
out.println("</body></html>");
}
}
}
index.html
...
<form action="/SCWCD/Sample3" method="post">
<input type="text" name="message" size="30" maxlength="15" /><br />
<input type="submit" value="送信"/>
</form>
...
<出力結果>
入力した文字が出力される。文字を入力しないとリダイレクトされる。
0 件のコメント:
コメントを投稿