JSP的基本语法

一. JSP(Java Server Page)概述

1. 定义

JSP(Java Server Page)将动态代码嵌入到静态的HTML中,从而产生动态的输出。

JSP运行于服务器端,能够对客户端展现内容、变化网页文档以及处理用户提交的表单数据

宏观来说:JSP就是在HTML中嵌套java代码

2. JSP是一个动态网页

静态和动态的区别:

1. 不用和是否有动感混为一谈
2. 是否随着时间、地点、用户操作的改变而改变

动态网页需要使用到 服务端脚本语言(JSP)

3. 注意事项

jsp页面是由JSP容器执行该页面的Java代码部分,然后实时生成的HTML页面,因此说他是服务器端的动态页面,

在客户端源代码中是看不到Java代码的

一般而言,修改了web.xml、配置文件、java需要重启tomcat服务
但是如果修改了jsp\html\css\js,不需要重启

二. JSP页面元素

1. 注释

(1). HTML注释

1. 定义

能够发送给客户端,可以在源代码文件中显示其内容

2. 语法
<!-- 注释内容 -->

(2). JSP注释

1. 定义

不会再客户端的源代码文件中显示其内容,仅提供给程序员阅读

注释内容不会被编译,不会被执行,这些内容不会发到客户端

2. 语法
<% -- 注释内容 -- %>

(3). Java注释

//注释内容
/* 注释内容 */

2. 指令

(1). 定义

JSP指令告诉JSP引擎对JSP页面如何编译,不包括控制逻辑,不会产生任何可见的输出
在这里插入图片描述

(2). 语法

<%@ 指令类型 属性1="属性值1"...属性n="属性值n" %>

(3). 分类

指令内容
<%@ page … %>定义网页依赖属性,比如脚本语言、error页面、缓存需求等
<%@ include … %>包含其他文件
<%@ taglib … %>引入标签库的定义

(4). page指令

用来设定页面的属性和相关功能,用户可以利用其进行导入需要的类,指明JSP输出的内容的类型,指定处理异常的错误页面等操作

与Page指令相关的属性:

属性描述
buffer指定out对象使用缓冲区的大小
autoFlush控制out对象的 缓存区
contentType指定当前JSP页面的MIME类型和字符编码
errorPage指定当JSP页面发生异常时需要转向的错误处理页面
isErrorPage指定当前页面是否可以作为另一个JSP页面的错误处理页面
extends指定servlet从哪一个类继承
import导入要使用的Java类
info定义JSP页面的描述信息
isThreadSafe指定对JSP页面的访问是否为线程安全
language定义JSP页面所用的脚本语言,默认是Java
session指定JSP页面是否使用session
isELIgnored指定是否执行EL表达式
isScriptingEnabled确定脚本元素能否被使用
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

作用:设置当前页面的参数,指导tomcat编译当前文件的类型。通常page指令的参数不需要我们手动设置。
  
page指令常用参数:
    language="java" 支持的语言
	contentType="text/html; charset=UTF-8" 内容类型
	pageEncoding="UTF-8" 页面的编码格式
	import="java.util.List,java.util.ArrayList" 导入对象:导入某个类对象
	autoFlush="true" 自动刷新
	errorPage="03-error.jsp" 如果当前页面抛异常 跳转指定页面
	session="true" 当前页面中可以直接使用该对象
	isELIgnored="false" 是否忽略EL表达式
1. 导入包

编程用到JDK的其他类,需要导入

语法:

<% @page import= "包名.类名|包名.*|包名.类名1,包名.类名2"%>
2. 设定字符集

pageEncoding:jsp文件自身编码 jsp——>java

3. 设定错误页面

errorPage属性的作用:指定一个页面,当JSP程序出现未被捕获的异常时跳转到这个指定的页面

跳转到的页面需要使用isErrorPage属性指明处理其他页面的错误信息

4. 设定MIME类型和字符编码

contentType:浏览器解析jsp的编码

(5). include指令

include指令:将其他页面的内容包含到当前页面来一起执行编译。

使用场景:通常使用一些公共代码的时候可以使用。比如:网页头部、底部代码、重复性的代码。

语法: <%@ include file="time.jsp"%>

参数说明:file表示当前页面包含的页面路径名称。

代码示例:
<%@page contentType="text/html;charset=UTF-8" language="java"%>

<html>
<head>
    <title>Title</title>
</head>
<body>
<p>
    <a href="#">百度一下</a>
    <a href="#">淘宝首页</a>
</p>
<%--页面包含指令:file表示包含的页面--%>
<%@include file="time.jsp"%>
</body>
</html>
1. 定义

