Servlet说明
Servlet是用Java编写的Server端程序,它与协议和平台无关。Servlet运行于基于Java的Web服务器中。Servlet可以动态地扩展Server的能力,并采用请求/响应模式提供Web服务。
## 优点
- 1、功能强大。Servlet采用Java语言编写,它可以调用Java API中的对象及方法。此外,Servlet对象对Web应用进行了封装,提供了Servlet对Web应用的编程接口,还可以对HTTP请求进行相应的处理,如提交数据、会话跟踪、读取和设置HTTP头信息。由于Servlet既拥有Java提供的API,而且还可以调用Servlet封装的Servlet API编程接口,因此,它在业务功能方面十分的强大。
- 2、安全性高。Servlet使用了Java的安全框架,同时Servlet容器还可以为Servlet提供额外的功能,它的安全性是非常高的。
- 3、可移植性。Java语言是跨平台的,所谓跨平台是不依赖于操作系统,它可以运行到多个系统平台中,如目前常用的操作系统Windows、Linux和UNIX等,由于Servlet使用Java语言编写,所以Servlet继承了Java语言的优点,程序一次编码,多平台运行,拥有超强的可移植性。
## 缺点
- 1、每写一个servlet在web.xml中都要做相应的配置,导致web.xml内容过于繁多,不利于团队分组开发。解决方案为注解开发
- 2、在servlet中,doGet方法和doPost方法有HttpServletRequest和HttpServletResponse参数。在单元测试中必须初始化这两个参数。servlet具有容器依赖性,必须在tomcat服务器中运行,不利于单元测试
- 3、客户端提交参数到服务器,一律按String字符串类型接收,后期需要进行转换。
- 4、Servlet是一个早期的不完善的产品,代码编写复杂.
- 5、在生成动态网页时不支持所及即所得的开发
## Servlet三生命周期
- init(ServletConfig) 在Servlet对象实例化后立即执行的方法,执行且只执行一次
- service(ServletRequest,ServletResponse)用于处理客户端请求,单实例多线程的方式
- 常驻内存
- destroy() 对象销毁之前执行,执行且只执行一次
## Servlet和JSP区别
JSP 究其本质就是Servlet
- Servlet是包含html标签的 Java 类
- JSP是包含 Java 代码的html网页