Servlet介绍

1.Servlet是什么?

         Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。 它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。 Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,ServletWeb服务器进行加载,该Web服务器必须包含支持ServletJava虚拟机。

2.Servlet生命周期?

        Servlet是在服务器(我们这里是Tomcat)启动时强制加载和初始化的。

        Servlet首先创建一个Servlet的实例(new()),然后调用Init()方法,客户端请求达到ServerServlet创建HttpRequst对象和HttpResponse对象,然后调用ServletService()方法(这里doGet()或者doPost()),Servlet执行完毕后,调用Destroy()方法销毁对象。

        这里需要说明的是,Servlet是单实例,多线程的,只是在系统第一次调用时,调用ServletInit()方法,以后每次都是调用Service()方法中的doGet()或者doPost()方法,因此它可以产生多个Service对象,所以它存在线程安全问题。

        解决线程安全的问题是在Service()方法中的doGet()或者doPost()方法中使用synchronized方法加锁吗?不是的,这样的话,虽然可以保证每次只有一个对象可以被调用,但是当多用户访问时就会大大降低程序的运行效率,解决的方案就是在业务逻辑层使用事务。由于篇幅问题,这里不做过多介绍。

3.Servlet的执行过程?

Servlet调用过程时序图

4. HttpServletRequest

包装了客户端提交过来的所有数据(客户端的IP地址,客户端的表单数据,Cookies信息)

HttpServletResponse包装了向客户端输出的数据(文字,图片等)

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值