全部章节   >>>>


本章目录

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. MySQL自我保护参数

    上文(MySQL自我保护工具--pt-kill )提到用pt-kill工具来kill相关的会话,来达到保护数据库的目的,本文再通过修改数据库参数的方式达到阻断长时间运行的SQL的目的. 1.参数介绍 ...

  2. Linux之sftp服务

    Linux之sftp服务 一.sftp介绍转自:[1]Linux如何开启SFTP https://www.cnblogs.com/xuliangxing/p/7120205.htmlSFTP是Secu ...

  3. NSMutableArray-->NSString

    1.如何把NSMutableArray 转化为NSString//用字符将NSArray中的元素拼接起来 NSArray *array = [NSArray arrayWithObjects:@&qu ...

  4. Java Spring 自定义事件监听

    ApplicationContext 事件 定义一个context的起动监听事件 import org.springframework.context.ApplicationListener; imp ...

  5. shell获取目录下(包括子目录)所有文件名、路径、文件大小

    一例shell脚本:取得目录下(包括子目录)所有文件名.路径与文件大小. 代码,shell脚本: lsdir.sh #!/bin/bash # #site: www.jquerycn.cn funct ...

  6. centos配置 显示中文

    目录 一.简介 二.操作 一.简介 不显示中文,出现这个情况一般是由于没有安装中文语言包,或者设置的默认语言有问题导致的. 二.操作 1.查看当前系统语言 登陆linux系统打开操作终端之后,输入 e ...

  7. spring切面-单线程简单权限判定

    spring切面简单模拟用户权限判定 需求: 游客:仅注册用户 用户:修改,注册 管理员:删除,查询,修改,注册 1,文件配置 导包 src下创建applicationContext.xml文件配置如 ...

  8. 工作簿拆分(Excel代码集团)

    一个工作簿中包括N个工作表,将各个工作表拆分成工作簿. 工作表数量不定,表内内容不限,拆分后保存于当前文件夹内. Sub Sample() Dim MySheetsCount As Long For ...

  9. CF508A Pasha and Pixels 题解

    Content 有一个 \(n\times m\) 的矩阵,一开始全部格子被染成白色. 接下来有 \(k\) 个操作,每一个操作表示把一个格子染成黑色.问第一次出现 \(2\times 2\) 的全部 ...

  10. CF116B Little Pigs and Wolves 题解

    Content 有一张 \(n\times m\) 的地图,其中,\(\texttt{P}\) 代表小猪,\(\texttt{W}\) 代表狼.如果狼的上下左右有一头以上的小猪,那么它会吃掉其中相邻的 ...