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. ...
随机推荐
- LeetCode398-随机数索引
原题链接:[398. 随机数索引]:https://leetcode-cn.com/problems/random-pick-index/ 题目描述: 给定一个可能含有重复元素的整数数组,要求随机输出 ...
- 淘宝、网易移动端 px 转换 rem 原理,Vue-cli 实现 px 转换 rem
在过去的一段时间里面一直在使用Vue配合 lib-flexible和px2rem-loader配合做移动端的网页适配.秉着求知的思想,今天决定对他的原理进行分析.目前网上比较主流使用的就是淘宝方 ...
- 【Spring Framework】Spring入门教程(七)Spring 事件
内置事件 Spring中的事件是一个ApplicationEvent类的子类,由实现ApplicationEventPublisherAware接口的类发送,实现ApplicationListener ...
- Dubbo提供者的异步执行
从前面"对提供者的异步调用"例子可以看出,消费者对提供者实现了异步调用,消费者线程的执行过程不再发生阻塞,但提供者对IO耗时操作仍采用的是同步调用,即IO操作仍会阻塞Dubbo的提 ...
- Java RestTemplate传递参数
最近使用Spring 的 RestTemplate 工具类请求接口的时候发现参数传递的一个坑,也就是当我们把参数封装在Map里面的时候,Map 的类型选择. 使用RestTemplate post请求 ...
- 【Matlab】快速傅里叶变换/ FFT/ fftshift/ fftshift(fft(fftshift(s)))
[自我理解] fft:可以指定点数的快速傅里叶变换 fftshift:将零频点移到频谱的中间 用法: Y=fftshift(X) Y=fftshift(X,dim) 描述:fftshift移动零频点到 ...
- myfs 操作系统课内实验 文件管理系统 Ext2
To 学弟学妹们: 写这个随笔原意是记录一下这个很有趣的实验 ,记录一下写的时候的细节和思路. 要是光是抄这个代码,反而使得这个实验失去了意义. 加油,这个实验收获真的很大. 任务描述: 用一个空白文 ...
- Jenkins构建通知
目录 一.简介 二.推送到gitlab 三.邮件通知 自带配置 Email Extension 四.钉钉通知 五.脚本钉钉通知 六.HTTP请求通知 一.简介 类似于监控报警,jenkins在配置持续 ...
- tableau绘制饼图
一.将类别拖拽至列,将销售额拖拽至行 二.点击右上角智能显示选择饼图 三.拖拽销售额至标记卡,右键快速表计算-合计百分比-细节处理最终结果如下图所示
- Java后端高频知识点学习笔记1---Java基础
Java后端高频知识点学习笔记1---Java基础 参考地址:牛_客_网 https://www.nowcoder.com/discuss/819297 1.重载和重写的区别 重载:同一类中多个同名方 ...