1. 程式人生 > >servlet的介紹 & xml中配置 以及 & 三種實現方式(補充設定瀏覽器不快取的方法)

servlet的介紹 & xml中配置 以及 & 三種實現方式(補充設定瀏覽器不快取的方法)

開始時間:2018年10月13日20:53:30 | 2018年10月14日16:10:56

結束時間:2018年10月13日21:53:30 | 2018年10月14日17:02:23

累計時間:3小時

動態資源:

Servlet 簡單介紹: 

 Servlet 伺服器端的一個小程式:   執行在伺服器上。 能夠接收客戶端請求,並且給客戶端做出相應。         * 實現方式: 三種:     (1)實現Servlet 介面:     (2)繼承GenericServlet:類。     (3)繼承HttpServlet:       * Servlet 當中設定的方法:          初始化的方法; init();         接收客戶端的請求,Service();          銷燬Servlet:     destroy();  

 * Servlet 的生命週期:     和Servlet 宣告週期相關的方法:     init(ServletConfig config);                                                             Servlet建立之後,自動執行。     service(ServletRequest request, ServletResponse response);   當客戶端瀏覽器發出請求的時候 service方法被呼叫。     destroy()                                                                                       伺服器關閉的時候,當前的應用稱web伺服器上解除安裝的時候。      生命週期---(面試問題)     誕生: 當客戶端瀏覽器第一次訪問該Servlet的時候,此時Servlet誕生。                   自動會呼叫init方法,執行一個初始化操作。                     服務:  當客戶端瀏覽器每次發出請求,service方法都會被執行。      銷燬:  伺服器關閉的時候,當前的應用稱web伺服器上解除安裝的時候。

* 訪問方式

不能被瀏覽器直接訪問, 需要在當前應用的核心配置當中 對 當前servlet進行配置

配置方法如下:

補充一個Servlet 簡單案例: 

 重點是瀏覽器設定不快取

下面程式碼設定了瀏覽器不快取,避免出現 修改伺服器端給瀏覽器的響應  而瀏覽器顯示不改變 的情況!

如果已經出現的話,清空瀏覽器快取,或者重啟。

package com.yidongxueyuan.web.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class AServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request, response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		
		response.getWriter().println("yyy");
		
		//設定瀏覽器不快取: 
		// 同時出現,設定瀏覽器的不快取: 
		response.setHeader("expires", "-1");
		response.setHeader("Pragma", "no-cache");// http10.0 
		response.setHeader("Cache-Control", "no-cache");// http1.1
			
	}

}

response.setHeader("expires", "-1");  中的 第二個引數 不一定非得是-1,只要小於當前時間的毫秒值,即可。一般是-1活0

       重點介紹三種實現方式

方式一: 實現步驟    (1)   建立一個類: 類實現implements Servlet     (2)   重寫Servlet當中的方法:     (3)  訪問》  通過瀏覽器訪問: 

下面程式中: servlet例項被建立的時候,自動執行init方法。

package com.yidongxueyuan.web.servlet;

import java.io.IOException;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class FirstServlet implements Servlet {
	//第一步: 建立一個Servlet 例項: 
	public FirstServlet(){
		System.out.println("servlet 被建立了");
	}
	
	//初始化方法:  對當前的Servlet 進行初始化操作: 
	@Override
	public void init(ServletConfig paramServletConfig) throws ServletException {
		System.out.println("init方法被執行了,完成了一個初始化操作。 ");
	}

	@Override
	public ServletConfig getServletConfig() {
		return null;
	}

	//service 方法: 對客戶端的請求 進行相關的處理: 
	@Override
	public void service(ServletRequest request,
			ServletResponse paramServletResponse) throws ServletException,
			IOException {
		
		System.out.println("serice方法被執行了。。。。。。");
	}

	@Override
	public String getServletInfo() {
		return null;
	}

	@Override
	public void destroy() {
		System.out.println("destroy方法被執行了。 此時Servlet被銷燬。 ");

	}

}

 web.xml當中進行配置: 

   <!--註冊Servlet:  -->   <servlet>//需要有兩個子標籤  第一個放檔名  第二個放你的檔案所在的全路徑名

(如果是eclipse的話 可以快速copy全路徑  如圖  點選 copy qualified name即可)        <servlet-name>FirstServlet</servlet-name>            <servlet-class>web.servlet.FirstServlet</servlet-class>   </servlet>      <!-- 對映 -->   <servlet-mapping>         <servlet-name>FirstServlet</servlet-name>             和上面註冊一樣         <url-pattern>/xxx</url-pattern>                                  /表示相對當前路徑  對映上面那個class 自己命名的值會顯示在URL欄   </servlet-mapping>                                                             八: Servlet的補充:  1: web的三大元件:    Servlet:    Filter : 過濾器   Listener: 監聽器    :2:作用:    接收請求:    處理請求:    完成響應:        :3:  初始化的方法,init service的方法, 引數都是來源於Tomcat伺服器。    Tomcat伺服器幫忙建立的。