一、Servlet基础
定义:Servlet是运行在Web服务器端的Java应用程序,它使用Java语言编写,具有Java语言的优点。
与Java的区别就是,Servlet对象主要封装了对HTTP请求的处理,并且运行需要Servlet的容器支持。
二、Servlet技术特点
1.功能强大:采用java语言编写,可以调用API中的对象以及方法。此外,servlet对象对Web应用进行了封装,提供了servlet对web应用的编程接口,还可以对HTTP请求进行相对应得处理。
2.可移植性:跨平台,可以运行到多个系统平台上。
3.性能高效:Servlet对象在容器启动时被初始化。当第一次被请求时,Servlet容器将其实例化,此时它驻存于内存之中。如果存在多个请求,那么Servlet不会再被实例化,仍然由此Servlet对其进行处理。
4.安全性高:使用了Java的安全框架。
5.可拓展:可以通过封装、继承来扩展实际的业务需要。
三、Servlet与JSP的区别
1.角色不同:JSP页面可以存放HTML代码与Java代码并存的情况,而Servlet需要承担客户请求与业务处理的中间角色,只有调用固定的方法才能将动态内容输出为静态的HTML。
2.编程方法不同:使用Servlet开发Web程序应用需要遵循Java语言的标准,而JSP需要遵循一定的脚本语言规范。
3.Servlet需要编译后运行:Servlet需要在Java编译器编译后才可以运行。
4.速度不同:由于JSP页面由JSP Container对其进行管理,在每次执行不同内容的动态JSP页面时,JSP Container都要对其进行自动编译,所以效率低于Servlet。而Servlet在编译一次之后,如果没有修改内容则不需要再次编译。
四、Servlet代码结构
五、Servlet API常用接口和类
1.Servlet接口常用的方法
2.ServletConfig接口
3.HttpServletRequest接口
4.HttpServletResponse接口
方法 | 说明 |
public void addCookie(Cookie cookie) | 向客户端写入cookie信息 |
public void sendError(int sc) | 发送一个错误状态码为sc错误的响应到客户端 |
public void sendError(int sc,String msg) | 发送一个错误状态码及错误信息的响应到客户端,参数sc为错误状态码,参数msg为错误信息 |
public void sendRedirect(String location) | 使用客户端重定向到新的URL,参数location为新的地址 |
5.GenericServlet类
在编写一个Servlet对象时,必须实现javax.servlet.Servlet接口,但在Servlet接口中包含5个方法,也就是说创建一个Servlet对象要实现这5个方法,但这样操作非常不便。
javax.servlet.GenericServlet类简化了此操作,实现了Servlet接口。
public abstract class GenericServlet extends Objec implements Servlet,ServletConfig,Serializable{
}
6.HTTPServlet类
:GenericServlet类实现了javax.servlet.Servlet接口,为程序的开发提供了方便;但在实际开发过程中,大多数的应用都是使用Servlet处理HTTP协议的请求,并对请求作出响应,所以通过继承GenericServlet类仍然不是很方便。javax.servlet.http.HttpServlet类对GenericServlet类进行了扩展,为HTTP请求的处理提供了灵活的方法。
public abstract class HttpServlet extends GenericServlet implements Serializable{
}