day09 Servlet

Servlet: 運行在服務器端的小應用程序(server+applet)。

做用:java

一、接收用戶的請求web

二、對用戶的請求作必定處理tomcat

三、給用戶以相應的響應安全

Web三大組件:Listener,Filter,Servlet服務器

           (三大組件都必須在web.xml中進行配置)
app

javax.servlet.Servlet(接口)

         若是要寫Servlet那麼必須實現這個接口(javax.servlet.Servlet)this

    須要實現的方法有:init(ServletConfig)          只在第一次請求的時候調用
url

                                    service(ServletRequest,ServletResponse)        用戶請求一次調用一次
spa

                                    destroy()            只有在正常關閉服務的時候調用
debug

                                    getServletConfig()      由服務器(tomcat進行管理),封裝着Servlet一些配置信息,

                                                                        有多少Servlet,就有多少ServletConfig對象

                                    getServletInfo()

若是有兩個servlet,那麼init,就有兩個,destroy就有兩個,各自是各自的。

ServletConfig

web.xml

<?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">
 
 <servlet>
 	<servlet-name>servlet1</servlet-name>
 	<servlet-class>serdemo.Servlet1</servlet-class>
 	 <init-param>
 		<param-name>age</param-name>
 		<param-value>18</param-value>
 	</init-param>
 	<init-param>
 		<param-name>addr</param-name>
 		<param-value>北京</param-value>
 	</init-param>
 </servlet>
 <servlet-mapping>
 	<servlet-name>servlet1</servlet-name>
 	<url-pattern>/demo</url-pattern>
 </servlet-mapping>
</web-app>

servlet1.java

package serdemo;

import java.io.IOException;
import java.util.Enumeration;

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

public class Servlet1 implements Servlet {
	private ServletConfig config;
	public void init(ServletConfig config) throws ServletException {
		this.config = config;
		System.out.println("init....");
	}

	public void service(ServletRequest arg0, ServletResponse arg1)
			throws ServletException, IOException {
		ServletConfig servletConfig = getServletConfig();
		
		String value = servletConfig.getInitParameter("age");
		System.out.println(value);
		String value2 = servletConfig.getInitParameter("addr");
		System.out.println(value2);
		
		Enumeration enu = servletConfig.getInitParameterNames();
		while(enu.hasMoreElements()){
			String value3 = (String) enu.nextElement();
			System.out.println(value3);
		}
		System.out.println("service.....");
	}
	public void destroy() {
		System.out.println("destory...");
	}
	//封裝着一些相應的配置信息
	public ServletConfig getServletConfig() {
		return config;
		
	}

	public String getServletInfo() {
		// TODO Auto-generated method stub
		return null;
	}

	

}

load-on-startup:

     使tomcat服務啓動的時候,進行初始化

        正整數,越大越靠後

GenericServlet(實現了Servlet,重寫了Servlet的方法):

debug步驟:

一、開tomcat服務(Debug Server)

二、打斷點

三、打開網頁

四、下一步(將會看到,從GenericServlet的init(ServletConfig)方法,跳到GeneServlet4的init()方法)

HttpServlet(繼承了GenericServlet):


請求路徑:

        

因此能夠直接寫servlet5.

ServletContext(域  上下文):

        做用:實現不一樣Servlet之間數據共享。

servlet之間共享數據

ServletContexttomcat (同生共死)

getRealPath("/"):

WEB-INF:是安全的路徑,不能經過路徑直接訪問。

相關文章
相關標籤/搜索