全部章节   >>>>


本章目录

2.1 JSP 简介

2.1.1 JSP 概述

2.1.2 开发第一个 JSP 页面

2.1.3 JSP 处理流程

2.1.4 实践练习

2.2 JSP 指令标识

2.2.1 JSP指令

2.2.2 指令标识

2.2.3 include 指令

2.2.4 taglib指令

2.2.5 实践练习

2.3 JSP 脚本标识

2.3.1 声明标识

2.3.2 JSP 表达式

2.3.3 Scriptlet 脚本程序

2.3.4 实践练习

2.4 注释标识

2.4.1 JSP 注释

2.4.2 综合案例

2.4.3 实践练习

总结:


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基础】的更多相关文章

  1. Java Web程序设计笔记 • 【目录】

    章节 内容 实践练习 Java Web程序设计作业目录(作业笔记) 第1章 Java Web程序设计笔记 • [第1章 Web应用程序] 第2章 Java Web程序设计笔记 • [第2章 JSP基础 ...

  2. Java Web程序设计笔记 • 【第6章 Servlet技术进阶】

    全部章节   >>>> 本章目录 6.1 应用 Servlet API(一) 6.1.1 Servlet 类的层次结构 6.1.2 使用 Servlet API 的原则 6.1 ...

  3. Java Web程序设计笔记 • 【第5章 Servlet技术】

    全部章节   >>>> 本章目录 5.1 Servlet 技术介绍 5.1.1 为什么需要Servlet 5.1.1 Servlet 简介 5.1.2 Java Web 处理流 ...

  4. Java Web程序设计笔记 • 【第1章 Web应用程序】

    全部章节   >>>> 本章目录 1.1 Web 应用程序 1.1.1 Web 应用程序概述 1.1.2 Web 应用程序的工作原理 1.1.3 实践练习 1.2 HTTP协议 ...

  5. Java Web学习总结(14)——JSP基础语法

    任何语言都有自己的语法,JAVA中有,JSP虽然是在JAVA上的一种应用,但是依然有其自己扩充的语法,而且在JSP中,所有的JAVA语句都可以使用. 一.JSP模版元素 JSP页面中的HTML内容称之 ...

  6. Java Web程序设计笔记 • 【第4章 JavaBean和JSP标准动作】

    全部章节   >>>> 本章目录 4.1 JavaBean 4.1.1 JavaBean 概述 4.1.2 JavaBean的重要性 4.1.3 JavaBean的特点 4.1 ...

  7. Java Web程序设计笔记 • 【第3章 JSP内置对象】

    全部章节   >>>> 本章目录 3.1 JSP 内置对象简介 3.1.1 JSP 内置对象概述 3.1.2 JSP 表单处理 3.1.2 request对象 3.1.2 开发 ...

  8. Java Web程序设计笔记 • 【第9章 EL表达式】

    全部章节   >>>> 本章目录 9.1 EL 表达式基础 9.1.1 EL 表达式简介 9.1.2 EL 表达式的定义 9.1.3 使用 EL 访问变量 9.1.4 使用 E ...

  9. Java Web程序设计笔记 • 【第10章 JSTL标签库】

    全部章节   >>>> 本章目录 10.1 JSTL 概述 10.1.1 JSTL 简介 10.1.1 JSTL 使用 10.1.2 实践练习 10.2 核心标签库 10.2. ...

随机推荐

  1. LeetCode398-随机数索引

    原题链接:[398. 随机数索引]:https://leetcode-cn.com/problems/random-pick-index/ 题目描述: 给定一个可能含有重复元素的整数数组,要求随机输出 ...

  2. 淘宝、网易移动端 px 转换 rem 原理,Vue-cli 实现 px 转换 rem

       在过去的一段时间里面一直在使用Vue配合 lib-flexible和px2rem-loader配合做移动端的网页适配.秉着求知的思想,今天决定对他的原理进行分析.目前网上比较主流使用的就是淘宝方 ...

  3. 【Spring Framework】Spring入门教程(七)Spring 事件

    内置事件 Spring中的事件是一个ApplicationEvent类的子类,由实现ApplicationEventPublisherAware接口的类发送,实现ApplicationListener ...

  4. Dubbo提供者的异步执行

    从前面"对提供者的异步调用"例子可以看出,消费者对提供者实现了异步调用,消费者线程的执行过程不再发生阻塞,但提供者对IO耗时操作仍采用的是同步调用,即IO操作仍会阻塞Dubbo的提 ...

  5. Java RestTemplate传递参数

    最近使用Spring 的 RestTemplate 工具类请求接口的时候发现参数传递的一个坑,也就是当我们把参数封装在Map里面的时候,Map 的类型选择. 使用RestTemplate post请求 ...

  6. 【Matlab】快速傅里叶变换/ FFT/ fftshift/ fftshift(fft(fftshift(s)))

    [自我理解] fft:可以指定点数的快速傅里叶变换 fftshift:将零频点移到频谱的中间 用法: Y=fftshift(X) Y=fftshift(X,dim) 描述:fftshift移动零频点到 ...

  7. myfs 操作系统课内实验 文件管理系统 Ext2

    To 学弟学妹们: 写这个随笔原意是记录一下这个很有趣的实验 ,记录一下写的时候的细节和思路. 要是光是抄这个代码,反而使得这个实验失去了意义. 加油,这个实验收获真的很大. 任务描述: 用一个空白文 ...

  8. Jenkins构建通知

    目录 一.简介 二.推送到gitlab 三.邮件通知 自带配置 Email Extension 四.钉钉通知 五.脚本钉钉通知 六.HTTP请求通知 一.简介 类似于监控报警,jenkins在配置持续 ...

  9. tableau绘制饼图

    一.将类别拖拽至列,将销售额拖拽至行 二.点击右上角智能显示选择饼图 三.拖拽销售额至标记卡,右键快速表计算-合计百分比-细节处理最终结果如下图所示

  10. Java后端高频知识点学习笔记1---Java基础

    Java后端高频知识点学习笔记1---Java基础 参考地址:牛_客_网 https://www.nowcoder.com/discuss/819297 1.重载和重写的区别 重载:同一类中多个同名方 ...