[Day10] JSP/Servlet 10 [12/15]

 

   [ ์ง€๋‚œ์‹œ๊ฐ„ filter ์ด์–ด์„œ]

์ธ์ฆ๊ถŒํ•œ์˜ˆ์ œ

 

	<filter>
	  <filter-name>characterEncodingFilter</filter-name>
	  <filter-class>com.filter.CharacterEncodingFilter</filter-class>
	  <init-param>
	    <param-name>encoding</param-name>
	    <param-value>UTF-8</param-value>
	  </init-param>
	</filter>
	<filter-mapping>
	  <filter-name>characterEncodingFilter</filter-name>
	  <url-pattern>/*</url-pattern> 
	  <!-- <url-pattern>/</url-pattern>  ์œ„์˜ ํŒจํ„ด๊ณผ ์ฐจ์ด์ . -->
	  <dispatcher>REQUEST</dispatcher>
	</filter-mapping>
	
	<listener>
	  <listener-class>com.listener.DBCPinitListener</listener-class>
	</listener>
	
	<context-param>
	   <param-name>poolConfig</param-name>
	   <param-value>
	     type=javax.sql.DataSource 
	     driverClassName=oracle.jdbc.OracleDriver
	     url=jdbc:oracle:thin:@127.0.0.1:1521:xe
	     username=scott 
	     password=tiger 
	   </param-value>
	</context-param>

 

   1. [ web.xml ] -> ๋ณต์‚ฌ ๋ถ™์ด๊ฐ€ -> web_days09_filter.xml

   2.  days10 ํด๋”

           ใ„ด admin ํด๋”  : ๊ด€๋ฆฌ์ž๋กœ ๋กœ๊ทธ์ธํ•ด์•ผ์ง€๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํด๋”. ( ์ธ์ฆ O + ๊ถŒํ•œ O)

           ใ„ด board ํด๋”  :  ๊ฒŒ์‹œํŒ ๋ชฉ๋ก,์“ฐ๊ธฐ,์ˆ˜์ •,์‚ญ์ œ ํด๋” ( ๋ฐ˜๋“œ์‹œ ๋กœ๊ทธ์ธํ•ด์•ผ์ง€๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ธ์ฆ O)

                 ex02_list.jsp    ๋ชฉ๋ก

                 ex02_write.jsp ์“ฐ๊ธฐ                 

           ใ„ด member ํด๋” : ๋กœ๊ทธ์ธ/๋กœ๊ทธ์•„์›ƒ/ํšŒ์›๊ฐ€์ž… ๋“ฑ๋“ฑ ํšŒ์› ๊ด€๋ จ๋œ  ํด๋” ( ์ธ์ฆ X)

                ex02_logon.jsp

                ex02_logon_ok.jsp

                ex02_logout.jsp

     3. ๋งŒ์•ฝ์— ๋กœ๊ทธ์ธ์„ ํ•˜์ง€ ์•Š๊ณ  board ํด๋” ์•ˆ์˜ ex02_list.jsp ์š”์ฒญ X

        =>

        

     4.    ์ธ์ฆ, ๊ถŒํ•œ  ์ฒดํฌํ•˜๋Š” ํ•„ํ„ฐ ์ถ”๊ฐ€. 

     com.filter.LoginCheckFilter.java + ์–ด๋…ธํ…Œ์ด์…˜ ์‚ฌ์šฉ.

       doFilter(){

            ์„ธ์…˜ member => logonID ๋ณ€์ˆ˜ ์ €์žฅ

            isLogon = false; // true

            if(isLogon ){

                chain.doFilter()~

            }else{

                // ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ

            }

       }

 

    (๋ฌธ์ œ์ )

    ๋ฉ”์ธํŽ˜์ด์ง€์—์„œ

        ๋กœ๊ทธ์ธํ•˜์ง€ ์•Š์€ ์ƒํƒœ์— "๊ฒŒ์‹œ๊ธ€ ์“ฐ๊ธฐ" ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด 

        LoginCheckFilter ํ•„ํ„ฐ์— ์˜ํ•ด์„œ

        ๋กœ๊ทธ์ธ X -> ex02_logon.jsp ํŽ˜์ด์ง€๋กœ ์ด๋™.

        

        ๋กœ๊ทธ์ธํŽ˜์ด์ง€์—์„œ ๋กœ๊ทธ์ธ ์„ฑ๊ณตํ•˜๋ฉด 

           ๋ฉ”์ธํŽ˜์ด์ง€๋กœ ์ด๋™

           ์›๋ž˜ ์š”์ฒญํ•œ "๊ฒŒ์‹œ๊ธ€ ์“ฐ๊ธฐ" ํŽ˜์ด์ง€๋กœ ์ด๋™.. O ex02_write.jsp

           

     (ํ•ด๊ฒฐ)      11:27 -> 10๋ถ„ - > 11:37 ํ’€์ด~

        

        

     (์š”์ฒญ ์ฒ˜๋ฆฌ ๊ณผ์ • ์ดํ•ด)

     [ /board/*  ] url-pattern ์š”์ฒญ    -> LoginCheckFilter

                 list.jsp                                    ์ธ์ฆ O ์ฒดํฌ        ->    list.jsp , write.jsp ์ด๋™.

                 write.jsp                           [      ์ธ์ฆ X ์ฒดํฌ        ->   logon.jsp ]                                    ->   ex02.jsp( ๋ฉ”์ดํŽ˜์ด์ง€) ์ด๋™              

                                                               write.jsp                (2) ์›๋ž˜์š”์ฒญURL ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ           ->   list.jsp , write.jsp ์ด๋™ ( ์ œ์‹œํ•œ ๋ฌธ์ œ.. )

                                                                (1)[์›๋ž˜์š”์ฒญURL ์ €์žฅ]

                                                                ์ƒํƒœ๊ด€๋ฆฌ

                                                                pS X/rS X/[ (sS)/aS ]

                                                                DB

                                                                ์ฟ ํ‚ค

 

 

    [ p 572   Chapter 20   ServletContextListener ๊ตฌํ˜„ ]

 

    

    "์„œ๋ธ”๋ฆฟ"์€  ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ์™€ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค ์ •์˜ํ•˜๊ณ  ์žˆ๋‹ค.  

                     ใ„ด  ์ดˆ๊ธฐํ™”, ์š”์ฒญ ์ฒ˜๋ฆฌ ๋“ฑ์˜ ์ถ”์  ๊ฐ€๋Šฅ

    

    [Servlet  +  Context + Listener             ์„ ์ด์šฉํ•ด์„œ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ(ํ™œ์šฉ) ] 

      ์„œ๋ธ”๋ฆฟ                          ์ •์ทจ์ž

                                       ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ์ž.

    1. ์›น ์ปจํ…Œ์ด๋„ˆ๋Š”  ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹œ์ž‘, ์ข…๋ฃŒ๋  ๋•Œ   ํŠน์ • ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ๋ฅผ 

                              ํ†ฐ์บฃ ์„œ๋ฒ„ ์‹œ์ž‘        +    ์ข…๋ฃŒ

      ์‹คํ–‰ ํ•  ์ˆ˜ ์ž‡๋Š” ๊ธฐ๋Šฅ ์ œ๊ณตํ•œ๋‹ค.      

      (์ฆ‰, ์„œ๋ฒ„ ์‹œ์ž‘, ์ข…๋ฃŒํ•  ๋•Œ ์–ด๋–ค ํ•„์š”ํ•œ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๋‹ค..)        

    

    2. ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

       1) ServletContextListener ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค ์„ ์–ธ

           1) contextInitialized()

               ์›น์ปจํ…Œ์ด๋„ˆ(ํ†ฐ์บฃ์„œ๋ฒ„)๊ฐ€ ์‹œ์ž‘ํ•  ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์„œ๋“œ 

              ์ดˆ๊ธฐํ™” ์ž‘์—…~~

           2) contextDestroyed()

               ์›น์ปจํ…Œ์ด๋„ˆ(ํ†ฐ์บฃ์„œ๋ฒ„)๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์„œ๋“œ

               ๋ฆฌ์†Œ์Šค(์ž์›) ๋ฐ˜ํ™˜~~

               

       2) web.xml   ๋“ฑ๋ก             

           <listener>

              <listener-class></listener-class>

           </listener>           

           

       - ํ•œ ๊ฐœ ์ด์ƒ์˜ ๋ฆฌ์Šค๋„ˆ๋ฅผ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค. 

       

       - ๋‘ ๊ฐœ์˜ ๋ฉ”์„œ๋“œ๋Š” ServletContextEvent sre  ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ€์ง„๋‹ค.

       1) contextInitialized(ServletContextEvent sre)       

        2) contextDestroyed(ServletContextEvent sre) 

        ServletContext sc =  sre.getServletContext();

        ServletContext sc ๋Š” jsp ๊ธฐ๋ณธ๊ฐ์ฒด์ธ application ๊ฐ์ฒด์™€ ๋™์ผํ•œ ๊ฐ์ฒด์ด๋‹ค.

        web.xml

          <context-param>

             ํŒŒ๋ผ๋ฏธํ„ฐ ์„ค์ •

          </context-param>

          

      

      3) ์‹ค์Šต    

         com.listener.DBCPinitListener ํด๋ž˜์Šค ์„ ์–ธ - 

         ์„œ๋ฒ„ ์‹œ์ž‘ : ์ปค๋„ฅ์…˜ ํ’€ ์ดˆ๊ธฐํ™”.

         

         -- context.xml, web.xml ์„ค์ •

        

  • ๋„ค์ด๋ฒ„ ๋ธ”๋Ÿฌ๊ทธ ๊ณต์œ ํ•˜๊ธฐ
  • ๋„ค์ด๋ฒ„ ๋ฐด๋“œ์— ๊ณต์œ ํ•˜๊ธฐ
  • ํŽ˜์ด์Šค๋ถ ๊ณต์œ ํ•˜๊ธฐ
  • ์นด์นด์˜ค์Šคํ† ๋ฆฌ ๊ณต์œ ํ•˜๊ธฐ