热门课程

免费试听

上课方式

开班时间

当前位置: 首页 -   文章 -   新闻动态 -   正文

Java中的JSTL与EL表达式

知了堂姐
2024-07-09 11:12:24
0

一、JSP

1、基本介绍

  • 什么是JSP?
  • 从用户的角度看,就是一个网页,从程序员的角度看,其实就是一个Java类,它继承了Servlet,所以可以直接说jsp就是一个servlet。
  • 为什么会有JSP?
  • html多数情况下用来显示静态内容,一成不变的,但是有时候我们需要在网页上显示一些动态数据,比如,查询所有学生信息。这些动作都需要查询数据库,然后在网页上显示,html不支持写java代码,jsp里面可以写jsp

2、怎么用JSP?

  • JSP三大指令
   格式:<%@ 指令名字 %>
1、page指令(里面的一些属性):
    language:表面里面可以写什么语言    
    contentType="text/html;charset=UTF-8":告诉浏览器我们是内容类型,以及用的什么编码
    pageEncoding:jsp内容编码
    extends:jsp翻译成java时候,继承的父类是谁,一般不用写
    session:可选值有true和false,用于控制这个jsp页面里面,是否可以直接使用session对象
    errorPage:如果当前页面发送错误,值会跳转的路径
    iserrorPage:指明当前路径是不是错误页面
2、include指令(包含一个页面):
    写法:<%@include file = "页面名字" %>
    背后细节:把另外一个页面的所有内容拿过来一起输出,所有的标签元素都包含进来输出。
3、taglib指令(引入标签库)
    写法:<%@ taglib prefix=" "  uri = " " %>     
    uri:标签库路径
    prefix:标签库别名

JSP的常用动作标签

:jsp包含的页面路径,这边包含进来的页面只是把在执行完的经过传进来,而不是把元素标签一起传进来输出
:跳转到哪一个页面,相当于请求转发
:包含在某个页面的时候,或者在跳转在某个页面的时候,加入这个参数,通常写在上面两个标签之间,在跳转到的页面用request.getParamter("")接收

JSP9大内置对象

介绍:
      所谓内置对象,就是我们可以直接在jsp页面中使用这些对象。不用创建,在<% %>里面
9大内置对象
  四个域对象:
      什么是域对象:表示这些对象可以存值,他们的取值范围有限定,存取值都是通过setAttribute()和getAttribute()
      pageContext(是pageContext类型):作用域只限定于当前页面,用这个对象可以拿到其他的八个对象
      request(是HttpServletRequest类型):作用域仅仅限于一次请求(用请求转发就可以可以在页面中传值,重定向不可以),重定向不可以是因为:只要服务器对该请求作出了响应,这个域中存的值就没有了
      session(是httpSession类型):作用域仅仅限于一次会话。会话:简单来说打开浏览器,访问服务器,直到浏览器关闭,称为一次会话
      application(是ServletContext类型):整个工程都可以使用,服务器关闭之后就不可以用了
  2个使用频率一般的对象:
      response(是HttpServletResponse类型):直接输出,response.getWrite().write("")
      out(是JspWriter类型):这个对象输出要先把内容防止response的缓冲区去,再输出,out.write(" ")
      注意:所以,当这两个对象在同一个页面的时候,要先输出response的数据,再输出out的数据
  3个其他对象:
      exception(是Throwable类型)
      page(是object类型):就是这个jsp翻译成的java类的实例对象
      config(是ServletConfig类型)

二、EL表达式(取值和比较值)

1、基本介绍

产生:是为了简化咱们的jsp代码,具体一点就是为了简化在jsp里面写的那些Java代码格式:${表达式}

2、怎么用

  • 取值
1、使用EL表达式取出作用域中的值:
  pageContext.setAttribute("name","page")
  普通手段取值:<%= pageContext.getAttribute("name") %>
  EL表达式取法:${pageScope.name}
2、使用EL表达式取出作用域中数组的值:
  <%String[ ] a ={"aa","bb","cc","dd"};pageContext.setAttribute("array",a); %>
  EL表达式取值:${array[0] }
