👍如果对你有帮助,给博主一个免费的点赞以示鼓励
欢迎各位🔎点赞👍评论收藏⭐️
👀专栏介绍
【JavaWeb】 目前主要更新JavaWeb,一起学习一起进步。
👀本期介绍
本期主要介绍JSP快速入门
文章目录
1.1、什么是 JSP(了解)
1.2、JSP 开发模板修改
1.3、JSP 快速入门
1.4、JSP 运行原理(了解)
1.1、什么是 JSP(了解)
JSP
全名是
Java Server Pages
,它是建立在
Servlet
规范之上的动态网页开发技术。在
JSP
文件
中,
HTML
代码与
Java
代码共同存在,其中,
HTML
代码用来实现网页中静态内容的显示,
Java
代码用来实
现网页中
动态内容的显示。为了与传统
HTML
有所区别,
JSP
文件的扩展名为
.jsp
。
JSP
技术所开发的
Web
应用程序是基于
Java
的,它可以用一种简捷而快速的方法从
Java
程序生
成
Web
页面,其使用上具有如下几点特征:
跨平台:由于
JSP
是基于
Java
语言的,它可以使用
Java API
,所以它也是跨平台的,可以应用
于
不同的系统中,如
Windows
、
Linux
等。当从一个平台移植到另一个平台时,
JSP
和
JavaBean
的
代码并不需要重新编译,这是因为
Java
的字节码是与平台无关的,这也应验了
Java
语言“一次编
译,到处运行”的特点。
业务代码相分离:在使用
JSP
技术开发
Web
应用时,可以将界面的开发与应用程序的开发分离
开。
开发人员使用
HTML
来设计界面,使用
JSP
标签和脚本来动态生成页面上的内容。在服务器端,
JSP
引擎(或容器,本书中指
Tomcat
)负责解析
JSP
标签和脚本程序,生成所请求的内容,并将
执行结果以
HTML
页面的形式返回到浏览器。
组件重用:
JSP
中可以使用
JavaBean
编写业务组件,也就是使用一个
JavaBean
类封装业务处理
代码或者作为一个数据存储模型,在
JSP
页面中,甚至在整个项目中,都可以重复使用这个
JavaBean
,同时,
JavaBean
也可以应用到其他
Java
应用程序中。
预编译:预编译就是在用户第一次通过浏览器访问
JSP
页面时,服务器将对
JSP
页面代码进行编
译,并且仅执行一次编译。编译好的代码将被保存,在用户下一次访问时,会直接执行编译好的
代码。这样不仅节约了服务器的
CPU
资源,还大大的提升了客户端的访问速度。
JSP
是
Java
独有,除了可以书写
HTML/CSS/JS
代码,
更支持书写
Java
代码和
EL
表达式等强大功能。
扩展名
: .jsp
1.2、JSP 开发模板修改
因为
JSP
默认编码是
ISO8859-1
,不利于我们中文开发,所以我们需要修改
JSP
的编码为
UTF-8
1.3、JSP 快速入门
JSP
文件建议创建在项目的
WebContent
目录下
1.4、JSP 运行原理(了解)
JSP 的本质是一个 Servlet(Java 程序)。
【以下为自学
-
扩展
-
了解】
JSP
的工作模式是请求
/
响应模式,客户端首先发出
HTTP
请求,
JSP
程序收到请求后进行处理并
返回
处理结果。在一个
JSP
文件第一次被请求时,
JSP
引擎(容器)把该
JSP
文件转换成为一个
Servlet
,而这
个引擎本身也是一个
Servlet
。
JSP
的运行过程如图
1-6
所示。
JSP
的运行过程具体如下:
(
1
)客户端发出请求,请求访问
JSP
文件。
(
2
)
JSP
容器先将
JSP
文件转换成一个
Java
源文件(
Java Servlet
源程序),在转换过程中,
如果发现
JSP
文件中存在任何语法错误,则中断转换过程,并向服务端和客户端返回出错信息。
(
3
)如果转换成功,则
JSP
容器将生成的
Java
源文件编译成相应的字节码文件
*.class
。该
class
文件
就是一个
Servlet
,
Servlet
容器会像处理其他
Servlet
一样来处理它。
为了使同学们更容易理解
JSP
的运行原理,接下来简单介绍分析一下
JSP
所生成的
Servlet
代
码。
以
HelloWorld.jsp
为例,当用户第一次访问
HelloWorld.jsp
页面时,该页面会先被
JSP
容器转换
为一个
名称为
HelloWorld_jsp.java
的源文件,然后将源文件编译为一个名称为
HelloWorld_jsp.class
字
节码文件。
如 果 项 目 发 布 在
Tomcat
的
webapps
目 录 中 , 源 文 件 和
.class
文 件 可 以 在 “
Tomcat
安
装 目 录
/work/Catalina/localhost/
项目名
/org/apache/jsp
”下找到,如图
1-7
所示。
在图
1-7
中,地址栏中的路径多出了
org\apache\jsp
,这是由于
JSP
文件转换成类文件时会带有
包名,
该包名为
org.apache.jsp
。从图中还可以看出,
HelloWorld.jsp
已被转换为源文件和
.class
文件。
打开
HelloWorld_jsp.java
文件,可查看转换后的源代码,其主要代码如下所示。(以下代码可以快速浏
览,确定
父类和方法名即可)
从上面的代码可以看出,HelloWorld.jsp 文件转换后的源文件没有实现 Servlet 接口,但继承了
org.apache.jasper.runtime.HttpJspBase
类。在
Tomcat
源文件中查看
HttpJspBase
类的源代码,
具体如下所示:
(以下代码可以快速阅读,确定父类即可)
从
HttpJspBase
源代码中可以看出,
HttpJspBase
类是
HttpServlet
的一个子类,由此可
HelloWorld_jsp类就是一个 Servlet
。 结论:
JSP
就是
Servlet
。