jsp(10)
1、格式标签
2、SQL标签
3、自定义标签
<table border="1">
<Tr>
<Td rowspan="4">
<img src="${t.pic }">
</Td>
<Td>编号:${t.id }</Td>
</Tr>
<Tr>
<Td>名称:${t.name }</Td>
</Tr>
<Tr>
<Td>价格:${t.price }</Td>
</Tr>
<Tr>
<Td><a href="#">购买</a></Td>
</Tr>
</table>
<c:forEach items="${requestScope.list}" var="t" varStatus="st">
varStatus声明的属性st,它是用于保存t对象在集合的一些状态,状态主要有两种
st.index= 用于保存t对象,在集合的下标,下标从0开始
st.count=用于保存t对象,是集合的第几个对象,值从1开始
for(int i=1;i<121;i=i+2){
}
<c:forEach begin="1" end="120" step="2" var="t">
</c:forEach>
12,345,678.64
fmt-----------------format
${name } --从作用域中取name的值
${param.name} ---------从表单中或者超连接中取得值
jsp---第九章
startup.bat------启动tomcat
shutdown.bat--------停止tomcat
一个jsp页面,可以包含七部份内容:
1、静态内容
2、java小脚本
3、声明
4、表达式
5、注释
6、指令
7、标准动作
--------------------------------------------
java小脚本: <% %>
声明 <%! %>
表达式 <%= %>
注释:
服务器端注释 <%-- --%>
客户端注释 <!-- -->
指令:
<%@ 指令名 %>
-------------------------------------
标准动作:jsp把在项目中经常要用到的一些功能,已标签的形式,封装起来,就称为:“标准动作”
常用标准动作:
语法:
<jsp:动作名称 相关属性>
常用的六个标准动作:
1、 <jsp:forward page=""/> 用于页面跳转
2、 <jsp:include page=""/> 用于将其他页面,包含到当前页面
3、
<jsp:useBean > 用于在页面中创建一个对象实例,并且存储到作用域
4、 <jsp:getProperty> 用于在页面中,取得作用域存储的对象中的某一个属性,并且输出值
5、
<jsp:setProperty> 用于给作用域存储的对象,重新赋值
6、 <jsp:param> 用于在页面跳转或包含的时候,传递参数
-----------------------------------------------
<jsp:forward page=""/> 用于页面跳转
跳转的时候,传递参数:
<jsp:forward page="shw?name=jack&age=23"/>
----------------------------------------------------------------
<jsp:forward page="shw">
<jsp:param name="name" value="jack"/>
<jsp:param name="age" value="55"/>
</jsp:forward>
<jsp:include page="">
指令include,称为“静态包含”,它包含页面,不会检查页面的变化情况,即使被包含的页面有变,它也不会将变化以后的数据包含进来,一般用于包含不发生改变的页面,速度比较快
动作include.称为“动态包含”,它包含页面时,会检查被包含的页面数据是否有变化,如果有变化,会将最新的数据包含进来
<jsp:useBean> 用于在页面中实例化对象,并且存储到作用域
<jsp:getProperty> 取得作用域中对象的属性值,并且输出
<jsp:setProperty> 给作用域中存储的对象的属性,重新赋值
${对象}:从小的范围,一直找到大的范围
-----------------------------------------------------------
指定作用域,查询数据:
${pageScope.对象} --------只在page范围中查询,如果没有,也不再其他作用域
${requestScope.对象}--------只在request范围中查询,如果没有,也不再其他作用域
${sessionScope.对象}--------只在session范围中查询,如果没有,也不再其他作用域
${applicationScope.对象}------只在application范围中查询,如果没有,也不再其他作用域
-----------------------------------------------
JSTL JSP的标准标签库
--------------------------------
jstl(标准标签库)
1、核心标签库 <%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
A、通用标签
<c:set> 在页面设置一个变量,存储到指定作用域
<c:set var="name" value="aaa" scope="page"/>
<c:remove> 移除作用域中的变量
<c:remove var="name" scope="page"/>
<c:redirect> 重定向
<c:redirect url="http://www.sina.com.cn"/>
B、逻辑标签
<c:if>
<c:choose>
<c:when>
<c:otherwise>
C、迭代标签
<c:forEach> --循环标签
2、格式标签库
<%@ taglib uri="http://java.sun.com/jstl/fmt_rt" prefix="fmt"%>
<fmt:formatDate>
<fmt:formatNumber>
3、SQL标签库
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
################################配置数据库的连接
<sql:setDataSource
var="con"
url="jdbc:mysql://localhost:3306/jsp"
driver="com.mysql.jdbc.Driver"
user="root"
password="root"
/>
#########################################################
在sql标签库中,增删改都是同一个标签 <sql:update>
在sql标签库中,<sql:param>专用于给语句的占位符?赋值
<sql:update dataSource="${con}">
update inf set name=?,age=? where id=?
<sql:param value="${param.name}"/>
<sql:param value="${param.age}"/>
<sql:param value="${param.id}"/>
</sql:update>
------------------------------------------------------------------
<sql:query> 它专用于查询
该标签执行的结果是返回一个Result对象(它把查询的数据当作一个对象返回)
Result对象,有一个getRows()方法,可以所有行的集合(是数组类型)
getRows();==可以返回一个数组,数组中,放的是所有的行
<sql:query var="t" dataSource="${con}">
select * from inf
</sql>
<Table width="50%" border="1" align="center">
<c:forEach items="${t.rows}" var="k">
<Tr>
<Td>${k.id}</td>
<Td>${k.name}</td>
<Td>${k.age}</td>
</tr>
</c:forEach>
</table>