我是靠谱客的博主 魁梧诺言,最近开发中收集的这篇文章主要介绍jsp技术(包含jsp的九个内置对象),EL表达式,JSTL标签库,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.jsp技术

        jsp站在客户端来看,jsp是一个显示内容的页面,能动态的显示页面中的内容,所以称jsp为动态页面,比如login.jsp(能从后台获取数据更新自己的页面),能在jsp页面写java代码,所以jsp可以看成是java+html。

        站在程序员来看,其实jsp就是一个servlet(在tomcat容器中将访问的jsp编译并翻译为servlet),但各自有各自的特点,所以共存,jsp重点用于显示动态内容,servlet则重于完成动态数据模型的业务逻辑处理。

2.jsp的作用和意义

        html 多数情况下用来显示静态内容 , 一成不变的。 但是有时候我们需要在网页上显示一些动态数据, 比如: 查询所有的学生信息, 根据姓名去查询具体某个学生。 这些动作都需要去查询数据库,然后在网页上显示。 html是不支持写java代码 , jsp里面可以写java代码。

3.page指令标签

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
//对jsp页面配置属性设置。
//language: 
    //表明jsp页面中可以写java代码
//contentType:
    //其实即是说这个文件是什么类型,告诉浏览器我是什么内容类型,以及使用什么编码
//pageEncoding: 
    //jsp内容编码
//extends: 
    //用于指定jsp翻译成java文件后,继承的父类是谁,一般不用改。
//import: 
    //导包使用的,一般不用手写。
//session:
    //值可选的有true or false,用于控制在这个jsp页面里面,能够直接使用session对象。
//errorPage:
    //指的是错误的页面, 值需要给错误的页面路径
//isErrorPage:  
    //上面的errorPage 用于指定错误的时候跑到哪一个页面去。 那么这个isErroPage , 
就是声明某一个页面到底是不是错误的页面

3.include指令

<%@ include file="other02.jsp"%>
//把另外一个页面的所有内容拿过来一起输出。 所有的标签元素都包含进来
//file:引入的文件地址。    

4.taglib指令

<%@ taglib prefix=""  uri=""%>  
 引入标签库的指令。
    
//uri: 标签库路径
//prefix : 标签库的别名 

5.jsp动作标签  (了解 )

//包含指定的页面, 这里是动态包含。 也就是不把包
含的页面所有元素标签全部拿过来输出,而是把它的运行
结果拿过来。
<jsp:include page="error.jsp"></jsp:include>

//前往哪一个页面。
<jsp:forwhard page=""></jsp:forward>

//在包含某个页面的时候,或者在跳转某个页面的时候,加入这个参数。
<jsp:forward page="other02.jsp">
    <jsp:param value="beijing" name="address"/></jsp:forward>
</jsp:forward>

6.jsp九个内置对象

        九个内置对象包括

        四个作用域对象用于存取值,每个对象对取值范围不同

        · pageContext:仅当前页面可访问,也可以用这个对象获取其它八个内置对象

        · request:只要服务器对该请求做出了响应。即产生了一次重定向跳转即清除缓存

        · session:作用域限于一次会话(多次请求与响应) 当中,即在关闭浏览器,缓存才清空。

        · application:整个工程都可以访问, 服务器关闭后就不能访问了。

//四个作用域对象的存值
    <%
        pageContext.setAttribute("name", "page");
        request.setAttribute("name", "request");
        session.setAttribute("name", "session");
        application.setAttribute("name", "application");
    %>


//四个作用域对象取值
    <%=pageContext.getAttribute("name")%>
    <%=request.getAttribute("name")%>
    <%=session.getAttribute("name")%>
    <%=application.getAttribute("name")%>

        其他5个内置对象

        · out 【JspWriter】

//out【JspWriter】---给客户页面输出数据信息的
<p>  
    <% out.println("out is jsp inner Object");%>
</p>

        response 【HttpServletResponse】

        exception 【Throwable】

