JSP指令用来设置整个JSP页面相关的属性,如网页的编码方式和脚本语言。
语法格式如下:
<%@ 指令 属性=“value” %>
多个属性之间使用逗号隔开
创建一个jsp文件后:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
上面是创建jsp文件后的自动生成的代码。下面说明:
page 指令介绍
Page指令为容器提供当前页面的使用说明。一个JSP页面可以包含多个page指令。
语法:<%@ page attribute=“value” %>
上面新建的jsp文件中自动生成的代码第一行就一个page指令。
里面的部分属性:
Language : 用来定义要使用的脚本语言;
contentType:定义 JSP 字符的编码和页面响应的 MIME 类型;
pageEncoding:Jsp 页面的字符编码
scriptlet 标签
通过 scriptlet 标签我们可以在 Jsp 里嵌入 Java 代码;
第一种:<%! %> 我们可以在里面定义全局变量、方法、类;
eg:
<%!
//jps全局变量
String str = "全局变量";
%>
<%!
//jps全局方法
public void func()
{
System.out.print("全局变量");
}
%>
<%!
class C{
String str1 = "全局类";
public void func1()
{
System.out.print("全局类");
}
}
%>
特别要注意的是,标签里的感叹号,局部变量标签里是没有感叹号的。
第二种:<% %> 我们可以在里面定义局部变量、编写语句;
第三种:<%= %> 我们可以在里面输出一个变量或一个具体内容;
<%=str %> //这样就会输出str
Jsp 注释
Html 注释 客户端可见
<%-- --%> Jsp 注释 客户端不可见
// java 单行注释
/* */ java 多行注释
Jsp 包含指令(include指令)
JSP可以通过include指令来包含其他文件。被包含的文件可以是JSP文件、HTML文件或文本文件。包含的文件就好像是该JSP文件的一部分,会被同时编译执行。
include 指令中的文件名实际上是一个相对的 URL 地址。如果您没有给文件关联一个路径,JSP编译器默认在当前路径下寻找。
include指令分为静态包含和动态包含。
静态包含
先包含,后编译处理
格式:
<%@ include file=”要包含的文件”%>
eg:
在项目中新建如下文件:
1.在WebContent文件夹下新建common文件夹,common文件夹下新建foot.jsp和head.html文件,并分别在body中写foot和head字符串。
2.在WebContent文件夹下新建include.jsp文件,在body中:
<body>
<h1>静态包含</h1>
<%@ include file="common/head.html"%>
<p>content</p>
<%@ include file="common/foot.jsp"%>
</body>
效果:
动态包含
先编译处理,后包含
格式:
<jsp:include page=”要包含的文件”/>
最后面有个反斜杠,一定不要忘记,我忘记了然后爆错了。
eg:
在上面的include文件中,将body中的内容改为如下:
<body>
<h1>动态包含</h1>
<jsp:include page="common/head.html"/>
<p>content</p>
<jsp:include page="common/foot.jsp"/>
</body>
效果:
与静态看起来一样,但里面执行是不一样的,并且,在以后开发中,使用动态包含。
Jsp 跳转指令
语法:
<jsp:forward>
<jsp:param value="" name=""/>
</jsp:forward>
例如:
在WebContent文件夹下新建before.jsp和after.jsp文件
在before.jsp文件中:
<body>
<jsp:forward page="after.jsp">
<jsp:param value="java1212" name="userName"/>
<jsp:param value="123456" name="passWord"/>
</jsp:forward>
</body>
中间两行,分别设置了两个变量,userName和passWord。
在after.jsp文件中:
<body>
服务器内部跳转后的页面<br/>
userName:<%=request.getParameter("userName") %><br/>
passWord:<%=request.getParameter("passWord") %>
</body>
后两行分别获取了两个变量的值
在网址中输入:
http://localhost:8080/bbb/jump/before.jsp
效果:
可以看到,本来打开的是before.jsp,但已经跳转到after中,并且,带回了before中的变量的值。
这叫服务器内部跳转。