Java Web程序设计笔记 • 【第2章 JSP基础】
全部章节 >>>>
本章目录
2.1 JSP 简介
2.1.1 JSP 概述
Java Server Page 简称 JSP,是由 Sun 公司倡导建立的一种动态网页技术标准,用于开发动态网页
JSP就是将传统Java代码嵌入到Html页面代码中,由Web服务器进行编译执行,生成最终的静态Html返回客户端
JSP优点:
- 跨平台
- 安全
- 扩展性
- 伸缩性强
- 可重用性

2.1.2 开发第一个 JSP 页面
JSP 是动态网页,页面内不仅包含 HTML 代码,还包含 Java 代码,使用Eclipse可以创建Jsp页面
- 在Eclipse的Javaweb项目WebContent下,新建Jsp File
- 输入文件名

示例:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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=UTF-8">
<title>First JSP page</title>
</head>
<body>
<h1> 这是第一个 JSP 页面 </h1>
</body>
</html>
Jsp页面头部指令标识:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
将项目部署在Tomcat服务器中,启动服务器,测试访问JSP页面
注意:启动服务器时注意观察控制台输出信息,确保无异常发生


2.1.3 JSP 处理流程
浏览器无法直接运行JSP文件,只有将包含JSP文件的Web项目部署到Web服务器上,才能看到JSP的显示效果
当客户端浏览器向服务器发出请求访问一个JSP页面后,服务器根据该请求加载相应的JSP 页面,并对该页面进行转换、编译和执行

2.1.4 实践练习
2.2 JSP 指令标识
2.2.1 JSP指令
JSP 页面就是带有 JSP 元素的常规 Web 页面,它由静态内容和动态内容构成
其中动态内容包括以下几种:
- 指令标识
- 脚本标识
- 注释标识
2.2.2 指令标识
指令标识主要用于设定在整个 JSP 页面范围内都有效的相关设置信息,它是被服务器解释并执行的,不会产生任何内容输出到网页中
<%@ 指令名 属性 1=“属性值 1” 属性 2=“属性值 2”...%>
(1)指令名:用于指定指令名称,在 JSP 中包含 page、include 和 taglib 3 个指令。
(2)属性:用于指定属性名称,不同的指令包含不同的属性。在一个指令中,可以设置多个属性,属性之间用逗号或空格隔开。
(3)属性值:用户指定属性值。
示例:
<%@page language=“java” contentType=“text/html” charset=“UTF-8” pageEncoding=“UTF-8”%>
language 属性。该属性用于设置 JSP 页面使用的语言,该属性的默认值为 Java
import 属性。该属性用于设置 JSP 导入的类包。在 JSP 页面中导入类包的代码片段,如 <%@page import=“java.util.*”%>
pageEncoding 属性。用于设置 JSP 页面的编码格式,即指定页面编码,支持中文一般设置为GBK或UTF-8
contentType 属性。该属性用于设置 JSP 页面的 MIME 类型和字符编码,浏览器会根据 contentType 中指定的 MIME 类型和字符集编码来显示 JSP 输出的内容,常见MIME格式如下
|
MIME |
作用 |
|
application/msword |
Word 文档 |
|
application/pdf |
PDF文档 |
|
audio/x-wav |
Wav 格式的音频文件 |
|
text/html |
HTML 格式 |
|
text/plain |
普通文档 |
|
image/jpeg |
JPEG 格式 |
2.2.3 include 指令
include 指令可以在一个 JSP 页面中包含另一个页面,常用于多页面共同的部分抽离出来(如顶部导航、底部版权等),使用时直接引用,以提升开发维护效率
格式:<%@include file=“包含文件路径”%>

示例:将网站网页头部导航条和网页底部版权信息栏,包含在主页面内
top.jsp设计顶部导航等信息
<%@include file="nav.jsp"%>
copyright.jsp设计底部版权信息
<%@ include file="copyright.jsp"%>
Index.jsp首页包含top.jsp和copyright.jsp
<body>
<%@include file="nav.jsp"%>
首页自身代码省略……
<%@ include file="copyright.jsp"%>
</body>