3、使用EL表达式取集合中的值:
  <%List list = new ArrayList();list.add("11");   pageContext.setAttribute("li",list)%>
  EL表达式取值:${li[0] }
4、使用EL表达式取出集合中的值:
  <%Map map = new HashMap(); map.put("name","zhangsan");map.put("address.a","深圳");pageContext.setAttribute("map",map);%>
  EL表达式取值:${map.name},   ${map["address.a"]}
注意:
  ${name}:表示先从page里面找,没有的话之后request,session都没有的话最后去appplication里面找
  ${pageScope.name}:表示去特定的pageContext去找
  取值方式:如果这份值有下标,直接使用[],如果这份值没有下标,直接使用 .  的方式去取
data = pd.read_csv( 'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv') print(data.head())

EL表达式的11个内置对象

取值格式:${对象名.成员}
四个作用域相关对象:
      pageScope
      requestScope
      sessionScope
      applicationScope
两个请求头相关对象:
      header
      headerValues
两个请求参数相关对象:
      param
      paramValues
其他:
      cookie
      initParam:可得到全局初始化参数
      pageContext

三、JSTL

java standard Tag Library,简化jsp的代码编写,本身是为了替换<% %>写法,一般与EL表达式配合

怎么使用?

  • 导入
步骤:
  1、导入jar文件到工程(jstl.jar和standard.jar)
  2、在jsp页面上,使用taglib指令,来引入标签库
  3、注意:如果想支持EL表达式,那么引入的标签库必须选择1.1版本,1.0的版本不支持EL表达式

常用标签

c:set  储存一个值到作用域当中  写法:
c:if  判断
c:forEach  遍历

简单测试:

JSTL与EL整合测试

简单测试:

输出:

总结

这里介绍了jsp的基本,三大指令,常用动作标签,以及九个内置对象;还介绍了EL表达式,他就是为了简化jsp里面的Java代码而生,这里介绍了他如何取值,以及它的11个内置对象,它的两大作用就是取值和比较;最后介绍了JSTL,就是一个标签库,也是为了简化jsp的代码而生,还介绍了他的一些常用标签。

大家都在看

前端转鸿蒙好做吗?前端学鸿蒙容易吗

2024-07-09 浏览次数:0

网络安全渗透测试工程师就业前景如何?培训学

2024-07-09 浏览次数:0

企业求才若渴,知了堂学员未毕业先获就业机会

2024-07-09 浏览次数:0

走进人工智能AIGC的新世界,汇智知了堂19.9...

2024-07-09 浏览次数:0

计算机行业回暖?看程序员怎么说?

2024-07-09 浏览次数:0

不写代码的技术岗有哪些?细数这些不用写代码的技术...

2024-07-09 浏览次数:0
最新资讯
Java 学习前景如何?探索未...   学Java还有前景吗?这个得看看市场需求:  根据2020年TIOBE开发语言排行榜宣布的流行开...
当兵两年,回来继续学Java   当兵两年,回来继续学Java  人这一生就像一部半开放式结局的电影,有大致的时间线,却没有准备好...
java培训课程主要有哪些内容...   我们在选择最佳Java培训机构的时候,Java培训课程一定是我们选择的重要依据。那么Java培训...
在B站学Java,真挺好   众所周知,b站是用来搞学习的。  对于我们学习编程的同学来说,b站有着非常多的学习资源,今天给大...
3月14日,汇智知了堂Java...   生活有不期而遇的温暖  学习有不言而喻的乐趣  开班典礼  3月14日上午9点,知了堂开发、网络...
java学习路线——java学...   java在大学期间一直都是计算机专业的必修课程,而社会中人如果想要学习java,那么就只能通过自...
java培训网课多少钱?Jav...   Java培训是很多转行者的必经之路,因为转行是很难的,如果没有足够的技能和经验,转行更多的是空话...
java入门应该学什么?Jav...   Java入门应该怎么学?这大概就是很多转行者得首要疑问了,没有接触过,完全不了解,所以掌握不到学...