2023年11月28日发(作者:)

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代码的

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

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

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=",ist" 导⼊对象:导⼊某个类对象

autoFlush="true" ⾃动刷新

errorPage="" 如果当前页⾯抛异常 跳转指定页⾯

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=""%>

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

代码⽰例:

<%@page contentType="text/html;charset=UTF-8" language="java"%>

<html>

<head>

<title>Titletitle>

head>

<body>

<p>

<a href="#">百度⼀下a>

<a href="#">淘宝⾸页a>

p>

<%--页⾯包含指令:file表⽰包含的页⾯--%>

<%@include file=""%>

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>HTMLtitle>

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通俗来说就是⽹址

例如:

localhost:8080/Hello_JSP/:表⽰访问项⽬中页⾯

2. URL传值⽅式

语法:

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

例如:

localhost:8080/Hello_JSP/m=3&n=5

表⽰访问这个页⾯,并给其传送参数mn

3. 获取URL传送的值

<%

//mstr

获取参数,赋值给

String str=request.getParameter("m")

如果m没有传过来或者参数名写错,strnull

%>

4. 注意

传输的数据只能是字符串,对数据类型有限制

传输的数据在浏览器地址栏中可看到,不安全

. JSP动作

1. 定义

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

2. 语法

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

或者

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

3. 分类

JSP动作如下

jsp:include

表⽰当页⾯被请求的时候引⼊⼀个⽂件

jsp:forward

表⽰将请求转到另⼀个页⾯

jsp:useBean

表⽰获取JavaBean的⼀个实例

jsp:setProperty

表⽰设置JavaBean的属性

jsp:getProperty

表⽰获得JavaBean的属性

jsp:plugin

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

4. 举例