概述
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标签库所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复