使用include指令可以在jsp程序中插入多个外部文件,这些文件可以是JSP、HTML或者Java程序,甚至是文本

在编译时,include指令把相应的文件包含进主文件

2. 语法
<% @ include file= "文件名"%>
3. 注意

由于include指令在编译的时候就将相应的文件包含进来,等价于代码的复制,所以在调用文件和包含文件出现相同变量,会报错

(6). taglib指令

<%@taglib prefix="" uri="" %>
这个指令主要是用来引入JSTL标签库的指令的。

3. HTML

HTML界面元素

<!DOCTYPE html>
<html lang="en">
	<head>
   		<meta charset="UTF-8">
    	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	    <title>HTML</title>
	</head>

	<body> 

	</body>
</html>

4. Java [脚本(Scriptlet)]

(1). JSP程序段

1. 定义

JSP程序段就是插入到JSP程序的Java代码段,在网页的任何地方都可以插入JSP程序,在程序段中可以插入任何数量的Java代码

2. 语法
<%
		局部变量、java语句
%>
3. 举例
<% 
		String name = "张三";
		out.print("Hello"+name);
%>

在这里插入图片描述
注:JSP程序段中不能定义函数

(2). JSP声明

1. 定义

JSP声明可以定义网页中的全局变量,这些变量在JSP页面中的任何地方都能使用,

在实际应用中,方法、页面全局变量甚至类的声明都可以放在JSP声明部分

2. 语法
<%!
		全局变量、定义方法
%>
3. 举例
<%!
		public String bookName;	//全局变量
		public void init()
		{
			bookName = "javabook";
		}
	%>

注:在JSP声明中只能做定义,不能实现控制逻辑

(3). JSP表达式

1. 定义

JSP表达式用于定义JSP的一些输出

将里面的内容所运算的结果输出到客户端

2. 语法
<%=输出表达式(变量/返回值/表达式) %>

等价于

<%out.print(变量/返回值/表达式); %>
3. 举例
	<%!
		public String bookName;	//全局变量
		public void init()
		{
			bookName = "javabook";
		}
	%>
	
	<% 
		String name = "张三";
		out.print("Hello"+name);
		init();
	%>
	
	<%="hello"+bookName %>
4. 注意
  • JSP表达式中不能用;结束
  • JSP表达式中不能出现多条语句
  • JSP表达式中的内容一定是字符串类型,或者通过toString()函数转换成字符串的形式

三. URL传值

1. 定义

URL通俗来说就是网址

例如:

http://localhost:8080/Hello_JSP/index.jsp:表示访问项目中index.jsp页面

2. URL传值方式

语法:

url?参数名1=参数值1&参数名2=参数值2&...

例如:

http://localhost:8080/Hello_JSP/index.jsp?m=3&n=5
表示访问这个页面,并给其传送参数m和n

3. 获取URL传送的值

<%
	//获取参数m,赋值给str
	String str=request.getParameter("m")
	
	如果m没有传过来或者参数名写错,str为null
%>

4. 注意

  • 传输的数据只能是字符串,对数据类型有限制
  • 传输的数据在浏览器地址栏中可看到,不安全

四. JSP动作

1. 定义

JSP动作指的是使用XML语法格式的标记来控制服务器的行为

2. 语法

<jsp:动作名 属性1="属性值1"... 属性n="属性值n " />

或者

<jsp:动作名 属性1="属性值1" ... 属性n="属性值n">相关内容 </jsp:动作名>

3. 分类

JSP动作如下

  • jsp:include

    表示当页面被请求的时候引入一个文件

  • jsp:forward

    表示将请求转到另一个页面

  • jsp:useBean

    表示获取JavaBean的一个实例

  • jsp:setProperty

    表示设置JavaBean的属性

  • jsp:getProperty

    表示获得JavaBean的属性

  • jsp:plugin

    表示根据浏览器的类型为Java插件生成OBJECT或EMBED两种标记

4. 举例

(1). include动作

1. 作用

在页面请求的时候引入一个指定的文件

2. 语法
<jsp:include page="文件名" />

或者

<jsp:include page="文件名">相关标签</jsp:include>
3. include动作和include指令的区别

include动作:把文件中的输出结果包含进来,对被包含页面与本页面有相同变量的问题不会出现。
还会自动检查被包含文件的变化,可在每次客户端发出请求时重新把资源包含进来,进行实时更新

include指令:静态的,将语句嵌入到当前页面中,然后一起执行

(2). forword动作

1. 作用

实现跳转页面

2. 语法

<jsp:forward page=“文件名” />

page属性用于指定要跳转到的目标文件
3. 注意

当forward动作被执行后,当前页面将不再被执行,而是去了执行指定目标页面

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值