注意:在应用 include 指令包含文件时,为使整个页面的层次结果不发生冲突,应将被包含页面中的 <html> 元素和 <body> 元素删除,因为包含该页面的文件中已经指定了这些标记
2.2.4 taglib指令
在 JSP 文件中,可以通过 taglib 指令声明该页面中所使用的标签库,同时引用标签库,并指定标签前缀,在页面中引用标签库后,就可以通过前缀引用标签库中的标签
<%@taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
2.2.5 实践练习
2.3 JSP 脚本标识
2.3.1 声明标识
声明标识用于在 JSP 页面中定义全局的变量或方法,通常使用该标识定义整个 JSP 页面需要引用的变量或方法
语法:
<%! 声明变量或方法代码 %>
注意:
<% 与 ! 之间不可以有空格,但是 ! 与其后的代码之间可以有空格。
<%! 与 %> 可以不在同一行,如下面的格式也是正确的:
<%!
声明变量或方法的代码
%>
示例:声明标识声明一个全局变量和全局方法,用来统计页面的访问次数。
<%!
int number = 0;// 声明全局变量
int count() {
number++;//number 自增
return number;
}%>
<p class="title1">
<span class="fl"> 这是第 <%=count()%> 次访问该页面
</span>
</p>
2.3.2 JSP 表达式
JSP 表达式用于向页面中输出信息,类似于System.out.println()括号中的内容
语法:
<%= 表达式或者变量名 %>
注意:①<% 与 =号之间不允许有空格,其后面只要符合输出语句中语法即可②最后不要加;号
示例:声明标识声明一个全局变量和全局方法,用来统计页面的访问次数。

<ul class="dian">
<%
String paint01 = " 夏塘清趣 ";//脚本用于声明变量
String paint02 = " 事茗图 ";
String paint03 = " 渔父图 ";
%>
<li><a href="#"><%=paint01%></a></li>//表达式用于输出结果到网页上
<li><a href="#"><%=paint02%></a></li>
<li><a href="#"><%=paint03%></a></li>
</ul>
2.3.3 Scriptlet 脚本程序
Scriptlet(代码片段)脚本程序,是在 JSP 页面中嵌入的 Java 代码或脚本代码
- 代码片段将在页面请求的处理期间被执行,通过 Java 代码可以定义变量或流程控制语句等
语法:
<% 表达式或者变量名 %>
- 注意<%后面没有任何符号标志
- 脚本中的代码必须符合java语法规范
示例:使用 JSP 脚本定义变量信息
<ul class="dian">
<%
String paint01 = " 夏塘清趣 ";//脚本用于声明变量
String paint02 = " 事茗图 ";
String paint03 = " 渔父图 ";
%>
<li><a href="#"><%=paint01%></a></li>//表达式用于输出结果到网页上
<li><a href="#"><%=paint02%></a></li>
<li><a href="#"><%=paint03%></a></li>
</ul>

说明:
- 通过声明标识创建的变量和方法,生命周期是从创建开始到服务器关闭结束;而脚本片段创建的变量和代码,其生命周期在页面关闭后,就会被销毁
- 脚本一般用于声明变量、计算、逻辑判断及循环控制,而表达式则仅用于输出内容
2.3.4 实践练习
2.4 注释标识
2.4.1 JSP 注释
注释用于对某些代码做功能性的说明,从而增加程序的可读性。JSP 程序中可以包含 3 种不同类型的注释
1、JSP 标准注释
<%-- JSP标准注释 --%>
JSP标准注释在客户端浏览器无法查看到
2、Java 注释
<%
//Java单行注释
/*
Java多行注释
*/
%>
Java注释在客户端浏览器中也无法看到
3、HTML 注释
<!-- HTML网页注释 -->
HTML网页注释在客户端浏览器可以看到
2.4.2 综合案例
示例:新闻展示页面制作,使用注释完成代码说明:
<ul class="jiantou">
<%
//调用声明的方法,得到数据,准备循环
List<String> paintList = getList();
for (int i = 0; i < paintList.size(); i++) {
%>
<li><a href="#"><%=paintList.get(i)%></a></li>
<%
}
%>
</ul>
新闻展示页面制作,运行结果图

