二十九、Servlet

一、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{

} 
发布了46 篇原创文章 · 获赞 41 · 访问量 8423

猜你喜欢

转载自blog.csdn.net/weixin_42635052/article/details/101674072