Thông tin file web.xml trong WAK

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <display-name>WAK</display-name>
    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>
    <listener>
        <listener-class>com.ftl.wak.SessionListener</listener-class>
    </listener>
    <filter>
        <filter-name>UrlRewriteFilter</filter-name>
        <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
        <init-param>
            <param-name>confReloadCheckInterval</param-name>
            <param-value>30</param-value>
        </init-param>
    </filter>
    <filter-mapping><filter-name>UrlRewriteFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
    <filter>
        <filter-name>FileUploadFilter</filter-name>
        <filter-class>com.ftl.wak.FileUploadFilter</filter-class>
    </filter>
    <filter>
        <filter-name>ActionFilter</filter-name>
        <filter-class>com.ftl.wak.ActionFilter</filter-class>
        <init-param>
            <param-name>ensureJsAvailable</param-name>
            <param-value>false</param-value>
        </init-param>
        <init-param>
            <param-name>resetSessionOnIpChange</param-name>
            <param-value>false</param-value>
        </init-param>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>utf-8</param-value>
        </init-param>
        <init-param>
            <param-name>defaultView</param-name>
            <param-value>
                /.*/list.*:/include/default_list_module.jsp,
                /.*/create.*:/include/default_create_module.jsp,
                /.*/edit.*:/include/default_edit_module.jsp,
                /.*/remove.*:/include/default_remove_module.jsp,
                /.*/detail.*:/include/default_detail_module.jsp,
                /.*/rpt_.*:/include/default_report_module.jsp,
                /.*:/include/default_execute_module.jsp
            </param-value>
        </init-param>
        <init-param>
            <param-name>defaultActionClass</param-name>
            <param-value>.*:com.ftl.wak.DBAction</param-value>
        </init-param>
        <init-param>
            <param-name>implicitPaths</param-name>
            <param-value>/com/ftl/wak</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>FileUploadFilter</filter-name>
        <url-pattern>*.jsp</url-pattern>
    </filter-mapping>
    <filter-mapping>
        <filter-name>ActionFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
 
    <servlet>
        <servlet-name>default</servlet-name>
        <servlet-class>org.eclipse.jetty.servlet.DefaultServlet</servlet-class>
        <init-param>
            <param-name>cacheControl</param-name>
            <param-value>max-age=604800,public</param-value>
        </init-param>
        <load-on-startup>0</load-on-startup>
    </servlet>
    <servlet>
        <servlet-name>Captcha</servlet-name>
        <servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Captcha</servlet-name>
        <url-pattern>/captcha.jpg</url-pattern>
    </servlet-mapping>
 
    <mime-mapping>
        <extension>xlsx</extension>
        <mime-type>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</mime-type>
    </mime-mapping>
</web-app>

Định nghĩa và giải thích content trong web.xml

  • wurfl.zip: WURFL (Wireless Universal Resource File) là 1 kho mô tả thiết bị, là 1 framework cho phép các ứng dụng ánh xạ HTTP request tới các mô tả của thiết bị di động khi request trang. Detect các thong tin gửi lên từ HTTP client (bao gồm desktop, thiết bị di động, tablet…)
  • Session: là 1 interface được cung cấp để lưu trữ các thông tin trong 1 phiên làm việc của bạn trên trang web. Phiên làm việc đó có thể hiểu là một quá trình thao tác từ lúc bạn truy cập vào 1 trang web đến khi bạn thoát khỏi trang đó. Chúng ta cần config thời gian timeout cho session. Ở đây WAK config nó là 30 tức là 30 phút (JSP thuần)
  • Các listener: Tiếp nhận sự kiện và xử lý tương tác của người dùng.
    • com.ftl.wak.SessionListener: Xử lý các sự kiện liên quan đến session. Ví dụ lưu lại danh sách các session đang mở
    • net.sourceforge.wurfl.core.web.WURFLServletContextListener: Xác định các thiết bị kết nối đến.
  • Các filter: Filter là một kỹ thuật ở mức thấp trong lập trình web của java. Nó được hiểu như là một bộ lọc bao bọc lấy toàn bộ các Servlet và tài nguyên bên trong của server. Mọi request đến và response trả về đều có thể được xử lý bởi những Filter này.
    • org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
    • com.ftl.wak.FileUploadFilter
    • com.ftl.wak.ActionFilter:
      • defaultView : 1 param trong ActionFilter có nhiệm vụ map link với JSP
      • defaultActionClass: class mặc định com.ftl.wak.DBAction
      • ensureJsAvailable: Chống ddos. Mặc định là false
      • implicitPaths : đường dẫn ngầm định /com/ftl/wak
      • Filter-mapping:
        • filter-name: tên của filter mà được map với 1 URL pattern hoặc servlet
        • url-pattern: Định nghĩa 1 pattern sử dụng để xử lý các URL
  • Các servlet: Là những chương trình Java nhỏ chạy trên Web server có chức năng nhận yêu cầu từ client và đáp ứng yêu cầu này thường bằng HTTP protocol. Được nạp động ở server nhằm mở rộng tính năng của server (thường là các Web Server) thay thế cho các CGI script. Servlet chạy trong JVM và có được các khả năng: an toàn (safe) và độc lập platform (portable).
    • com.google.code.kaptcha.servlet.KaptchaServlet: servlet này thực hiện việc sử dụng captcha.
  • Mime
    • application/vnd.openxmlformats-officedocument.spreadsheetml.sheet: mapping file .xlsx với kiểu mime application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

Comment