JSP介绍

目录

JSP简介

JSP脚本片段:

JSP表达式:

JSP声明片段:

JSP的指令标识:

page的属性:

Include指令

Taglib指令

JSP标签

动态引入和静态引入的区别

JSP作用域

JSP的九大内置对象。内置:不需要创建,直接就能用。

EL表达式

EL中的基础操作符

EL表达式的内置作用域对象


JSP简介

jsp语言与PHP、ASP、ASP.NET等语言类似,都是运行在服务端的语言

JSP技术是以Java语言作为脚本语言的,JSP网页为整个服务器端的Java库单元提供了一个接口来服务于HTTP的应用程序。

JSP文件后缀名为*.jsp

JSP开发的WEB应用可以跨平台使用,既可以运行在Linux上也能运行在Windows上

JSP脚本片段:

用于在JSP页面内写JAVA代码

<%
    int num=0;
    num++;
    System.out.println(num);
%>

注意: 

  1. JSP脚本片段中只能出现java代码,不能出现HTML元素,在访问JSP时,JSP引擎翻译JSP页面中的脚本片段。
  2. JSP脚本片段中JAVA代码必须严格遵守JAVA的规则
  3. 一个JSP页面可以有多个脚本片段
  4. 多个脚本片段中的代码可以相互访问

JSP表达式:

格式:<%=%>,用于将已经声明的变量或者表达式输出到网页上面。

<%= num %>

JSP声明片段:

其中写的内容将来会直接翻译在Servlet类中,因为我们可以在类中定义方法属性以及全局变量,所以我们可以在<%!%>中声明方法、属性、全局变量。

<%!
    int x = 10;

    static{

    }

    public void fun(){

    }
%>

JSP的指令标识:

<%@ 指令名 属性1=“值1” 属性2=“值2”.....%>

那都有什么指令呢:

page指令:定义整个JSP页面的相关属性

include指令:引入其他的JSP页面。先把两个页面结合,在去编译成servlet。

taglib指令:引入页面上需要用到的标签库

page的属性:

使用语法格式:一般在页面最顶上:<%@ page attribute="value" %>

属性描述
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确定脚本元素能否被使用

Include指令

语法格式:<%@ include file="文件相对 url 地址" %>

Taglib指令

语法格式:<%@ taglib uri="uri" prefix="prefixOfTag" %>

JSP标签

1、内置标签

        (1)jsp:include:引入指定的页面

        (2)jsp:forward:转发页面

        (3)jsp:param:传参数

2、JSTL标签,需要导入JSTL标签库

3、自定义标签

使用格式:<jsp:标签名称 属性名=属性值 ... ></jsp:标签名称>

 或:<jsp:标签名称 属性名=属性值 ... />

细心的小伙伴会问了jsp:include标签和include指令的区别是什么?

include标签:先把要引入的页面编译,再合并

include指令:先把要引入的页面合并,再编译

动态引入和静态引入的区别

静态引入:

<%@ include file="/xxx.jsp" %>

静态引入会生成一个java文件,两个jsp文件中可以共享同一个变量,但不能定义重名的变量。

动态引入:

<jsp:include page="/xxx.jsp"/>

动态引入会生成两个java文件,两个jsp文件中不可以共享同一个变量,可以定义重名的变量。

在静态引入与动态引入均可使用时,一般使用静态引入。因为在程序运行时只存在一个Servlet,对资源的消耗较少,且不存在调用问题,执行效率较高。

JSP作用域

    四大作用域:

     1、当前页(pageContext):一个属性只能在一个页面中获取。

     2、一次请求(request):一个页面中设置的属性,范围是一次请求。

     3、一次会话(session):一个会话中的属性,只要页面不关闭,都能获取到

     4、整个web应用(application):在这个服务器上,当前项目下的任何一个位置都能获取。

 往作用域中放置数据:

<%
    pageContext.setAttribute("pageContext","pageContext");
    request.setAttribute("request","request");
    session.setAttribute("session","session");
    application.setAttribute("application","application");
%>

 获取:


<h1>pageContext:<%= pageContext.getAttribute("pageContext")%></h1>
<h1>request:<%= request.getAttribute("request")%></h1>
<h1>session:<%= session.getAttribute("session")%></h1>
<h1>application:<%= application.getAttribute("application")%></h1>

JSP的九大内置对象。内置:不需要创建,直接就能用。

request

请求

response

响应

session

会话

out

输出

page

当前JSP页面对象

application

应用

exception

异常,只能在指定了isErrorPage="true"使用

pageContext

当前页,作用域

config

配置

EL表达式

SP表达式语言(EL)使得可以轻松访问存储在JavaBeans组件中的应用程序数据。JSP EL允许用来创建算术和逻辑表达式。在JSP EL表达式中,可以使用整数,浮点数,字符串,布尔值的内置常量为truefalse以及null值。

语法:

通常,当在JSP标记中指定属性值时,只需使用字符串即可。 例如 

<jsp:setProperty name = "box" property = "perimeter" value = "100"/>

JSP EL允许为这些属性值指定一个表达式。JSP EL的语法如下:

${expr}

EL中的基础操作符

EL表达式支持大部分Java所提供的算术和逻辑操作符:

操作符描述
.访问一个Bean属性或者一个映射条目
[]访问一个数组或者链表的元素
( )组织一个子表达式以改变优先级
+
-减或负
*
/ or div
% or mod取模
== or eq测试是否相等
!= or ne测试是否不等
< or lt测试是否小于
> or gt测试是否大于
<= or le测试是否小于等于
>= or ge测试是否大于等于
&& or and测试逻辑与
|| or or测试逻辑或
! or not测试取反
empty测试是否空值

EL表达式的缺陷:1、只能读,不能写  2、不支持流程控制语句 

EL表达式的内置作用域对象

pageContext

requestScope

sessionScope

applicationScope

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值