我是靠谱客的博主 魁梧诺言,这篇文章主要介绍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指令标签

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<%@ 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指令

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

4.taglib指令

复制代码
1
2
3
4
5
6
<%@ taglib prefix="" uri=""%> 引入标签库的指令。 //uri: 标签库路径 //prefix : 标签库的别名

5.jsp动作标签  (了解 )

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//包含指定的页面, 这里是动态包含。 也就是不把包 含的页面所有元素标签全部拿过来输出,而是把它的运行 结果拿过来。 <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:整个工程都可以访问, 服务器关闭后就不能访问了。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//四个作用域对象的存值 <% 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】

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

        response 【HttpServletResponse】

        exception 【Throwable】

复制代码
1
2
3
4
//异常exception 【Throwable】 <p> <%=exception.getMessage()%> </p>

        page

复制代码
1
2
3
4
//page ---代表jsp被翻译后的servlet对象实例 <p> <%=page.getClass().getName()%> </p>

        config 【ServletConfig】

复制代码
1
2
3
4
//config 【ServletConfig】config jsp页面初始化参数 <p> <%=config.getInitParameterNames() %> </p>

7.el表达式

        简化在jsp里面写的java代码

        写法格式${表达式 }

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

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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
//使用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 指令,来引入标签库

复制代码
1
<%@ 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>

复制代码
1
2
3
4
5
6
7
8
9
变量设置标签: <!-- 声明一个变量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>

复制代码
1
2
3
4
5
6
7
8
9
条件判断标签: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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
循环遍历标签: 从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内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部