//异常exception 【Throwable】
<p> 
    <%=exception.getMessage()%>
</p> 

        page

//page ---代表jsp被翻译后的servlet对象实例
<p>
    <%=page.getClass().getName()%>
</p>

        config 【ServletConfig】

//config 【ServletConfig】config jsp页面初始化参数
<p> 
    <%=config.getInitParameterNames() %>
</p>

7.el表达式

        简化在jsp里面写的java代码

        写法格式${表达式 }

        如果从作用域中取值,会先从小的作用域开始取,如果没有,就往下一个作用域取。

        一直把四个作用域取完都没有, 就没有显示。

//使用EL表达式取出作用域中的值
  ${pageScope.name }
  ${requestScope.name}
  ${sessionScope.name}
  ${applicationScope.name} 


//使用EL表达式取出作用域中数组的值
${array[0] } , ${array[1] },${array[2] },${array[3] }

//使用EL表达式取出作用域中集合的值
${tt[0]},${tt[1]},${tt[2]},${tt[3]}

//使用EL表达式取出作用域中Map的值
${map.name} , ${map.age} , ${map.address} , ${map["address.aa"]}

//使用el表达式取对象属性的值    
${ u.name } , ${ u.age }



//EL表达式的11个内置对象(了解)。

·  pageContext

作用域相关对象 - pageScope - requestScope - sessionScope - applicationScope

头信息相关对象 - header - headerValues

参数信息相关对象 - param - paramValues

·  cookie 

全局初始化参数

·  initParam

8.JSTL标签库

        JSTL全称 : JSP Standard Tag Library jsp标准标签库

         简化jsp的代码编写。 替换 <%%> 写法。 一般与EL表达式配合

9.JSTL的使用步骤

        1)导入jar文件到工程的WebContent/Web-Inf/lib jstl.jar standard.jar(两个jar文件)

        2)在jsp页面上,使用taglib 指令,来引入标签库

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

        3)如果想支持 EL表达式,那么引入的标签库必须选择1.1的版本,1.0的版本不支持EL表达式。

10.JSTL常用标签的使用

        1)<c:set></c:set>

变量设置标签:
<!-- 声明一个变量name,变量的值zhangsan,scope存储到了page(默认),指定是session作用范围 -->

<c:set var="name" value="zhangsan" scope="session"></c:set> 
 在jsp页面可以使用el表达式取name变量的值
    
在jsp页面设置页面页面项目根路径
<c:set var=”ctx” value=”${pageContext.request.contextPath}” />    
通常通过此方式获取项目根路径,简化页面路径的写法 

        2)<c:if test=""></c:if>

条件判断标签:c:if
  判断test里面的表达式是否满足,如果满足,就执行c:if标签中的输出 , c:if 是没有else的。
  <c:set var="age" value="18" ></c:set>
  <c:if test="${ age > 26 }">
     年龄大于了26岁...
  </c:if>
  <c:if test="${ age <= 26 }">
    年龄小于了26岁...
  </c:if>

        3)<c:forEach></c:forEach>

循环遍历标签:
从1开始遍历到10 ,得到的结果,赋值给i,并且会存储到page域中,step,增幅为2,
    
<c:forEach begin="1" end="10" var="i" step="2">
  ${i}
</c:forEach>
-----------------------------------------------
<!--
     items : 表示遍历哪一个对象,注意,这里必须写EL表达式。 
     var: 遍历出来的每一个元素用user 去接收。 
     varStatus:被遍历的每个对象的状态的对象,包括index(索引从0开始)、count(计数从1开始)等。    
 -->
<c:forEach var="user" items="${list }" varStatus="sta">
  ${sta.index}-${sta.count} ---- ${user.name } ----${user.age }
</c:forEach>

最后

以上就是魁梧诺言为你收集整理的jsp技术(包含jsp的九个内置对象),EL表达式,JSTL标签库的全部内容,希望文章能够帮你解决jsp技术(包含jsp的九个内置对象),EL表达式,JSTL标签库所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部