一、什么是servlet
servlet是web开发中的一个标准,主要是交互式地浏览和修改数据,生成动态Web内容。用更简短的来理解:servlet主要位于服务器端的语言,用来处理请求,调用业务逻辑到dao层,返回响应结果到view。servlet明显就是的controller层
二、servlet的生命周期
在这里应该有很多人以为,servlet为什么会有生命周期呢?我们在实际过程中,可以把servlet想象成一个类,类肯定就有生命周期。
- 实例化servlet,加载servlet的class
- 初始化servlet,调用init(),而且执行init方法,只执行一次
------------默认情况下,第一次被访问时,Servlet被创建,然后执行init方法;
------------可以配置执行Servlet的创建时机; - 服务servlet,方法处理doGet和doPost方法。执行service方法,执行多次
- 销毁servlet,容器执行destroy销毁,只执行一次
三、请求方式
在servlet运行原理(一)种,我们能够看到一个请求从客户端到服务器再到客户端的详细过程,在执行中我们要问,什么是重定向,什么是请求转发?
在这里我们举例说明:小王来到4S店中想买一台法拉利跑车,店里只有销售员a。可是a只能销售奔驰跑车。但是客户既然来到了4S店。来了这样的客户我不能不转钱呀。我虽然没有销售法拉利跑车的权限。可是销售员b可以呀。这个时候销售员a面临二种选择:
第一种就是销售员a把小王的资料直接给销售员b;
第二种就是销售员a把小王的资料退还给小王,然后小王自己再去找销售员b;
在上面的例子中我们能够明显的区分到,第一种方式就是请求转发,第二种就是重定向。那他们有什么实际性的区别:
- 一个请求还是二个请求:在理解时,在上面的例子中。小王在第一种方式中只做了一次请求。第二种方式中,小王又得到资料再次请求
- 地址栏区别:第一种方式:小王请求销售员a.只请求了一次,小王-------销售员a的过程内部会执行 销售员a-------销售员b。所以地址栏还是小王------销售员a的地址
第二种方式:小王资料被销售员a退回,小王又重新请求了销售员b。所以地址栏变为了小王--------销售员b的地址
四、doget和doPost区别
- 地址栏 :使用Get调用,就会在浏览器的URL中显示传递的数据。Post用于客户端把数据传送到服务器端可以隐藏传送给服务器的任何数据。
- 安全性:post能够早地址栏中隐藏信息安全性更高
- 内容大小:GET方法后面的信息量字节大小不要超过1.3K,而POST则没有限制
五、什么是JSP
- JSP是运行在服务端的语言。(在这里是不是和上面介绍的servlet很像,都是位于服务器。是的。我们可以把JSP当做一个servlet)
- 可以看做是servlet也有生命周期
- 编译阶段:
-------------servlet容器编译servlet源文件,生成servlet类
-------------解析JSP文件。
-------------将JSP文件转为servlet。
-------------编译servlet。 - 初始化阶段:
-------------加载与JSP对应的servlet类,创建其实例,并调用它的初始化方法(jspInit()方法) - 执行阶段:
-------------调用与JSP对应的servlet实例的服务方法(_jspService()方法。) - 销毁阶段:
-------------调用与JSP对应的servlet实例的销毁方法,然后销毁servlet实例(jspDestroy()方法)
扩展:JSP内置对象
jsp在被翻译成servlet时,类中会自动创建和初始化对象
HttpSession session = request.getSession();
ServletContext application = request.getServletContext();
在页面中可以直接使用内置对象。jsp内置对象有9种













网友评论