π₯ [Spring] Filter μ μ λ°μ μΈ ν΅μ νλ¦
Preview
Cookie
λSession
μ΄ λ§λ€μ΄μ§ λ μλμΌλ‘ μμ±μ΄ λλ€.
Session
μClient
κ° μμ²ν λ λ§λ€μ΄μ§λ€.
Cookie
λ 맡 λ°©μμΌλ‘ μ μ₯μ΄ λλ©°value
λString
μΌλ‘ λ§λ€μ΄μ§κ² λμ΄μλ€.μ΄λ μλμΌλ‘ λ§λ€μ΄μ§λ
Cookie
μλJSESSIONID
λΌλκ² μ‘΄μ¬νλλ°λ°μ΄ν° (VO β¦) λ
Session
μ μ μ₯νκ³ μ¬μ©μλ₯Ό ꡬλΆνλJSESSIONID
λ μΏ ν€μ μ μ₯νλ€.
μ 체μ μΈ νλ¦
- 컨ν
μ΄λλ μ²μμ μ£Όλ¬Έμ(DD)λ₯Ό μ½μ΄λ€μ΄λ©° (web.xml) μ¬κΈ°μλ
Servlet
κ³Ό κ΄λ ¨λ 맡ν μ λ³΄κ° λ΄κ²¨μλ€. - κ·Έ ν
Servlet
μ΄ λ¨Όμ λ§λ€μ΄μ§λκ² μλλΌServletContext
κ° λ¨Όμ μμ±λλ€. - κ·Έ λ€μ
Servlet
μ΄ λ§λ€μ΄μ§λ€. (μμ±μ νΈμΆ) 0
μ λ§λ€κ³init()
μ νΈμΆ,0
μ μΈμκ°μΌλ‘ λ£λλ€.μ¬κΈ°κΉμ§
Ready on
μνμ΄λ€. (Client
κ° μμ²νκΈ° μ μλ² μ€λΉ μνμ΄λ€.)Client
κ° μμ²νλ©΄request
,response
κ°μ²΄κ° λ§λ€μ΄μ§λ€. λνSession
μ΄ λ§λ€μ΄μ§κ³JSESSIONID
κ°λ§ μ μ₯ν μΏ ν€λ λ§λ€μ΄μ§λ€.- κ·Έ λ€μ
Service()
κ° νΈμΆλκ³ ,doGet()
,doPost()
κ° νΈμΆλλ€. μ΄ λrequest
,response
κ° μΈμκ°μΌλ‘ λ€μ΄κ°λ€. - μμ²μ μννλ©΄(μλ΅νλ©΄)
req
,res
,thread
κ° μ£½λλ€. μμ²ν λ λ§λ€ λ°λ³΅λλ€.
Filter
μλ²λ‘ μμ²μ 보λ΄κ³ μλ΅μ ν λ 곡ν΅μ μΌλ‘ μ²λ¦¬(μλ°©ν₯ μ²λ¦¬)ν λΆλΆμ κ΄ν λ‘μ§μ filter
λ‘ μ²λ¦¬νλ€.
μλ₯Ό λ€μ΄ νκΈ μ²λ¦¬ λ±β¦
νκΈ μ²λ¦¬λ Client
μμ Server
λ‘ μμ²ν λ , Server
μμ Client
λ‘ μλ΅ν λ λͺ¨λ μ²λ¦¬ν΄μ€μΌ νλ€.
λ°λΌμ Controller
μμ μ²λ¦¬ν΄μ£Όλ κ²μ΄ μλλΌ Filter
μμ ν΄μ£Όλ κ²μ΄ μ’λ€.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class EncodingFilter implements Filter{
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
//곡ν΅μ μΌλ‘ μ²λ¦¬ν΄μΌ ν λ‘μ§... λͺ¨λ μλΈλ¦Ώ μμ
//νκΈμ²λ¦¬
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
//μλ²μμμ λ€μ μ»΄ν¬λνΈ νλ‘κ·Έλ¨μ κ³μμ μΌλ‘ νν°λ§ν κ³΅ν΅ λ‘μ§μ΄ μ μ©λλ€.
//μ΄ λΆλΆμ λΉ λ¨λ¦¬λ©΄ 곡ν΅λ‘μ§μ νν°λ§μ μ μλ§ νκΈ° λλ¬Έμ μ€μ§μ μΌλ‘ μ²λ¦¬λμ§ μλλ€. λ°λμ λ£μ΄μΌνλ€.
chain.doFilter(request, response);
}