Jsp的内置标签和jstl标签
1、内置标签(动作标签)
内置标签不需要再jsp页面导入标签
1)、forward:请求的转发,格式如下
<%-- 作用与这个相同
<%request.getRequestDispatcher("/forward2.jsp?name=gqxing").forward(request, response); %>
--%>
<jsp:forward page="/forward2.jsp">
<jsp:param value="gqxing" name="name"/>
<jsp:param value="123456" name="password"/>
</jsp:forward>
2)、include标签:用于包含页面,
包含与被包含的页面先各自翻译成java源文件,然后再运行时合并在一起。(先翻译再合并),动态包含
格式如下:
<jsp:include page="/common/header.jsp"></jsp:include><hr>
这是网页的身体部分<br>
但它与前面学的include指令有一定的区别
(1)、格式区别:
<jsp:include page="/common/header.jsp"></jsp:include>
<%@include file="/common/header.jsp" %>
(2)、参数传递区别:
动态包含可以传递参数,静态传递不能传递资源
<jsp:include page="/common/head.jsp">
<jsp:param value="gqxing" name="name"/>
</jsp:include><hr>
这是网页的身体部分<br>
<h2>我是网页的头部,我只有一句话</h2>
<%=request.getParameter("name") %>
(3)、原理不同:
静态包含:先合并,再翻译, 动态资源:先翻译后合并
在静态包含中只有主页(网页的身体,包含它的页)被编译成了java文件,同时被包含的页面被直接合并在了主页的身体部分,而在动态包含中,却没有这个特性,被包含页和主页都被一同编译了,同时在主页中通过方法去掉用被包含页,从而达到合并的目的,合并方法如下:
org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "/common/header.jsp", out, false);
2、jstl(java standard tag libarary)java标准标签库
(1)、核心标签库:
标签的导入:具体如图
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

(1)set标签,保存数据
<%--set标签保存数据(数据保存到域对象,默认保存page域中) --%>
<c:set var="name" value="gqxing" scope="request"></c:set>
${requestScope.name}
(2)、out标签,获取数据
<%--out标签:获取数据
default:当value值为空的时候使用默认值
而单纯的el表达式没有这个功能‘
escapeXml="":是否对value值进行转移,默认为true,即进行转义
--%>
<c:out value="${name}" default="<h3>标签</h3>" escapeXml="false"></c:out>
(3)、if标签:单条件的判断
<%--if 标签:单条件判断 --%>
<c:if test="${10>5}">
<h2>条件成立</h2>
</c:if>
<c:if test="${!empty name }">
是空值
</c:if>
(4)、-choose+when+otherwise标签,多条件判断
<%--choose+when+otherwise标签,多条件判断 --%>
<c:set var="score" value="95"></c:set>
<c:choose>
<c:when test="${score>=90 && score<=100}">优秀</c:when>
<c:when test="${score>=80 && score<90}">良好</c:when>
<c:when test="${score>=60 && score<80}">及格</c:when>
<c:otherwise>不及格</c:otherwise>
</c:choose>
(5)、foreach 循环
首先对List集合进行循环遍历
<%--foreach 循环
begin:指定从哪开始,默认为0
end:指定的终止位置
step:指定的步长 形如for(i=1;i<10;i++)的i++
items:需要遍历的数据,通常是集合
var:每个元素起的名称,为了在循环体中可以取用
varStatus:当前正在遍历元素的状态对象。(count属性:当前位置,从1开始)
--%>
<% List<Student> list =new ArrayList<Student>();
list.add(new Student("gqx",21));
list.add(new Student("gqxing",22));
list.add(new Student("guoqingxing",22));
pageContext.setAttribute("list", list);
%>
<c:forEach begin="0" end="2" step="1" items="${list}" var="student" varStatus="varSta">
序号:${varSta.count}——姓名:${student.name}——年龄:${student.age}<br>
</c:forEach>
对map键值对进行遍历
<% //MAP
Map<String,Student> map=new HashMap<String,Student>();
map.put("001", new Student("gqx",21));
map.put("002", new Student("gqxing",22));
map.put("003", new Student("guoqingxing",22));
//放入到域中去
pageContext.setAttribute("map", map);
%>
<c:forEach begin="0" end="2" step="1" items="${map }" var="entry" varStatus="varStar">
序号:${entry.key }——姓名:${entry.value.name }——年龄:${entry.value.age }<br>
</c:forEach>
<hr>
(6)、forToken:循环特殊的字符串
<%--forToken:循环特殊的字符串 --%>
<%
String str="java-php-net-photoship-c++";
pageContext.setAttribute("str", str);
%>
<c:forTokens items="${str }" delims="-" var="s" varStatus="varStar">
${varStar.count }——${s }<br>
</c:forTokens>

