一、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对象只能获取
(2) 使用config对象只能获取
二、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所有,如需转载,请注明出处
捐赠: