Server+Applet,是一种服务器端的Java应用程序 只有当一个服务器端的程序使用了Servlet API的时候,这个服务端的程序才能称之为Servlet
jsp从莫种意义上来说也是一个servlet
继承HttpServlet类
封装客户的请求信息 作用相当于JSP内置对象request
创建响应信息,将处理结果返回给客户端 作用相当于JSP内置对象response
包含了Servlet的初始化参数信息
生命周期 | 谁来做 | 何时做 |
---|---|---|
实例化 | Servlet 容器 | 当Servlet容器启动或者容器检测到客户端请求时 |
初始化 | Servlet 容器 | 实例化后,容器调用Servlet的init()初始化对象 |
处理请求 | Servlet 容器 | 得到客户端请求并做出处理时 |
销毁 | Servlet 容器 | 当程序中的Servlet对象不再使用的时候,或者Web服务器停止运行的时候 |
<servlet>
<servlet-name>myServlet3</servlet-name>
<servlet-class>demo.web.servlet.MyServlet3</servlet-class>
</servlet>
Servlet名称唯一
Servlet类所在路径
<servlet-mapping>
<servlet-name>myServlet3</servlet-name>
<url-pattern>/myServlet3</url-pattern>
</servlet-mapping>
与<servlet>的<servlet-name>设置相同
访问Servlet的URL
<servlet>
……
<init-param>
<param-name>charSetContent</param-name>
<param-value>utf-8</param-value>
</init-param>
</servlet>
public void init(ServletConfig config) throws ServletException {
String initParam=config.getInitParameter("charSetContent");
System.out.println(initParam);
}
getParameter() getRequestDispatcher()
sendRedirect()
request.getSession()
建立实现javax.servlet.Filter接口的类,实现过滤行为 在web.xml中配置过滤器
doFilter(...) {
//过滤请求
chain.doFilter(request, response); //调用下一个过滤器或Web资源
//过滤响应
}
<filter>
<filter-name>过滤器名</filter-name>
<filter-class>过滤器的完全限定名</filter-class>
</filter>
<filter-mapping>
<filter-name>过滤器名</filter-name>
<url-pattern>过滤器映射的Web资源</url-pattern>
</filter-mapping>
<filter>
<init-param>
<param-name>Encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
init(FilterConfig fConfig) {
String encoding=fConfig.getInitParameter("Encoding");
}
在servlet-2.3中,Filter会过滤一切请求,包括服务器内部使用forward转发请求和<%@ includefile="/index.jsp"%>的情况。 到了servlet-2.4中Filter默认下只拦截外部提交的请求
在,想过滤其他请求就要这样写
<filter>
<filter-name>TestFilter</filtername>
<filter-class>anni.TestFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>TestFilter</filtername>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>EXCEPTION</dispatcher>
</filter-mapping>
如果是注解就要这样写
@WebFilter(urlPatterns = {"/WEB-INF/*"},dispatcherTypes={DispatcherType.ASYNC,DispatcherType.ERROR,DispatcherType.FORWARD,DispatcherType.INCLUDE,DispatcherType.REQUEST,} )servlet2.3还是2.4大概以tomcat8.5为界限