一、基础知识
(1)生命周期:实例化、初始化init()、处理请求service()、销毁desdroy()。
(2)技术特点:Servlet采用Java语言编写,同时也对Java的web应用进行了扩展。丰富的API,当处理HTTP请求时只要调用相应的API即可;Servlet的一个实例对象可以处理多个线程的请求;继承了Java的跨平台性及支持封装、继承等面向对象的优点;采用了Java的安全框架,安全性很高。
(3)技术功能:可以处理HTTP请求及获取HTTP头信息,通过HttpServletRequest接口与HttpServletResponse接口做出处理后返回到HTML页面中;有强大的过滤器;可以与其他服务器资源通信。
二、JSP与Servlet的区别
jsp是在Servlet规范之上的动态网页,通过在JSP页面中嵌入Java代码可以产生动态网页,因此可以理解为Servlet的扩展。在JSP文件被第一次请求时,会被编译成Servlet文件,再通过容器调用Servlet进行处理。
1.Servlet是客户请求和业务处理的中间角色,需要调用固定的方法,将动态内容混合到静态之中产生HTML,而JSP页面可以直接使用HTML标签进行输出。 2.Servlet要调用Servlet API接口处理HTTP请求,在JSP页面中则直接提供了内置对象进行处理。
3.Servlet的使用需要一定的配置,JSP只需.jsp扩展名部署在容器之中,容器就会对其自动识别,直接编译成Servlet处理。
三、代码结构:
public class test extends HttpServlet{
//初始化
public void init()throws ServletException{
}
//处理HTTP的doGet请求
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
}
//处理HTTP的doGet请求
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
}
//销毁
public void destroy(){
super.destroy();
}
}
web.xml中配置:
Servlet类名
包名+类名
类名
映射
四、Servlet API常用的接口和类:
1.接口:servlet/ServletCongig/HttpServletRequest/HttpServletResponse
2.类:GenericServlet/HttpServlet
五、Servlet过滤器
是客户端和目标资源间的中间层组件,用于拦截客户端的请求与响应信息。可以放置多个过滤器。
1.Filter接口:当定义一个过滤器对象时需要实现此接口。
init(FilterConfig filterConfig)
doFilter(ServletRequest request,ServletResponse response,FilterChain chain)
destroy()
2.FilterChain接口:由容器进实现,只包含一个doFilter()方法,用于将过滤器处理的请求或响应传递给下一个过滤器对象。(在多个过滤器中可使用此接口) 3.FilterConfig接口:由容器进行实现,用于获取过滤器初始化期间的参数信息。过滤器还需要在web.xml中进行配置,配置方法与servlet类似。