ハングルコード


この文章は個人の学習内容を整理することを目的としている.説明が不足しているか、中間内容が省略されている可能性があります.
servletクラスからハングルが出力されると、ハングルが破壊されるのが見えます.この問題は以下の方法で解決できます.
public class HelloServlet extends HttpServlet {

	@Override
	protected void service(HttpServletRequest req, HttpServletResponse res) 
			throws ServletException, IOException 
	{	
    //출력 데이터의 인코딩을 UTF-8로 설정
		res.setCharacterEncoding("UTF-8");
		res.setContentType("text/html; charset=UTF-8");
		
		PrintWriter out = res.getWriter();
		
		out.println(data);
	}
}
しかしサーブレットクラスは1つだけではありません.プロジェクトの規模が大きくなるにつれて、複数のサーブレットクラスが作成され、毎回同じコードを使用して上記のエンコード設定が繰り返されます.
フィルタ
クライアントからの要求は、servletが受信する前にFilterと呼ばれるクラスで中間処理を先に行うことができる.次のクラスを作成します.
public class CharacterEncodingFilter implements Filter 
{
	@Override
	public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
			throws IOException, ServletException 
	{
		
		req.setCharacterEncoding("UTF-8");
		
		res.setCharacterEncoding("UTF-8");
		res.setContentType("text/html; charset=UTF-8");

		chain.doFilter(req, res);
	}
}
以上のカテゴリの説明は以下の通りです.
  • クラス名は、ユーザによってランダムに
  • に指定される.
  • Filterインタフェース
  • が実装されている
  • doFilterメソッドを上書きして
  • ロジックを作成
    もちろん上のフィルターもwebxmlにfilterプロパティとして登録する必要があります.
    Filter Mapping
    フィルタクラスは、servletと同様に、webを読み込むためにTomcatにマッピングできます.xmlで説明する方法と構文を使用する方法があります.
    web.xmlに登録する
    <filter>
      <filter-name>characterEncodingFilter</filter-name>
      <filter-class>com.example.web.filter.CharacterEncodingFilter</filter-class>
    </filter>
    <filter-mapping>
      <filter-name>characterEncodingFilter</filter-name>
      <url-pattern>/*</url-pattern>
    </filter-mapping>
    登録annotaction(@)
    @WebFilter("/*")
    public class CharacterEncodingFilter implements Filter 
    {
      ...
    }
    以下に示すように、/*を使用してすべてのアドレス要求を処理します.