JayGao

JayGao的个人博客,分享技术,记录生活,感谢您的支持与关注。


  menu
29 文章
0 浏览
1 当前访客
ღゝ◡╹)ノ❤️

Jsp与Servlet的区别

一、Jsp和Servlet的区别是什么呢?

回答:Jsp和Servlet的区别主要从三方面来说

1.第一方面,从起源上说:Servlet先于jsp;

2.第二方面,从功能方面来说:servlet把业务逻辑的处理和页面的显示代码混杂在一起,不易维护。于是sun公司提出jsp用于显示页面,而servlet主要处理业务逻辑。

3.第三方面,从执行过程来说:Jsp执行分为两个时期,分别是转译时期和请求时期,在转译时期jsp转译成Servlet,请求时期主要执行servlet,而这个servlet就是jsp转译成的那个servlet。

二、Jsp三个编译指令?

回答:

(1)page:

作用:指示页面相关的信息

说明:在一个JSP 页面中,page 指令可以出现多次,但是每一种属性却只能出现一

次,重复的属性设置将覆盖掉先前的设置;但其中的 import 属性是一个例外,可以有多个导

入操作。

(2)include:包含另一个文件,实现页面的重用。(静态包含)

作用::包含另一个文件,实现页面的重用。

语法:<%@ include file="......"%>

(3)Taglib:

作用:指示这个JSP 页面所使用的标签库

语法:

<%@ taglib  uri="tagLibraryURI"  prefix="tagPrefix" %>

注:1、uri :描述引用的标签库的位置 。

2、Prefix:指该页面使用此标签库的前缀区分同名标签。

3、自定义标签的使用:

第一步:创建并配置标签库

第二步:创建标签处理类(TagSupport,JspException)

第三步:jsp页面引用

三、Jsp七个动作指令:

(1)Include:用于动态引入一个 JSP 页面。(动态包含)

(2)Param:用于传递参数,必须与其他支持参数的标签一起使用。

(3)useBean:使用 JavaBean。

(4)setProperty:设置 JavaBean 实例的属性值。

(5)getProperty:获取 JavaBean 实例的属性值。

(6)Forward:执行页面转向,将请求的处理转发到下一个页面。

(7)Plugin:用于下载 JavaBean 或 Applet 到客户端执行。

四、九大内置对象:

(1)request:客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。

(2)Response:response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。

(3)Session:session对象指的是客户端与服务器的一次会话,从客户端连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。它是HttpSession类的实例.

(4)Application:Application对象用于保存应用系统中共有的数据,一旦创建了application对象,除非服务器关闭,否则该对象将一直保持。 (session与application的区别:

Session对象 利用session对象保存用户相关信息,以便在非连续性页面之间传递用户信息。

Application对象用于保存应用系统中共有的数据,一旦创建了application对象,除非服务器关闭,否则该对象将一直保持。)

(5)Out对象:

Out对象的主要作用就是用来向客户端输出数据,有两种方法:println()和print()

(6)Page对象:指JSP网页本身,page对象是当前页面转换后的Servlet类的实例。从转换后的Servlet类的代码中,可以看到这种关系:Object page = this;在JSP页面中,很少使用page对象。

(7)Exception :该对象主要负责处理jsp文件执行时所发生的错误和异常。

(8)pageContext:pageContext对象为jsp包装页面的上下文,主要实现管理jsp特殊可见部分中已经命名对象的访问,所有的内置对象均可以从pageContext中取得。

(9)Config:Config对象表示servlet的配置,对象里存放着一些servlet初始的配置信息。

注意:一、application对象config对象的区别

(1) 使用application对象只能获取设定的初始化参数,因为application对象处理的是整个Web应用程序的环境信息。

(2) 使用config对象只能获取设定的初始化参数,因为config对象处理的是单个Servlet文件或JSP文件。

二、session与application的区别:

从作用范围来说:

(1)session是为单个用户保存的变量,对单个用户有效

(2)application是为所有用户保存的变量,对所有用户有效

从生命周期来说:application存在于服务器端,随服务器关闭而消失
session存在于客户端浏览器,随浏览器关闭而消失

三、forward与redirect与的区别:

1.从地址栏显示来说:forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,所以它的地址栏还是原来的地址.而redirect

是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.

2.从数据共享来说

forward:转发页面和转发到的页面可以共享request里面的数据.

redirect:不能共享数据.

3.从运用地方来说

forward:一般用于用户登陆的时候,根据角色转发到相应的模块.

redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.

4.从效率来说:forward:高.redirect:低.

Include编译指令与include动作指令的区别:

(1)从功能方面来说:include编译指令是静态包含,include动作指令是动态包含。

(2)从执行时期来说:include编译指令的执行时间是在编译阶段执行,include动作指令的执行时间是在请求阶段执行。

(3)从与servlet的关系方面来说:include编译指令是多个jsp文件编译成一个servlet。 include动作指令是多个jsp文件编译成多个servlet, 最后在请求期把这些servlet文件包含在一起。(如果编译期编译了两个servlet的话,在请求期include动作指令会实现两者之间的调用)。


标题:Jsp与Servlet的区别
作者:JayGao
地址:https://www.jaygao.top/articles/2022/12/28/1672191034492.html
版权:版权JayGao所有,如需转载,请注明出处
捐赠: