八、Java ServerPages(jsp)

八、Java ServerPages(jsp)

1、什么是jsp,以及作用

1.1、什么是jsp

1、内容

1、jsp全称是java Server pages 。java的服务器页面

2、jsp 的主要作用是代替Servlet程序回传html页面的数据

3、因为servlet回传html页面数据很繁琐,开发成本和维护成本很高

4、jsp和html页面一样,都是存放在web目录下,访问也一样

2、jsp页面的本质

2.1、jsp本质是一个servlet程序

1、内容

1、第一次访问jsp页面,tomcat服务器会帮我们把jsp页面翻译成一个java源文件,并且进行编译为.class字节码文件

2、HttpJspBase类、直接继承HttpServlet

3、底层实现,通过输出流。把html页面数据回传给客户端

3、jsp的三种语法

3.1、jsp的头部page指令

1、内容

1、jsp的page指令可以修改jsp页面中的一些重要属性,或者行为。

2、属性

image-20230415104816341

3.2、jsp的常用脚本

1、声明脚本(使用少)

1、格式

<%  声明的java代码    %>

2、声明脚本和代码翻译对照

1、例子

image-20230415191937596

3.3、表达式脚本(常用)

1、格式

1、格式

<%= 表达式 %>    

2、作用:jsp页面上的数据数据

2、表达式脚本的特点

1、所有表达式脚本都会被翻译到_jspService()方法中

2、表达式脚本都会被翻译成为out.print()输出到页面上

3、由于表达式脚本翻译的内容都是在_jspService()方法中,所以_jspService()方法中的对象都是可以直接使用的

4、表达式脚本中的表达式不能以分号结束。

3、翻译对照

image-20230415192342825

3.4、代码脚本

1、脚本格式

image-20230415192430912

2、脚本的特点

1、代码脚本翻译之后都是在_jspService()方法中

2、代码脚本由于翻译到_jspService()方法中,所以在_jspService()方法中的现有对象都可以直接使用

3、还可以由多个代码脚本块组合完成一个完整的java语句。

4、代码脚本还可以和表达式脚本一起组合使用,在jsp页面上输出数据

3、例子

image-20230415192625506

4、jsp中的三种注释

4.1、html注释

1、格式

<!-- 注释内容弄 -->    

2、html注释会被翻译到java源码中,在_jspService()方法中,以out.writer输出到客户端。

4.2、java注释

image-20230415192908231

4.3、jsp注释

image-20230415192916655

5、jsp的内置对象

5.1、九大内置对象

1、内容

1、jsp中的内置对象,是指tomcat在翻译jsp页面成为servlet源码后,内部提供的九大对象,也叫内置对象。

2、内置对象

对象名 内容
request 请求对象
response 响应对象
pageContext jsp的上下文对象
session 会话对象
application ServletContext对象
config ServletConfig对象
out jsp输出对象
page 指向当前jsp对象
exception 异常对象

5.2、jsp的四大对象

1、内容

1、四个域对象

image-20230415221011391

2、域对象是可以像Map一样存储数据的对象。四个域对象功能一样。不同的是它们对数据的存储范围。

3、虽然四个域对象都可以存取数据,使用上是有先后顺序的。

4、域对象的优先级

1、使用的先后顺序,从小到大的范围

image-20230415221224788

5.3、jsp中的out输出和response.getWriter输出的区别

1、简介

1、response中表示响应,我们经常用于设置返回给客户端的内容(输出)

2、out也是用户做输出的使用。

2、图解

1、jsp页面中所有代码执行完成后会做以下两个操作和图解

image-20230415221422339

3、注意事项

1、由于jsp翻译后,底层源代码都使用out进行输出,所以一般情况下。我们在jsp页面中统一使用out进行输出。避免打乱页面输出内容的顺序。

2、out.write():输出字符串没有问题

3、out.print():输出任意数据都没有问题(都转化成字符串后调用的write输出)

4、在jsp页面中,可以统一使用out.print()进行输出

6、jsp的常用标签

6.1、jsp静态标签

1、内容

1、格式

<%@ include file="xxxx"

2、file 属性指定你要包含的 jsp 页面的路径
3、地址中第一个斜杠 / 表示为 http://ip:port/工程路径/ 映射到代码的 web 目录

2、特点

1、静态包含不会翻译被包含的jsp页面

2、静态包含其实是把被包含的jsp页面的代码拷贝到包含的位置进行输出

3、例子

1、包含页面代码

<%--静态包含--%>
<%--    哈哈哈<br>--%>

<%--    <%@ include file="/include/footer.jsp"%>--%>

2、被包含页面代码

<body>

    脚本信息<br>
    脚本事件<br>
</body>

6.2、jsp动态包含

1、内容

1、格式

<jsp:include page=""></jsp:include>

2、特点

1、动态包含会把包含的jsp页面翻译成为java代码

2、动态包含底层代码使用如下的代码去调用被包含的jsp页面执行输出。JSPRuntimeLibrary.include(request,response,"/include/footer.jsp",out,false);

3、动态包含,还可以传递参数

image-20230415230639324

3、底层原理

image-20230415230747210

6.3、jsp标签-请求转发

1、实例说明

image-20230415230834266

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