JavaでWeb開発の練習をしている際本に、
”フィルタ処理を行う”
というカリキュラムがありました。
これはなんのために行うものでこれをすることでどのような利点があるのか本書ではイマイチわかりません。
教えてください。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
一番利用されるのはシステムでの文字コードの統一
import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.annotation.WebFilter; import lombok.extern.slf4j.Slf4j; @Slf4j @WebFilter(urlPatterns = "/*") public class EncodingFilter implements Filter { @Override public void destroy() { log.debug("destroy"); } @Override public void doFilter( ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); chain.doFilter(request, response); } @Override public void init(FilterConfig arg0) throws ServletException { log.debug("init"); } }
投稿2018/03/05 14:50
退会済みユーザー
総合スコア0
0
ベストアンサー
上の型の回答で、質問に対する回答は充足しているので補足します。
- response.setCharacterEncoding("UTF-8");をフィルタ内でやること、多いです。setCharacterEncodingを全てのサーブレットに記述するのは冗長ですからね。
- ~~フィルタを作成したら、web.xmlへ登録が必要です。~~必ずweb.xmlへ登録が必要なわけではなく、Web3.0からは@WebFilterでできるみたいです(@WebServletみたいなもんですね)。web.xmlへ登録するか、どっちかする必要があります。
投稿2018/03/06 12:31
編集2018/03/06 13:14総合スコア361
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/06 13:11
退会済みユーザー
2018/03/06 13:24
2018/03/06 14:35
0
フィルタ(サーブレットフィルタ)は、サーブレットやJSPが実行される前後で行う処理を定義できます。
1つだけでなく、複数のフィルタを適用できます。
よく使われるのはアクセス制御(ログイン済みユーザーかの判定をし、未ログインなら別のURLへ遷移する)、不要なリクエストパラメータの除去や別の値へ振り替えをする、アクセス時に記録しておきたいログを出力する、などが用途してあります。
余談ですが、サーブレットフィルタは他のJavaWebフレームワークでも使われていますし、これらのフレームワークの更に外側で独自のフィルタも設置できます。
投稿2018/03/06 00:24
総合スコア12011
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。