JSP 动态网页

2018-08-27  本文已影响13人  夏海峰

1、什么是 JSP ?

Java 服务器页面(Java Server Page),它是由 SUN 公司倡导的一种动态网页技术标准,可以把它理解为 简化的 Servlet 设计,它实现了在 HTML 中的 Java 扩展。

JSP = HTML + Java + JSP标签。即 .jsp 文件是由 HTML标签、Java代码和 JSP标签三者共同构成的。

2、JSP 和 Servlet 的对比与异同

前者更侧重于页面视图的表示,后者更侧重于逻辑的控制。
前者的部分 API 是内置 Java语言中的,而后者在 Java语言中是没有内置对象的。
从本质来讲,JSP 是 Servlet 的一种简化(因为经过 JSP 容器处理后,.jsp 文件最终还是被编译成了 Servlet,编译成了更为复杂的 Servlet 类文件)。Tomcat 既是 Servlet的容器,也是 JSP 的容器。

3、JSP 的工作流程是怎样的?

JSP的工作流程

如上图示,当客户端请求 .jsp 文件时,JSP 容器收到请求后,会把 .jsp 文件转换成 Servlet 的 .java 文件,再编译成 .class 字节码文件,然后执行执行这个 Servlet 实例,最后再把 Servlet 的执行结果返回至客户端进行页面视图的显示。由此可见,JSP 确实是 Servlet 的简化。

4、JSP 的基本语法

JSP 语法构成

除了静态内容以外,其它元素如 指令、注释、表达式、声明和脚本都是需要 JSP引擎解释并处理的。
(1)JSP 声明:一个 JSP 声明语句可以声明一个或多个变量和方法,以供后面的 Java 代码使用。

语法:<%! 一个或多个声明语句 %>
示例:<%! int a, b, c; %>

(2)JSP 表达式:表达式元素中可以包含任何符合 Java 语言规范的表达式,但是表达式的结尾不能使用分号。

语法:<%= 表达式 %>
示例:<p>Today's date: <%= (new java.util.Date()).toLocaleString() %></p>

(3)JSP 脚本:脚本中可以包含任意数量的 Java 语句、变量、方法或表达式。

语法:<% Java 代码片段 %>
示例:<% out.println("Your IP address is " + req.getRemoteAddr()); %>

(4)JSP 注释:注释主要用于为代码提供注释说明,以及将某段代码注释掉。

语法:<%-- 注释 --%>
示例:<%-- String name = "geekxia"; --%>

(5)JSP 指令:所谓指令并不会直接产生任何输出,而是控制输出,以告诉 JSP 引擎如何做处理。

page 指令:用于定义 JSP 页面中所需要的依赖属性,比如脚本语言、error 页面、缓存需求等。
include 指令:用于引入当前 JSP 页面之外的其它静态资源文件或者 JSP 页面。
taglib 指令:用于引入标签库的定义,还可以指定标签的前缀。

5、Java 语言中有哪些内置的 JSP 对象?

Servlet 在 Java语言中是没有内置对象的,JSP 在 Java语言中有如下 9 个内置对象,这 9 个内置对象在 .jsp 文件中可以直接使用。其中前 6 个对象与 Servlet 中的对象相同,后 3 个对象是 JSP 特有的。

JSP 内置对象-1 JSP 内置对象-2

JSP 测试示例代码如下:创建一个 .jsp 文件,并置于 Web项目的根目录。

// hello.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>

<%!-- 这是 JSP 注释 --%>
<%! String name; %>
你的 URL 地址是:<%= request.getRequestURI() %>
    
<br />

<%
    name = "geekxia";
    out.println("你的名字是:" + name);
%>
</body>
</html>

在如上的 .jsp 文件中,使用到了 page 指令、JSP注释、JSP 表达式、JSP 声明、JSP 脚本,还有 html 标签。在浏览器的地址栏中输入 "http://localhost:8080/servlet-lesson/hello.jsp" 即可访问测试。

注:经过 JSP 容器(Tomcat)加工处理后得到的 .java 文件 和 .class 文件(即更为复杂的 Servlet 类文件),可以在 D:\Tomcat\work\Catalina 目录中查找并查看。


本节完!!!
上一篇下一篇

猜你喜欢

热点阅读