day09 Servlet

Servlet: 运行在服务器端的小应用程序(server+applet)。

作用:

1、接收用户的请求

2、对用户的请求做一定处理

3、给用户以相应的响应

Web三大组件:Listener,Filter,Servlet

           (三大组件都必须在web.xml中进行配置)

javax.servlet.Servlet(接口)

         如果要写Servlet那么必须实现这个接口(javax.servlet.Servlet)

    需要实现的方法有:init(ServletConfig)          只在第一次请求的时候调用

                                    service(ServletRequest,ServletResponse)        用户请求一次调用一次

                                    destroy()            只有在正常关闭服务的时候调用

                                    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步骤:

1、开tomcat服务(Debug Server)

2、打断点

3、打开网页

4、下一步(将会看到,从GenericServlet的init(ServletConfig)方法,跳到GeneServlet4的init()方法)

HttpServlet(继承了GenericServlet):


请求路径:

        

所以可以直接写servlet5.

ServletContext(域  上下文):

        作用:实现不同Servlet之间数据共享。

servlet之间共享数据

ServletContexttomcat (同生共死)

getRealPath("/"):

WEB-INF:是安全的路径,不能通过路径直接访问。



捐助共勉
版权声明:若无特殊注明,本文皆为原创,转载请保留文章出处。