深入JSP
一、JSP标准标签库(JSTL)
类别:(添加包jstl.jar,standard.jar)
1. 核心标签:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
2. 格式化标签:
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
3. SQL标签:
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
4. XML标签:(需加包XercesImpl.jar,xalan.jar)
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
5. JSTL函数
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
标签的相关函数:http://www.runoob.com/jsp/jsp-jstl.html
二、JSP连接数据库
需添加包mysql-connector-java-5.1.39-bin.jar,
<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/RUNOOB?useUnicode=true&characterEncoding=utf-8"
user="root" password="tw123456"/>
<sql:query dataSource="${snapshot}" var="result">
SELECT * from websites;
</sql:query>
插入:<sql:update dataSource="${snapshot}" var="result">
INSERT INTO 表(...) VALUES (...)
</sql:update>
删除:<sql:update dataSource="${snapshot}" var="count">
DELETE FROM 表 WHERE ...
<sql:param value="${11}" /></sql:update>
修改:<sql:update dataSource="${snapshot}" var="count">
UPDATE 表 SET ... WHERE ...
<sql:param value="${SiteId}" /></sql:update>
三、JSP XML数据处理
需添加包:XercesImpl.jar,xalan.jar
实例:
books.xml文件
<books>
<book>
<name>Padam History</name>
<author>ZARA</author>
<price>100</price></book><book>
<name>Great Mistry</name>
<author>NUHA</author>
<price>2000</price>
</book>
</books>
jsp文件操作:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
<c:import var="bookInfo" url="http://localhost:8080/books.xml"/>
<x:parse xml="${bookInfo}" var="output"/>
<b>The title of the first book is</b>:
<x:out select="$output/books/book[1]/name" />
<br>
<b>The price of the second book</b>:
<x:out select="$output/books/book[2]/price" />
四、JSP javaBean
特点:
1.提供一个默认的无参构造函数。
2.需要被序列化并且实现了Serializable接口。
3.可能有一系列可读写属性。
4.可能有一系列的"getter"或"setter"方法
属性:getPropertyName(),setPropertyName()
访问javaBean对象的属性:
<jsp:useBean id="id" class="bean 编译的类" scope="bean 作用域">
<jsp:setProperty name="bean 的 id" property="属性名"
value="value"/>
<jsp:getProperty name="bean 的 id" property="属性名"/>
...........
</jsp:useBean>
五、JSP 表达式语言(EL)
${表达式} “.”与”[]”运算符基本是相等的。除了这两种情况:
1. 包含特殊字符:${user.first-name}这时候只能写成${user[“first-name”]};
2. 通过变量动态取值:${user[param]} “.”的写法是${user.name} or ${user.sex}....
EL变量:
1. pageContext对象
通过pageContext对象,您可以访问request对象。
eg: ${pageContext.request.queryString}
2.header,headerValues对象
header和headerValues对象用来访问信息头,通过使用 request.getHeader方法和request.getHeaders方法。
3.param,paramValues对象
param和paramValues对象用来访问参数值,通过使用request.getParameter方法和request.getParameterValues方法。
EL运算符:
算术运算符:+,-,*,/(或div)和%(或mod)
关系运算符:==(eq),!=(ne),<(lt),>(gt),<=(le)和>=(ge)
逻辑运算符:&&(and),||(or),!(not)
验证运算符:empty
六、JSP 异常处理
使用exception对象,使用<%@page errorPage="XXXXX"%>指令指定一个错误页面。无论何时页面抛出了异常,JSP容器都会自动地调用错误页面。
在错误页面中加上:<%@page isErrorPage="true"%>
//打印出异常
exception.printStackTrace(response.getWriter());
七、JSP 自定义标签
http://blog.csdn.net/alan_tw/article/details/78402183