Java 101

1. Java Web App

1.1 Architecture

base on JSP (MVC 1)

  • request -> jsp handle -> java bean handle logic -> return view

base on Servlet (MVC 2)

  • request -> controller/filter -> java bean handle logic -> jsp view -> return view

1.2 Servlet

  • life circle of servlet
    mỗi servlet sẽ extends HttpServlet, và life circle cơ bản sẽ bao gồm:
    init() -> do sth before serve the request. Ex: get connection from db, init obj,
    doMethod(doGet, doPost, doPut, ) -> serve request
    destroy() -> do sth after end request. Ex: close connection from db,
  • config trong web.xml. Ví dụ:
<!-- Định nghĩa servlet có tên helloServlet, gắn với class HelloServlet -->
<servlet>
   <servlet-name>helloServlet</servlet-name>
   <servlet-class>sample.HelloServlet</servlet-class>
</servlet>
 
<!-- Định nghĩa đường dẫn truy cập vào Servlet này -->
<servlet-mapping>
   <servlet-name>helloServlet</servlet-name>
   <url-pattern>/hello</url-pattern>
</servlet-mapping>

1.3 Filter

filter giống như servlet
là 1 chain nhiều servlet. Ex:
user request -> filter A -> filter B -> servlet C dành cho admin
filter A: check trong request xem thử session đã được mark là authen hay chưa, nếu đã authen thì pass qua filter B ko thì drop
filter B: check xem trong request xem thử session của user đó có phải là admin hay ko, có thì pass vào servlet C, ko thì drop

Ex trong web.xml

<filter>
  <filter-name>FilterA</filter-name>
  <filter-class>sample.FilterA</filter-class>
</filter>
 
<filter-mapping>
  <filter-name>FilterA</filter-name>
  <url-pattern>/*</url-pattern> (mapping all)
</filter-mapping>

<filter>
  <filter-name>FilterB</filter-name>
  <filter-class>sample.FilterB</filter-class>
</filter>


<filter-mapping>
  <filter-name>FilterB</filter-name>
  <url-pattern>/*</url-pattern> (mapping all)
</filter-mapping>

=> thứ tự filter trong web.xml cũng là thứ tự của filter sẽ đc java web app handle

1.4 Dispatcher