2.4.3 实践练习
总结:
- Java Server Page 简称 JSP,是一种在Html中嵌入Java代码的动态网页技术,具有跨平台、安全、重用性强等优点
- 客户端通过浏览器访问Web服务器中的Jsp页面时,服务器会将Jsp进行转换、编译、执行,最终返回给客户端生成的静态Html代码页面
- Jsp中嵌入Java代码时可以通过声明、脚本、表达式几种不同的方式
- Jsp页面中的注释有Jsp标准注释、Java注释及Html注释几种
Java Web程序设计笔记 • 【第2章 JSP基础】的更多相关文章
- Java Web程序设计笔记 • 【目录】
章节 内容 实践练习 Java Web程序设计作业目录(作业笔记) 第1章 Java Web程序设计笔记 • [第1章 Web应用程序] 第2章 Java Web程序设计笔记 • [第2章 JSP基础 ...
- Java Web程序设计笔记 • 【第6章 Servlet技术进阶】
全部章节 >>>> 本章目录 6.1 应用 Servlet API(一) 6.1.1 Servlet 类的层次结构 6.1.2 使用 Servlet API 的原则 6.1 ...
- Java Web程序设计笔记 • 【第5章 Servlet技术】
全部章节 >>>> 本章目录 5.1 Servlet 技术介绍 5.1.1 为什么需要Servlet 5.1.1 Servlet 简介 5.1.2 Java Web 处理流 ...
- Java Web程序设计笔记 • 【第1章 Web应用程序】
全部章节 >>>> 本章目录 1.1 Web 应用程序 1.1.1 Web 应用程序概述 1.1.2 Web 应用程序的工作原理 1.1.3 实践练习 1.2 HTTP协议 ...
- Java Web学习总结(14)——JSP基础语法
任何语言都有自己的语法,JAVA中有,JSP虽然是在JAVA上的一种应用,但是依然有其自己扩充的语法,而且在JSP中,所有的JAVA语句都可以使用. 一.JSP模版元素 JSP页面中的HTML内容称之 ...
- Java Web程序设计笔记 • 【第4章 JavaBean和JSP标准动作】
全部章节 >>>> 本章目录 4.1 JavaBean 4.1.1 JavaBean 概述 4.1.2 JavaBean的重要性 4.1.3 JavaBean的特点 4.1 ...
- Java Web程序设计笔记 • 【第3章 JSP内置对象】
全部章节 >>>> 本章目录 3.1 JSP 内置对象简介 3.1.1 JSP 内置对象概述 3.1.2 JSP 表单处理 3.1.2 request对象 3.1.2 开发 ...
- Java Web程序设计笔记 • 【第9章 EL表达式】
全部章节 >>>> 本章目录 9.1 EL 表达式基础 9.1.1 EL 表达式简介 9.1.2 EL 表达式的定义 9.1.3 使用 EL 访问变量 9.1.4 使用 E ...
- Java Web程序设计笔记 • 【第10章 JSTL标签库】
全部章节 >>>> 本章目录 10.1 JSTL 概述 10.1.1 JSTL 简介 10.1.1 JSTL 使用 10.1.2 实践练习 10.2 核心标签库 10.2. ...
随机推荐
- 【leetcode】565. Array Nesting
You are given an integer array nums of length n where nums is a permutation of the numbers in the ra ...
- C++基本函数的调用优化(构造、拷贝构造、赋值)
合理的函数可提升时间和空间的利用率 //Test1.h #include<iostream> using namespace std; struct ST { private: int a ...
- spring-dm 一个简单的实例
spring-dm2.0 运行环境,支持JSP页面 运行spring web 项目需要引用包
- 一个简单的Extjs继承实现
function extend(sub,sup){ //目地:实现只继承父类的原型对象 //1.用一个空函数据中转,目地进行中转 var F = new Function(); //2.实现空函数的的 ...
- maven项目install时忽略执行test
1.在项目所在文件夹根目录使用maven命令打包时: <!-- 不执行单元测试,也不编译测试类 --> mvn install -Dmaven.test.skip=true 或 <! ...
- 3.Vue.js-目录结构
Vue.js 目录结构 上一章节中我们使用了 npm 安装项目,我们在 IDE(Eclipse.Atom等) 中打开该目录,结构如下所示: 目录解析 目录/文件 说明 build 项目构建(webpa ...
- 1945-祖安 say hello-String
1 #define _CRT_SECURE_NO_WARNINGS 1 2 #include<bits/stdc++.h> 3 char str[100][40]; 4 char s[10 ...
- dart系列之:浏览器中的舞者,用dart发送HTTP请求
目录 简介 发送GET请求 发送post请求 更加通用的操作 总结 简介 dart:html包为dart提供了构建浏览器客户端的一些必须的组件,之前我们提到了HTML和DOM的操作,除了这些之外,我们 ...
- FlashFXP链接到服务器上,如果www目录下的文件隐藏
FlashFXP链接到服务器上,如果www目录下的文件隐藏,那么请按照如下设置,就可以显示隐藏的文件了 [站点]->[站点管理器]->选项,然后按照如下设置:
- InnoDB学习(五)之数据库锁
InnoDB存储引擎的默认隔离级别事可重复读,MVCC多版本并发控制仅仅解决了快照读情况下的数据隔离,而对于当前读,InnoDB通过锁来进行并发控制. InnoDB锁 本文主要参考了MySQL官方文档 ...