JSP指令、动作 引入详解
include 指令
使用的是静态包含的方式,它会在 JSP 页面编译时将被包含的文件内容直接插入到当前页面的代码中,生成一个新的 JSP 页面。因此,当被包含的文件内容发生改变时,需要重新编译整个 JSP 页面才能应用更改。
指令引入的界面特点
<%@ include file="footer.jsp" %>
include 动作
则使用的是动态包含的方式,它会在处理请求时动态地将被包含的文件内容插入到当前页面的输出流中,而不是在编译时将其插入到代码中。这种方式更加灵活,可以对被包含的文件进行实时更新,而不需要重新编译整个 JSP 页面。
动作引入的界面特点
<jsp:include page="header.jsp" flush="true"></jsp:include>
<jsp:include page="footer.jsp" flush="true"></jsp:include>
指令引入 动作引入的区别
JSP界面做一个简单地“三明治”网页
-
小米官网(www.xiaomi.com)的首页有页眉 跟 页脚 并且点开每一个商品 页眉页脚都是相同的
-
要考虑的是,不可能每个商品文件都加入那么多段代码,就可以引入一个页眉文件和一个页脚文件,引入方法如下
secound.jsp (指令引入)的整段代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 以下是引入页眉文件 -->
<%@ include file="header.jsp" %>
<h1>这是内容</h1>
<!-- 以下是引入页脚文件 -->
<%@ include file="footer.jsp" %>
</body>
</html>
- 需要注意的是引入的文件中不能包括有标签/框架的结构,不然等于有两个结构就会报错
header.jsp 的整段代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<h1>这是头部页面文件</h1>
footer.jsp 的整段代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<h1>这是尾部页面文件</h1>
- 以上是指令引入的方法,下面是动作引入的方法
third.jsp (动作引入)的整段代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 以下是引入页眉文件 -->
<jsp:include page="header.jsp" flush="true"></jsp:include>
<h1>这是第三页内容区域</h1>
<!-- 以下是引入页脚文件 -->
<jsp:include page="footer.jsp" flush="true"></jsp:include>
</body>
</html>
5.以下是执行成功的图片
动作介绍
forward动作(实现界面的跳转操作)
动作语法是 JSP 中的一种语法,用于在 JSP 页面中插入 Java 代码片段。其中,主要包括以下几种动作:
-
include 动作:用于将一个 JSP 页面包含到另一个 JSP 页面中,可以实现代码的重用。
-
forward 动作:用于将一个请求转发到另一个 JSP 页面或 Servlet 中,不会改变请求的 URL。forward动作(实现界面的跳转操作)
-
param 动作:用于设置请求参数,可以将参数传递给另一个 JSP 页面或 Servlet。
-
useBean 动作:用于创建 JavaBean 实例,可以在 JSP 页面中使用该实例的属性和方法。
-
setProperty 动作:用于设置 JavaBean 实例的属性值。
-
getProperty 动作:用于获取 JavaBean 实例的属性值。
通过这些动作,程序员可以在 JSP 页面中方便地嵌入 Java 代码,实现更加灵活和复杂的业务逻辑。
JAVA学习笔记
基本语法(4.7
1. Java语言的基本语法:
-
Java程序基本结构
Java程序所构成的基本结构是类(class)。每个Java程序必须有一个类,类可以包含多个方法和变量。Java程序的执行从main()方法开始,当虚拟机执行到main()方法时,就会开始执行程序。 -
注释
在Java程序中,可以使用// 和/* /两种方式来添加注释。其中//表示单行注释,/ */表示多行注释。 -
数据类型
Java语言中的数据类型主要分为基本数据类型和复合数据类型,基本数据类型包括整型、浮点型、布尔类型等,复合数据类型则包括数组、类、接口等。 -
变量
在Java中,可以定义各种类型的变量,变量必须先声明后才能使用,并且在使用时必须初始化。 -
运算符
Java语言支持各种运算符,包括算术运算符、关系运算符、逻辑运算符等。运算符具有不同的优先级,也可以使用括号改变运算顺序。 -
控制流程
Java语言提供了多种控制流程语句,包括if-else语句、while循环语句、for循环语句、switch语句等,这些控制流程语句使得程序的执行可以根据不同的条件做出不同的响应。
2. Java语言的关键字:
作为一个Java程序员,必须了解Java语言中的关键字,以下是Java关键字列表:
关键字 | 说明 |
---|---|
abstract | 声明抽象 |
assert | 断言表达式是否为真 |
boolean | 布尔类型 |
break | 跳出当前循环 |
byte | 8位整型 |
case | switch语句中的一种情况 |
catch | 捕捉异常 |
char | 字符类型 |
class | 定义类 |
const | 常量,已过时 |
continue | 继续执行下一次循环 |
default | switch语句中的默认情况 |
do | 循环语句 |
double | 双精度浮点型 |
else | 条件分支语句 |
enum | 定义枚举类型 |
extends | 继承一个类或实现一个接口 |
final | 定义常量或禁止被继承 |
finally | 异常处理代码块的最后部分 |
float | 单精度浮点型 |
for | 循环语句 |
goto | 跳转到指定的代码段 |
if | 条件分支语句 |
implements | 实现一个接口 |
import | 引用一个类 |
instanceof | 测试一个对象是否为指定类的实例 |
int | 整型 |
interface | 定义接口 |
long | 长整型 |
native | 指定方法调用本地方法库 |
new | 创建新的对象 |
package | 声明类的访问域 |
private | 定义私有访问 |
protected | 定义受保护的访问 |
public | 定义公共访问 |
return | 返回值 |
short | 短整型 |
static | 定义静态变量或方法 |
strictfp | Java浮点计算精度规范 |
super | 引用父类对象 |
switch | 多分支选择语句 |
synchronized | 线程锁 |
this | 当前对象 |
throw | 抛出异常 |
throws | 声明方法可能抛出的异常 |
transient | 指定变量不能被序列化 |
try | 异常处理 |
void | 无返回值 |
volatile | 指定变量可以同时被多个线程控制 |
while | 循环语句 |
Java关键字可以分为以下几类:
类型定义相关
class:用于定义类。
interface:用于定义接口。
enum:用于定义枚举类型。
访问修饰符相关
private:定义私有的成员变量和方法,只能在类内部被访问。
protected:定义受保护的成员变量和方法,可以在继承类或者同一包中被访问。
public:定义公共的成员变量和方法,可以被任何类访问。
default(不写修饰符):定义当前类、同一包中的类可以访问。
控制流程相关
if、else:控制语句中的条件判断。
for、while、do-while:控制流程语句,实现循环。
break:跳出当前循环。
continue:结束当前循环,进入下一次迭代。
switch、case、default:控制语句,实现多个分支结构。
return:返回值,结束方法调用。
异常处理相关
try、catch、finally:捕捉和处理异常。
throw:抛出一个异常。
throws:声明一个可能会抛出异常的方法。
其他关键字
static:静态变量或静态方法的关键字。
final:声明常量或不能被继承的类或方法的关键字。
new:创建对象的关键字。
instanceof:测试对象是否为指定类或接口的实例。
super:调用父类构造函数、方法、属性。
this:指向当前对象。
void:表示方法返回值为空。
3. Java语言的标识符:
Java语言的标识符
是用来命名变量、方法、类、接口等程序元素的名称,需要遵循以下规则:
- 标识符由字母、数字、$和_组成,但不能以数字开头
- 标识符区分大小写,例如helloWorld和helloworld是不同的标识符
- 不能使用Java关键字作为标识符,例如class和public是Java关键字,不能作为标识符使用
- 标识符的长度理论上没有限制,但应该尽可能简短明了,方便阅读和理解
- 除此之外,有一些命名规范建议也需要遵守,例如:类名使用大驼峰命名法(每个单词的首字母大写),例如StudentInfo
变量名和方法名使用小驼峰命名法(第一个单词的首字母小写,其他单词的首字母大写),例如studentName
常量名使用全部大写字母,单词之间用下划线分隔,例如MAX_VALUE
4. Java语言的注释:
在Java中,注释
是一种用于解释代码的特殊文本,编译器会将其忽略。注释可以分为单行注释
和多行注释
两种类型。
单行注释
以双斜杠(//)开头,在该符号后面的所有内容都被视为注释。例如:
// This is a single-line comment.
多行注释
以斜杠星号(/)开头,以星号斜杠(/)结束,其中的所有内容都被视为注释。例如:
/*
* This is a multi-line comment.
* It can span multiple lines and is used to explain complex code or provide documentation.
*/
Javadoc
此外,还有一种特殊类型的注释称为 Javadoc,它是一种特殊的多行注释,用于文档生成器生成 API 文档。Javadoc 的语法要求在注释块中使用特定标记来描述代码元素(如类、方法和变量),例如:
/**
1. This is a Javadoc comment for a class.
*/
public class MyClass {
/**
* This is a Javadoc comment for a method.
*
* @param arg1 The first argument
* @param arg2 The second argument
* @return The result of the method
*/
public int myMethod(int arg1, int arg2) {
// Method body here
}
}
Javadoc 注释可以通过 javadoc 工具生成 HTML 文档。这些文档可以用于更好地理解代码,并帮助其他开发人员使用您的 API。
5. Java语言的代码风格:
Java编码风格
是编写Java代码时应该遵循的一些规范和约定。以下是新学者应该了解的一些Java编码风格原则:
2. 使用大小写混合的驼峰命名法(CamelCase)来命名类、方法等变量,首字母小写。例如:myVariableName
-
使用大写字母开头的驼峰命名法(PascalCase)来命名常量。例如:MY_CONSTANT_NAME
-
缩进采用4个空格。
-
使用紧凑的if语句,必要时加上括号。例如:if (x > 0) { doSomething(); }
-
使用花括号包围多行语句块,且花括号应位于语句块前面的同一行。例如:
java
public void myMethod() {
if (x > 0) {
doSomething();
} else {
doSomethingElse();
}
}
-
使用单行注释(//)或Javadoc注释来解释代码和方法用途。
-
每行不要超过80个字符。
-
避免使用魔术数(原始值),而是定义常量进行赋值。
-
使用try-catch语句处理异常,并在finally块中清理资源。
-
避免在条件语句中使用赋值语句,应该将赋值语句提到条件语句外面。