【JavaWeb】JSP快速入门

简介: 本期主要介绍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.2JSP 开发模板修改


因为 JSP 默认编码是 ISO8859-1,不利于我们中文开发,所以我们需要修改 JSP 的编码为 UTF-8

image.png

1.3JSP 快速入门


JSP 文件建议创建在项目的 WebContent 目录下

image.png

image.png

1.4JSP 运行原理(了解)


JSP 的本质是一个 ServletJava 程序)

image.png

【以下为自学 - 扩展 - 了解】

JSP 的工作模式是请求 / 响应模式,客户端首先发出 HTTP 请求, JSP 程序收到请求后进行处理并返回处理结果。在一个 JSP 文件第一次被请求时, JSP 引擎(容器)把该 JSP 文件转换成为一个Servlet ,而这个引擎本身也是一个 Servlet 。 JSP 的运行过程如图 1-6 所示。

image.png

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 所示。

image.png

在图 1-7 中,地址栏中的路径多出了 org\apache\jsp ,这是由于 JSP 文件转换成类文件时会带有包名,该包名为 org.apache.jsp 。从图中还可以看出, HelloWorld.jsp 已被转换为源文件和 .class 文件。

打开HelloWorld_jsp.java 文件,可查看转换后的源代码,其主要代码如下所示。(以下代码可以快速浏览,确定父类和方法名即可)

image.png

image.png

从上面的代码可以看出,HelloWorld.jsp 文件转换后的源文件没有实现 Servlet 接口,但继承了org.apache.jasper.runtime.HttpJspBase 类。在 Tomcat 源文件中查看 HttpJspBase 类的源代码,具体如下所示:(以下代码可以快速阅读,确定父类即可)

image.png

image.png

从 HttpJspBase 源代码中可以看出, HttpJspBase 类是 HttpServlet 的一个子类,由此可HelloWorld_jsp类就是一个 Servlet 。 结论: JSP 就是 Servlet 。

相关文章
|
3天前
|
SQL 缓存 Oracle
JavaWeb之JSP(下)
这篇文档是关于Java Web中JSP(Java Server Pages)技术的主要内容包括:JSP的常用命令使用,EL表达式的概念,和使用,JSTL表达式的概念和使用方式的总结.
|
3天前
|
开发框架 前端开发 Java
JavaWeb之JSP(上)
这篇文档是关于Java Web中JSP(Java Server Pages)技术的介绍。作者首先说明了内容来源于个人在CSDN的原创文章,并遵循CC 4.0 BY-SA版权协议。文档主要内容包括:JSP的基本概念,它是一种动态网页技术,用于将页面逻辑与设计分离,便于开发快速、跨平台的Web应用。接着,讨论了JSP出现的原因,即为了改进servlet展示信息的不便。文档还详细介绍了如何在JSP中嵌入Java代码,包括声明、表达式和程序代码标签的使用,以及page指令的示例。
|
7天前
|
前端开发 JavaScript Java
Jsp在Javaweb中扮演什么角色?
Jsp在Javaweb中扮演什么角色?
13 1
|
4月前
|
存储 前端开发 Java
JavaWeb:servlet+jsp+mybatis商品管理增删改查
商品管理通常包括增加(添加)、删除、修改和查询商品信息
60 1
JavaWeb:servlet+jsp+mybatis商品管理增删改查
|
4月前
|
安全 Java
javaweb实训第四天下午——员工管理系统-JSP&Servlet&JDBC综合练习-CRUD
1.课程介绍 Servlet细节; (掌握) 员工信息相关的CRUD; (掌握) 部门信息相关的CRUD; (掌握) 2.Servlet细节 2.1.多种匹配方式
41 0
|
4月前
|
测试技术 数据库 数据安全/隐私保护
JavaWeb+JSP+SQL server学生学籍管理系统设计与实现(源代码+论文+开题报告+外文翻译+答辩PPT)
JavaWeb+JSP+SQL server学生学籍管理系统设计与实现(源代码+论文+开题报告+外文翻译+答辩PPT)
111 0
|
4月前
|
XML 安全 Java
JavaWeb有机果蔬商城系统有机蔬菜水果商城系统(分前后台javaWeb+jsp+jstl+css+js+mysql)
JavaWeb有机果蔬商城系统有机蔬菜水果商城系统(分前后台javaWeb+jsp+jstl+css+js+mysql)
|
4月前
|
Java 数据库 数据安全/隐私保护
基于javaWeb电子商城前后台管理系统网上商城系统(spring+mysql+jsp+jstl+css)
基于javaWeb电子商城前后台管理系统网上商城系统(spring+mysql+jsp+jstl+css)
|
4月前
|
前端开发 JavaScript Java
基于JavaWeb机票订购系统(含前后台)(Java+spring+jsp+bootstrap+mysql)
基于JavaWeb机票订购系统(含前后台)(Java+spring+jsp+bootstrap+mysql)
|
4月前
|
JavaScript 前端开发 Java
基于JavaWeb+jsp实现企业员工工资管理系统
基于JavaWeb+jsp实现企业员工工资管理系统