ハングルコード
この文章は個人の学習内容を整理することを目的としている.説明が不足しているか、中間内容が省略されている可能性があります.
servletクラスからハングルが出力されると、ハングルが破壊されるのが見えます.この問題は以下の方法で解決できます.
フィルタ
クライアントからの要求は、servletが受信する前にクラス名は、ユーザによってランダムに に指定される. Filterインタフェース が実装されている doFilterメソッドを上書きして ロジックを作成
もちろん上のフィルターもwebxmlにfilterプロパティとして登録する必要があります.
Filter Mapping
フィルタクラスは、servletと同様に、webを読み込むためにTomcatにマッピングできます.xmlで説明する方法と構文を使用する方法があります.
web.xmlに登録する
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);
}
}
以上のカテゴリの説明は以下の通りです.もちろん上のフィルターも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
{
...
}
以下に示すように、/*を使用してすべてのアドレス要求を処理します.Reference
この問題について(ハングルコード), 我々は、より多くの情報をここで見つけました https://velog.io/@gojaebeom/한글-인코딩テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol