創建Servlet
- 創建一個類繼承javax.servlet.http.HttpServlet類
- 覆蓋doGet(), doPost() 方法
在web.xml中配置servlet
<servlet> <servlet-name>Index</servlet-name> <servlet-class>com.zjl.main.IndexServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Index</servlet-name> <url-pattern>/index</url-pattern> </servlet-mapping>
Tomcat容器訪問Servlet的步驟:
1. 客戶端發送請求 http://www.xxx.com/index
2. Tomcat容器 通過url-pattern 即/index,找到servlet-name,再有此找到servlet-class
3. 創建Servlet對象,調用init() 方法
4. Tomcat容器創建request和responce兩個對象作爲參數, 新開一個線程,運行service() 方法
5. service() 方法內部根據請求的方法,調用不同的方法處理請求
ServletConfig 和 ServletContext
ServletConfig 關於servlet 的一些參數
1. 獲取ServletConfig對象 在doXXX() 方法中調用 getServletConfig()
2. 獲取在web.xml中配置的參數
// 根據參數名,獲取參數值
public String getInitParameter(String name);
// 獲取所有的參數名
public Enumeration<String> getInitParameterNames();
// 獲取ServletContext對象
public ServletContext getServletContext();
// 獲取servlet的名字
public String getServletName();
<servlet>
<servlet-name>Index</servlet-name>
<servlet-class>com.zjl.main.IndexServlet</servlet-class>
<init-param>
<param-name>name01</param-name>
<param-value>value01</param-value>
</init-param>
</servlet>
ServletContext
ServletContext 是整個web應用的上下文
- 獲取ServletContext對象: 在doXXX() 方法中調用getServletContext() 方法,獲取通過ServletConfig對象調用getServletContext()方法獲取
- ServletContext對象中的方法:
// 獲取在web.xml文件中配置的初始化參數
public String getInitParameter(String name);
// 同ServletConfig對象類似
public Enumeration getInitParameterNames();
<context-param>
<param-name>context_name</param-name>
<param-value>context_value</param-value>
</context-param>
// 訪問資源文件
// 返回資源文件的URL對象,其中path參數必須以 / 開頭,代表應用的根目錄
public URL getResource(String path) throws MalformedURLException;
// 返回資源文件的流對象
public InputStream getResourceAsStream(String path);
// 設置Attribute,保存對象,使其在其他Servlet中也可以被訪問
// 設置屬性
public void setAttribute(String name, Object object);
// 獲取屬性
public Object getAttribute(String name);
public Object getAttribute(String name);
// 移除屬性
public void removeAttribute(String name);