본문 바로가기

Java

서블릿 필터

반응형

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
	license agreements. See the NOTICE file distributed with this work for additional 
	information regarding copyright ownership. The ASF licenses this file to 
	You under the Apache License, Version 2.0 (the "License"); you may not use 
	this file except in compliance with the License. You may obtain a copy of 
	the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
	by applicable law or agreed to in writing, software distributed under the 
	License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
	OF ANY KIND, either express or implied. See the License for the specific 
	language governing permissions and limitations under the License. -->
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
	version="4.0" metadata-complete="false">
	<!-- true로 하면 모든 설정이 web.xml에 있다는 의미 -->
	<!-- false로 하면 web.xml 외에도 어노테이션으로 설정해놓은게 있으니 거길 찾게 함 -->

	<filter>
		<filter-name>characterEncodingFilter</filter-name>
		<filter-class>com.newlectrue.web.filter.CharacterEncodingFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>characterEncodingFilter</filter-name>

		<!-- 모든 url에 대해서 적용 -->
		<url-pattern>/*</url-pattern>
	</filter-mapping>

</web-app>

 

NoticeReg.java

package com.newlectrue.web;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/notice-reg")
public class NoticeReg extends HttpServlet {

	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		response.setCharacterEncoding("utf-8");
		response.setContentType("text/html; charset=utf-8");

//		request.setCharacterEncoding("utf-8");

		PrintWriter out = response.getWriter();

		String title = request.getParameter("title");
		String content = request.getParameter("content");

		out.println(title);
		out.println(content);

	}
}

 

 

CharacterEncodingFilter.java

package com.newlectrue.web.filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

// 필터 인터페이스 구현
public class CharacterEncodingFilter implements Filter {

	@Override
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
			throws IOException, ServletException {

		System.out.println("before filter");
		request.setCharacterEncoding("utf-8");

		chain.doFilter(request, response);

		System.out.println("after filter");
	}

}

 

 

https://youtu.be/d8GkAMpjDfs?list=PLq8wAnVUcTFVOtENMsujSgtv2TOsMy8zd 

 

반응형

'Java' 카테고리의 다른 글

application 객체와 상태 관리  (0) 2021.09.02
필터 어노테이션을 이용한 한글 출력  (0) 2021.09.02
post 요청  (0) 2021.09.02
사용자 입력을 통한 get 요청  (0) 2021.09.02
기본 값 사용하기  (0) 2021.09.02