package cn.itcast.web;
import java.io.IOException;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class HelloWorldServlet implements Servlet{
/**
* 当执行该访问路径http://localhost:808/itcast0726Servlet01/helloWorldServlet多次时,
* 构造方法只执行1次,这证明是单实例
*/
public HelloWorldServlet() {
System.out.println("HelloWorldServlet构造方法");
}
/**
* 该方法由servlet容器调用
* 在servlet的生命周期中初始化方法执行1次
* * ServletConfig
* * 该对象保存了servlet的一些配置信息
* * 实现类是org.apache.catalina.core.StandardWrapperFacade
* public final class StandardWrapperFacade implements ServletConfig
*
* * serlvet容器先创建StandardWrapperFacade对象
* * serlvet容器再调用init方法时,把StandardWrapperFacade对象作为实参传递给该方法的形参
*
*/
public void init(ServletConfig config) throws ServletException {
System.out.println("init方法");
System.out.println("config "+config);
/*
* servlet的上下文对象
* * 实现类时:org.apache.catalina.core.ApplicationContextFacade
* public final class ApplicationContextFacade implements ServletContext
*/
ServletContext sc=config.getServletContext();
System.out.println(sc);
/*
* <servlet>
<!-- 注册的servlet的名称,自定义,相当于给servlet起的别名-->
<servlet-name>HelloWorldServlet</servlet-name>
<!-- 配置servlet所在类的完整路径 -->
<serv let-class>cn.itcast.web.HelloWorldServlet</servlet-class>
</servlet>
*/
//获取serlvet的注册名称 <servlet-name>HelloWorldServlet</servlet-name>
String name=config.getServletName();
System.out.println(name);
/*
* <!-- 配置初始化参数-->
<init-param>
<param-name>book</param-name>
<param-value>金瓶梅</param-value>
</init-param>
<init-param>
<param-name>NBA</param-name>
<param-value>小牛</param-value>
</init-param>
*/
String bookName=config.getInitParameter("book");
System.out.println("bookName "+bookName);
String nba=config.getInitParameter("NBA");
System.out.println("nba "+nba);
//获取所有的参数的名称
java.util.Enumeration<String> em=config.getInitParameterNames();
while(em.hasMoreElements()){
String paramName=em.nextElement();
System.out.println("参数的名称 "+paramName);
//获取参数对应的值
String paramValue=config.getInitParameter(paramName);
System.out.println("paramValue "+paramValue);
}
}
/**
* 该方法由servlet容器调用
* 在servlet的生命周期中接收客户端请求的方法执行n次
*
* ServletRequest request:
* * 保存客户端发送到服务器端的所有的请求,(客户端-->服务器端)
* * 实现类 org.apache.catalina.connector.RequestFacade
* public class RequestFacade implements HttpServletRequest
*
* ServletResponse response:
* * 保存服务器送回给客户端的所有的数据(服务器端--->客户端)
* * 实现类: org.apache.catalina.connector.ResponseFacade
* public class ResponseFacade implements HttpServletResponse
*
* * servlet容器先创建RequestFacade和ResponseFacade对象
* * servlet容器在调用service方法,把RequestFacade和ResponseFacade对象作为实参传递给该方法的形参
*
*
*/
public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException {
System.out.println("service方法");
System.out.println("request "+request);
System.out.println("response "+response);
}
/**
* 该方法由servlet容器调用
* 在servlet的生命周期中销往的方法执行1次
*/
public void destroy() {
System.out.println("destroy方法");
}
public ServletConfig getServletConfig() {
return null;
}
public String getServletInfo() {
return null;
}
}