@Eeap
velog
@Eeap
전체 방문자
오늘
어제
  • 전체 (168)
    • osam (1)
    • Cloud (21)
      • Docker (2)
      • AWS (13)
    • AI & Data (7)
    • Algorithm (76)
      • Baekjoon (75)
      • Codeforces (1)
    • Language (18)
      • Java (18)
    • Back-end (17)
      • Spring (3)
      • JSP & Servlet (12)
      • Go (2)
    • 일상 (4)
    • 기타 (8)
    • git (1)
    • Infra (9)
      • Apache Kafka (5)
      • Kubernetes (4)
      • 기타 (0)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • Python
  • bedrock
  • bedrock agent
  • Agent
  • knowledge bases
  • 오블완
  • AWS CodeArtifact
  • 인터페이스
  • invokemodel api
  • sagemaker unified studio
  • bedrock api
  • java
  • 심폴릭링크
  • AWS CodeCatalyst
  • CLASS
  • converse api
  • 티스토리챌린지
  • flink
  • AWS CodeStar
  • SageMaker

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
@Eeap

velog

Back-end/JSP & Servlet

servlet utf-8 type 설정 및 serlvet filter 사용

2022. 7. 2. 23:23
반응형

servletresponse의 setCharacterEncoding을 통해 UTF-8로 인코딩할 수 있도록 할 수 있고 setContentType을 통해 html 파일 형태로 내보낼 수 있다!

package com.newlec.web;

import java.io.IOException;
import java.io.PrintWriter;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

@WebServlet("/notice-reg")
public class NoticeReg extends HttpServlet{
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
		PrintWriter out = res.getWriter();
		res.setCharacterEncoding("UTF-8");
		res.setContentType("text/html; charset=UTF-8");
		//req.setCharacterEncoding("UTF-8");
		
		String title  = req.getParameter("title");
		String content = req.getParameter("content");
		
		out.println(title);
		out.println(content);
	}
}

 

servletFilter 사용

servlet filter는 servlet 파일 앞에 존재해서 클라이언트의 요청으로 servlet이 실행되기 전에 먼저 실행된다!

모든 경로에 filter를 씌우기 위해선 webfilter의 어노테이션을 이용해서 /*로 해주면 된다.( 참고로 해당 class를 만들기 전에 filter-servlet 라는 interface를 추가해주어야한다)

아래 코드에서 chain.doFilter 부분은 필터 다음에 servlet을 실행하기 위해서 존재한다. 따라서 filter로 처리해야할 부분이 있으면 그전에 작성해야한다. 그 다음 print부분은 servlet이 실행되고 난 뒤 실행된다.

package com.newlec.web.filter;

import java.io.IOException;

import jakarta.servlet.Filter;
import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.annotation.WebFilter;
@WebFilter("/*")
public class CharacterEncodingFilter implements Filter {

	@Override
	public void doFilter(ServletRequest req,
			ServletResponse res,
			FilterChain chain)
			throws IOException, ServletException {
		req.setCharacterEncoding("UTF-8");
		chain.doFilter(req, res);
		System.out.println("after filter");
	}

}
반응형
저작자표시 (새창열림)

'Back-end > JSP & Servlet' 카테고리의 다른 글

servlet servlet context 상태 저장소  (0) 2022.07.03
servlet 입력으로 배열 받는 방법  (0) 2022.07.03
servlet 어노테이션을 활용한 url 매핑  (0) 2022.07.01
servlet 웹 입/출력  (0) 2022.06.30
개념 및 설치  (0) 2022.06.27
    'Back-end/JSP & Servlet' 카테고리의 다른 글
    • servlet servlet context 상태 저장소
    • servlet 입력으로 배열 받는 방법
    • servlet 어노테이션을 활용한 url 매핑
    • servlet 웹 입/출력
    @Eeap
    @Eeap

    티스토리툴바