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之间共享数据
ServletContext与tomcat (同生共死)