public class HelloServlet implements Servlet { @Override public void init(ServletConfig config) throws ServletException {} @Override public ServletConfig getServletConfig() {return null;} @Override public void service(ServletRequest req, ServletResponse res)throws ServletException, IOException {System.out.println("hello");} @Override public String getServletInfo() {return null;} @Override public void destroy() {} }
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>com.atdongruan.web.servlet.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/HelloServlet</url-pattern> </servlet-mapping> </web-app>/*
3.1 Servlet生命週期html
3.1.1 Servlet初始化java
<servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>省略</servlet-class> <init-param> <param-name>username</param-name> <param-value>root</param-value> </init-param> </servlet>
public abstract class GenericServlet implements Servlet, ServletConfig, java.io.Serializable{ private transient ServletConfig config; public GenericServlet() { } public void destroy() {} public String getInitParameter(String name) { return getServletConfig().getInitParameter(name); } public Enumeration getInitParameterNames() { return getServletConfig().getInitParameterNames(); } public ServletConfig getServletConfig() {return config; } public ServletContext getServletContext() { return getServletConfig().getServletContext(); } public String getServletInfo() { return ""; } public void init(ServletConfig config) throws ServletException { this.config = config; this.init(); } public void init() throws ServletException {} public void log(String msg) { getServletContext().log(getServletName() + ": "+ msg); } public void log(String message, Throwable t) { getServletContext().log(getServletName() + ": " + message, t); } public abstract void service(ServletRequest req, ServletResponse res) throws ServletException, IOException; public String getServletName() { return config.getServletName(); } }
|
問題1:Servlet的構造器調用了幾回?web
問題2:Servlet是線程安全的嗎?apache
問題3:Servlet實例只能在第一次請求時被建立嗎?小程序
問題5:web.xml文件僅僅是看到的那麼簡單嗎?設計模式
<servlet> <servlet-name>default</servlet-name> <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
<servlet> <servlet-name>jsp</servlet-name> <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> <init-param> <param-name>fork</param-name> <param-value>false</param-value> </init-param> <init-param> <param-name>xpoweredBy</param-name> <param-value>false</param-value> </init-param> <load-on-startup>3</load-on-startup> </servlet> <servlet-mapping> <servlet-name>jsp</servlet-name> <url-pattern>*.jsp</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>jsp</servlet-name> <url-pattern>*.jspx</url-pattern> </servlet-mapping>
<session-config> <session-timeout>30</session-timeout> </session-config>
<mime-mapping> <extension>123</extension> <mime-type>application/vnd.lotus-1-2-3</mime-type> </mime-mapping>
8.1 ServletContext簡介瀏覽器
8.2 獲取ServletContexttomcat
8.3 域對象安全
8.4 獲取當前應用的初始化參數服務器
<context-param> <param-name>username</param-name> <param-value>root</param-value> </context-param> <context-param> <param-name>password</param-name> <param-value>1234</param-value> </context-param> </web-app>
8.5 獲取項目根目錄
8.6 獲取資源的流和真實路徑(物理路徑)
9.4.1 轉發
9.4.2 重定向
9.5 路徑問題
9.5.1 服務器端路徑
9.5.1 爲何要使用編碼
9.5.3 請求編碼
<
Connector
connectionTimeout
=
"20000"
port
=
"8080"
protocol
=
"HTTP/1.1"
redirectPort
=
"8443"
URIEncoding
=
"utf-8"
/>
|
9.5.4 響應編碼
9.5.5 URL編碼