Servlet和JSP

2021-03-12  本文已影响0人  得力小泡泡

1、Servlet的工作原理

Servlet由tomcat服务器负责管理,Tomcat服务器通过读取web.xml创建并运行servlet,Servlet是javax.servlet包中HttpServlet类的子类的一个实例,由服务器创建并完成初始化工作。当多个用户请求一个Servlet时,服务器为每个用户启动一个线程而不是启动一个进程,这些线程由服务器来管理

2、Servlet中的生命周期

(1)初始化Servlet。Servlet第一次被请求加载时,服务器初始化这个Servlet,即创建一个Servlet,这个Servlet调用init方法完成必要的初始化工作
(2)新诞生的Servlet再调用service方法响应用户的请求(会根据用户的请求方式再调用doGet或doPost方法)
(3)当服务器关闭时,调用destroy方法销毁servlet

init方法只被调用一次,即在servlet第一次被请求加载时调用该方法。当后续的用户请求servlet服务时,Web服务将启动一个新的线程,在该线程中,Servlet调用响应用户的请求。也就是说,每个用户的每次请求都会导致service方法被调用执行,其执行过程分别运行在不同的线程中

3、重定向与请求转发

请求转发:

request.getRequestDispatcher(URL地址).forward(request, response)

处理流程:
1、客户端发送请求,Servlet做出业务逻辑处理。
2、Servlet调用forword()方法,服务器Servlet把目标资源返回给客户端浏览器。


image.png
重定向:

response.sendRedirect(URL地址)

处理流程:
1、客户端发送请求,Servlet做出业务逻辑处理。
2、Servlet调用response.sendReadirect()方法,把要访问的目标资源作为response响应头信息发给客户端浏览器。
3、客户端浏览器重新访问服务器资源xxx.jsp,服务器再次对客户端浏览器做出响应。


image.png
区别

1、区分是从服务器外的请求,还在是内部转发,从服务器外的请求
2、请求转发,地址还是第一个Servlet的地址,重定向是再次请求其他Servlet的地址

做增、删、改的时候最好用重定向,因为如果不用重定向,每次刷新页面就相当于再请求一次,就可能会做额外的操作,导致数据不对。

4、Session和Cookie的区别

1、Session解决了一个用户在不同请求中处理的数据共享问题,Cookie解决了发送不同的请求的数据共享问题
2、Session存放在服务器端(服务器的一个文件里,而不是内存),Cookie存放在客户端
3、Session的原理:用户第一次访问服务器时,服务器会创建一个S而是session对象给此用户,并将session对象的JSESSIONID使用Cookie技术将JSESSIONID存储到浏览器,保证用户的其他请求能够获取到同一个session对象,也保证不同请求能够获取到共享的数据

5、JSP的访问原理

浏览器发起请求请求JSP,请求被服务器接收,执行JspServlet将请求的JSP文件转义成对应Java文件(即Servlet),然后执行转义好的Java文件

6、JSP的九大内置对象

7、四个作用域对象(作用:数据流转)

1、pageContext:当前页面,解决了在当前页面内的数据共享问题
2、request:一次请求,一次请求的Servlet的数据共享,通过请求转发,将数据流转给下一个Servlet
3、session:一次会话,一个用户的不同请求的数据共享,将数据从一个请求流转到其他请求
4、application:项目内,不同用户的数据共享问题,将数据从一个用户流转到其他用户

8、bean

一、什么是JavaBean
1)必须实现Serializable接口
2)没有public类型的类变量
3)具有无参数的构造器
4)具有public的getters和setters方法

二、如何在一个页面中设置一个JavaBean
<jsp:useBean id="?" class="?" scope="?"></jsp:useBean>
id:相当于一个引用类对象的一个变量名
class:指明创建哪个类的对象
scope:指明这个对象设置在哪个内置对象中(如果scope缺省则,默认为放在page中)

三、bean的作用域


image.png
上一篇下一篇

猜你喜欢

热点阅读