(7)、redirect:重定向
<%--redirect:重定向 --%>
<c:redirect url="http://www.baidu.com">
</c:redirect>
Jsp的内置标签和jstl标签的更多相关文章
- JSP标签:jsp内置标签、jstl标签、自定义标签
一.jsp标签的分类: 1)内置标签(动作标签): 不需要在jsp页面导入标签 2)jstl标签: 需要在jsp页面中导入标签 3)自定义标签 : 开发者自行定义,需要在jsp页面导入标签 1 ...
- JSP的执行原理、JSP的内置对象、四大作用域解析、MVC模式理解>从零开始学JAVA系列
目录 JSP的执行原理.JSP的内置对象.四大作用域解析.MVC模式理解 JSP的执行原理 这里拿一个小例子来解析JSP是如何被访问到的 首先将该项目部署到tomcat,并且通过tomcat启动 通过 ...
- struts访问jsp api内置对象的集中方式
1 default-action-ref元素改元素用来配置默认的action,如果struts找不到对应的action,就会调用这个默认的action 2 dmi处理方式是通过请求action中的一个 ...
- 什么是jsp?jsp的内置对象有哪些?
这里是修真院前端小课堂,每篇分享文从 [背景介绍][知识剖析][常见问题][解决方案][编码实战][扩展思考][更多讨论][参考文献] 八个方面深度解析前端知识/技能,本篇分享的是: [什么是jsp? ...
- JSP的内置对象以及作用域。
最近在面试,一些基础的问题总是会被问到,虽然是基础,但是有些东西在工作中用的少,所以就有些记不清了,在面试的时候更因为紧张很容易造成原先知道的知识也会突然忘了的情况发生.所以在重新组织一下jsp的内置 ...
- JSP的内置对象(上)
1.JSP内置对象的概念:JSP的内置对象时Web容器所创建的一组对象,不使用new关键字就可以使用的内置对象 2.JSP九大内置对象内置对象:out ,request ,response ,sess ...
- JSP&EL 内置对象
JSP&EL 内置对象 转载▼ 具体的JSP和El中的内置对象见下表,由于我写在了excel中,也不知道怎么把excel发出来,就截了图. 相关问题: Q1: JSP:EL中 pageCo ...
- 学会怎样使用Jsp 内置标签、jstl标签库及自定义标签
学习jsp不得不学习jsp标签,一般来说,对于一个jsp开发者,可以理解为jsp页面中出现的java代码越少,对jsp的掌握就越好,而替换掉java代码的重要方式就是使用jsp标签. jsp标签的分 ...
- JavaWeb笔记——Jsp的指令、内置对象和动作标签
JSP三大指令 一个jsp页面中,可以有0~N个指令的定义! 1. page --> 最复杂:<%@page language="java" info=" ...
随机推荐
- eval 如何定义函数
eval(compile('''def fun(): print 'bbb' ''', '<string>', 'exec')) fun()
- 面试题:m个长度为n的ordered array,求top k 个 数字
package com.sinaWeibo.interview; import java.util.Comparator; import java.util.Iterator; import java ...
- 解析sql中的表名
最近的项目需求中需要解析sql得表名,由于只需要表名我觉得应该用相对粗暴一点的方式来解析 初步思路: 1.转义字符:去除两个引号连在一起的 2.字符串: 去除所有被引号包裹的 3.括号:识别括号处理 ...
- Tekla Structures 使用类库概览
Tekla Structures 2016 已经发布了,使用了 Ribbon 的全新 UI 风格,比以前要漂亮许多. 不过功能方面貌似没啥大的改进,感觉天宝的主要精力都投入到了混凝土模块上,忙着和别人 ...
- IT全称
1.jar,war,ear(摘自:http://blog.sina.com.cn/s/blog_54bb7b950100wnbb.html) Jar文件(扩展名为. Jar)包含Java类的普通库.资 ...
- MYSQL ERROR 1130: Host is not allowed to connect to this MySQL server
今天安装MYSQL遇到MYSQL ERROR 1130: Host is not allowed to connect to this MySQL server, 试了很多办法都不行 skip-gra ...
- C++程序的构成和书写形式
C++程序的结构和书写格式归纳如下: (1) 一个C++程序可以由一个程序单位或多个程序单位构成.每一个程序单位作为一个文件.在程序编译时,编译系统分别对各个文件进行编译,因此,一个文件是一个编译单 ...
- Uva 10294 Arif in Dhaka (First Love Part 2)
Description 现有一颗含\(N\)个珠子的项链,每个珠子有\(t\)种不同的染色.现求在旋转置换下有多少种本质不同的项链,在旋转和翻转置换下有多少种本质不同的项链.\(N < 51,t ...
- Android基础学习
1.specify :指定 2.Nested:嵌套 3.启动模拟器时出现错误信息"Please ensure that adb is correctly located at:XXXXX&q ...
- 【UVA1331】关于最优三角剖分
最近在练习DP专题,学会了很多表示方法和转换方法,今天做最优三角剖分的时候发现脑子卡了,不会表示状态,于是写个博客记录一下. 最优三角剖分的一类题目都是差不多的.给你一个多边形,让你把它分割成若干个三 ...