JSP(EL表达式+JSTL)


前言

JSP是一种动态网页技术标准,是JavaWeb服务器端的动态资源,它与HTML页面的作用是相似的,显示数据和获取数据。在jsp刚刚兴起的时候,开发Wab都是用jsp来做,这样会造成前台的UI和业务逻辑还有db的交互全部在jsp中完成,导致代码的耦合性过高,不易于维护。 后面随着一些优秀的J2EE框架的出现,Web开发模式也随之变化,像现在广泛使用的MVC类型的开发框架--jsp+servlet+javabean,虽然不只是使用JSP一项技术,但用JSP开发的思想我们还是要好好学习下!


一、什么是JSP

JSP是由Sun公司倡导,与其它公司一起建立的一种动态网页技术标准。全称:Java Server Pages是JavaWeb服务器端的动态资源,它与HTML页面的作用是相似的,显示数据和获取数据。它在传统的HTML网页中插入了java程序段和jsp标记。用JSP开发的Web应用也是跨平台的,即能在Windows下运行,也能在Linux或其它操作系统下运行。

二、JSP语法

(一)、jsp模板元素

jsp页面中的html内容称之为jsp模板元素。jsp模板元素定义了网页的基本骨架,即定义了页面的结构和外观。(就是html代码

(二)、jsp脚本表达式

jsp脚本表达式用于将程序数据输出到客户端(就是编写时候获取到数据

语法:<%=变量或表达式(可以是要输出的数据类容)%>

注意:jsp脚本表达式可以理解为System.out……,但是区别在于System.out……是输出在控制台的而jsp脚本表达式是输出到前端页面的。

(三)、jsp脚本片段(小脚本)

jsp脚本片段,用于在jsp页面中编写多行java代码。<%%>:就相当于java中一个方法的代码块。

语法:<%

多行java代码

%>

注意:在配置了maven的情况下,编写jsp脚本片段时,要想使用jsp的API就需要在maven的pom.xml配置文件中导入jsp-api的依赖(也就是提供编译需要),这样jsp脚本片段才能正常编写。

maven配置文件导入的依赖标签如下图:

注:导入的jsp-api依赖最后一项scope范围标签中,provided表示该依赖提供编译的时候使用,运行的时候不用,因为程序是在tomcat服务器中运行的,tomcat中是有jsp-api这个依赖包的。

(四)、jsp声明(成员变量)

语法:

<%!

java代码 — 成员变量

注:该语法中可以编写java方法,因为该语法表示声明,声明成员变量,也就说名该语法不局限于是一个方法体,所以语法中可以定义编写方法。

%>

jsp的生命周期:

jsp --->翻译成.java文件 ---> 编译成.class文件 ---> 运行

理解:编写好一份jsp文件后,首先就会被翻译成一份java文件,然后才会被编译运行。要注意一点,如果jsp语法中的代码不变,那么翻译和编译过程是不会重复去做的。

注意:由上述jsp的脚本片段以及声明等可以看出,在jsp中编写的所有代码在底层实际上都会翻译成一份java文件,所以某种程度上jsp实际上就是java。

(五)、jsp注释

注释格式:<%--注释信息--%>

(六)、jsp指令

语法格式:<%@指令名 属性名="值"%>

1、page指令(可导包、设置编码格式……)

示例:在jsp页面中设置响应编码格式用到了page指令 -- (page还可以导包)

2、include指令 — 引入指令(可引入成员变量、各个页面如:侧边栏、弹框……)

示例:将某文件,加载到当前页面。此处是将一份jsp文件加载到当前页面。

3、taglib指令

示例:在jsp页面中可以导库,也就是JSTL(jsp的标准标签库),前提是得先把JSTL的两个jar包导入项目。

三、jsp的九大内置对象

(一)、jsp的九大内置对象

如图:

1、pageContext -- 页面的上下文对象(数据的作用域:当前页面)

2、exception

3、page

4、request -- 请求对象(数据的作用域:一次请求中)

5、response -- 响应对象

注:4和5两个内置对象联系到转发和重定向的概念:

(1)、转发 — 转发请求跳转页面

(2)、重定向 — 客户端重新再向服务器发送请求跳转页面

(3)、转发和重定向的区别

  • 转发是由于request请求内置对象实现的,重定向是由response响应内置对象实现的。
  • 转发是请求的转发,请求中的数据会带到新页面;重定向是客户端重新发起一次请求,原来请求中的数据就没有了。
  • 转发页面地址是不变的,重定向页面地址要变为新地址。

6.session -- 会话对象

(1)、session会话对象的简单理解

简单理解,会话就是浏览器和服务器的一次会话。不关浏览器就是一次会话,关闭浏览器当前会话就结束了。session相对于cookie来说安全性更高,session的数据是存在服务器上的。

7.application -- 应用程序对象

application代表应用,代表的就是tomcat服务器,它会随着tomcat的启动而产生,一直到tomcat的关闭而消亡。

8.out

9.config

附加:jsp的思想是,前端显示的页面通过jsp内置的java对象输出来。也就是jsp中编写的html代码实际上在底层还是用内置对象输出显示的。

四、JSP的四大域

如图:

1、pageContext — 作用域:当前页面

2、request — 作用域:一次请求中

3、session — 作用域:一次会话,只要浏览器不关会话就一直存在

(1)、session的失效时间

session默认失效时间是30分钟,只要你不操作页面到了30分钟,session就自动失效。如果中途有操作页面,那失效时间又会从你操作的那一刻起开始计时。

(2)、如何设置session的失效时间(在web.xml配置文件中设置)

  • 可以在tomcat的conf目录中的web.xml文件中修改
  • 也可以在项目中的web.xml配置文件中配置失效时间

  • 还可以针对单个的session进行失效时间的设置

4、application — 作用域:application是属于服务器的,作用域在整个项目

对于JSP四大域的总结如图:

五、EL表达式(expression language:表达式语言)

(一)、什么是EL表达式(JSP中获取数据的一种规范)

需要注意的是EL表达式不是一种开发语言,它是JSP中获取数据的一种规范。

注意:使用EL表达式,需要在page指令中启用EL表达式

(二)、EL表达式语法

EL表达式语法格式:${数据名}

1、EL表达式获取数据得逻辑

EL表达式可以从四个作用域中获取数据,我们也可以指定EL表达式在哪个作用域中获取数据。如果不指定则EL表达式获取数据得优先级为:

pageContext --> request --> session --> appliction

六、JSTL(JSP标准标签库)

(一)、什么是JSTL

JSTL就是JSP的标准标签库。JSTL可以实现JSP页面中的逻辑处理。如:判断、循环等……

(二)、JSTL的使用

1、使用JSTL,需要先在maven配置文件中导入JSTL的依赖,然后通过taglib指令导入JSP的标准标签库。

  • 导入JSTL依赖

  • 通过taglib指令导入标准标签库

2、JSTL逻辑处理语法


总结

本章属于JSP的基础篇,主要讲述了JSP的基本概念,语法与个别使用案例以及构成等等。全篇都很基础简单,主要就是要了解会使用JSP编写开发,学会最基础的语法以及使用思想。后续会继续更新……

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值