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 表⽰访问这个页⾯,并给其传送参数m和n 3. 获取URL传送的值 <% //mstr 获取参数,赋值给 String str=request.getParameter("m") 如果m没有传过来或者参数名写错,str为null %> 4. 注意 传输的数据只能是字符串,对数据类型有限制 传输的数据在浏览器地址栏中可看到,不安全 四. JSP动作 1. 定义 JSP动作指的是使⽤XML语法格式的标记来控制服务器的⾏为 2. 语法 或者 3. 分类 JSP动作如下 jsp:include 表⽰当页⾯被请求的时候引⼊⼀个⽂件 jsp:forward 表⽰将请求转到另⼀个页⾯ jsp:useBean 表⽰获取JavaBean的⼀个实例 jsp:setProperty 表⽰设置JavaBean的属性 jsp:getProperty 表⽰获得JavaBean的属性 jsp:plugin 表⽰根据浏览器的类型为Java插件⽣成OBJECT或EMBED两种标记 4. 举例


发布评论