创建Servlet
- 创建一个类继承javax.servlet.http.HttpServlet类
- 覆盖doGet(), doPost() 方法
在web.xml中配置servlet
<servlet> <servlet-name>Index</servlet-name> <servlet-class>com.zjl.main.IndexServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Index</servlet-name> <url-pattern>/index</url-pattern> </servlet-mapping>
Tomcat容器访问Servlet的步骤:
1. 客户端发送请求 http://www.xxx.com/index
2. Tomcat容器 通过url-pattern 即/index,找到servlet-name,再有此找到servlet-class
3. 创建Servlet对象,调用init() 方法
4. Tomcat容器创建request和responce两个对象作为参数, 新开一个线程,运行service() 方法
5. service() 方法内部根据请求的方法,调用不同的方法处理请求
ServletConfig 和 ServletContext
ServletConfig 关于servlet 的一些参数
1. 获取ServletConfig对象 在doXXX() 方法中调用 getServletConfig()
2. 获取在web.xml中配置的参数
// 根据参数名,获取参数值
public String getInitParameter(String name);
// 获取所有的参数名
public Enumeration<String> getInitParameterNames();
// 获取ServletContext对象
public ServletContext getServletContext();
// 获取servlet的名字
public String getServletName();
<servlet>
<servlet-name>Index</servlet-name>
<servlet-class>com.zjl.main.IndexServlet</servlet-class>
<init-param>
<param-name>name01</param-name>
<param-value>value01</param-value>
</init-param>
</servlet>
ServletContext
ServletContext 是整个web应用的上下文
- 获取ServletContext对象: 在doXXX() 方法中调用getServletContext() 方法,获取通过ServletConfig对象调用getServletContext()方法获取
- ServletContext对象中的方法:
// 获取在web.xml文件中配置的初始化参数
public String getInitParameter(String name);
// 同ServletConfig对象类似
public Enumeration getInitParameterNames();
<context-param>
<param-name>context_name</param-name>
<param-value>context_value</param-value>
</context-param>
// 访问资源文件
// 返回资源文件的URL对象,其中path参数必须以 / 开头,代表应用的根目录
public URL getResource(String path) throws MalformedURLException;
// 返回资源文件的流对象
public InputStream getResourceAsStream(String path);
// 设置Attribute,保存对象,使其在其他Servlet中也可以被访问
// 设置属性
public void setAttribute(String name, Object object);
// 获取属性
public Object getAttribute(String name);
public Object getAttribute(String name);
// 移除属性
public void removeAttribute(String name);