【1】.jsp简介
java server page,jsp保存在服务器
jsp=java片段+jstl+html+javascript+css
【2】.javaEE13中核心技术
1.jsp
2.servlet
3.JDBC
4.javaMail
5.JTA
6.JTS
7.JAF
8.JMS
9.XML
10.JNDI
11.EJB
12.RMI
13.Java IDL/CORBA
【3】.框架
表示层技术是在JSP页面中用HTML标签、JavaScript脚本、Ajax。
中间层技术主要是JSP、Servlet、JSTL、JavaBean、Struts框架。
数据层技术用的是JDBC、JNDI、Hibernate框架。
【4】.JSP四种作用域
page:当前页面,也就是只要跳到别的页面就失效了
request:一次会话,简单的理解就是一次请求范围内有效
session:浏览器进程,只要当前页面没有被关闭(没有被程序强制清除),不管怎么跳转都是有效的
application:服务器,只要服务器没有重启(没有被程序强制清除),数据就有效
【5】.JSP九大内置对象
request 请求对象 类型 javax.servlet.ServletRequest 作用域 Request
response 响应对象 类型 javax.servlet.SrvletResponse 作用域 Page
pageContext 页面上下文对象 类型 javax.servlet.jsp.PageContext 作用域 Page
session 会话对象 类型 javax.servlet.http.HttpSession 作用域 Session
application 应用程序对象 类型 javax.servlet.ServletContext 作用域 Application
out 输出对象 类型 javax.servlet.jsp.JspWriter 作用域 Page
config 配置对象 类型 javax.servlet.ServletConfig 作用域 Page
page 页面对象 类型 javax.lang.Object 作用域 Page
exception 例外对象 类型 javax.lang.Throwable 作用域 page
“exception” 对象则代表了JSP文件运行时所产生的例外对象,此对象不能在一般JSP文件中直接使用,
而只能在使用了“<%@ page isErrorPage="true "%>”的JSP文件中使用。
【6】.jstl标签
1.指令元素
page指令:page 指令指明与JSP容器的沟通方式
<%@ page language="java" pageEncoding="UTF-8" contentType="text/html;charset=UTF-8"
import="" session="" errorPage="" deferredSyntaxAllowedAsLiteral="" autoFlush="true"
buffer="8kb" isErrorPage="false" info="" extends="" isELIgnored="false" isThreadSafe="true" %>
include指令:静态导入。复用公共页面。
<%@ include file="test.jsp" %>
taglib指令:导入标签库。
2.脚本元素
java片段:合法的Java代码 <% %>
<%
for(int i=0;i<10;i++){
System.out.println(i+1);
}
%>
表达式:计算该表达式的结果,将结果显示出来。 <%= %>
<%=
Current Time Is:<%= new java.util.Date() %>
%>
declaration声明:"声明"用的少,一般是用"表达式"和"脚本"。<%! %> 在jsp中定义变量和方法 如:
<%!
String name = "hello";
public void print(){
System.out.println(name);
}
%>
3.动作元素 JSP的13个内置标签 【参考:】
-------------动态导入,会生成两个jsp->servlet文件。区别于include指令为静态导入。------------
<jsp:include page="test03.jsp" flush="true" />
----------------------向include的页面传递参数。----------------------------------------------
<jsp:include page="test03.jsp" flush="true">
<jsp:param value="hello" name="first_name"/>
<jsp:param value="world" name="last_name"/>
</jsp:include>
-----------------------转发请求的数据到指定页面---------------------------------------------
<jsp:forward page="forwrad.jsp" />
-----------------------创建Bean对象--------------------------------------------------------
<!-- 方式1 使用userBean标签(不建议) -->
<jsp:useBean id="person" class="com.hellojsp.Person" scope="page" />
<jsp:setProperty name="person" property="name" value="张三" />
<jsp:setProperty name="person" property="age" value="18" />
<jsp:getProperty property="name" name="person" />
<jsp:getProperty property="age" name="person" />
<!-- 方式2 使用java片段(推荐)-->
<%
out.println("<br/><hr/>");
com.hellojsp.Person person2 = new com.hellojsp.Person();
person2.setName("李四");
person2.setAge(28);
out.println(person2.toString());
%>
--------------------------------------------------------------------
<jsp:attribute name=""></jsp:attribute>
<jsp:body></jsp:body>
<jsp:element name=""></jsp:element>
<jsp:fallback></jsp:fallback>
<jsp:output></jsp:output>
<jsp:params></jsp:params>
<jsp:plugin code="" codebase="" type="bean"></jsp:plugin>
4.jstl标签库之core标签 【参考:http://www.runoob.com/jsp/jsp-jstl.html】
--------------------------------------------------------------------
<!-- 异常处理 -->
<c:catch var="catchException">
<% int a=5/0; %>
</c:catch>
<c:if test="${catchException != null}">
<p>异常为${catchException}<br/>
发生了异常${catchException.message}</p>
</c:if>
--------------------------------------------------------------------
<!--判断标签 -->
<c:set var="salary" scope="session" value="${2000*2}" />
<p>
你的工资为 :
<c:out value="${salary}" />
</p>
<c:choose>
<c:when test="${salary <= 0}">
<p>太惨了。</p>
</c:when>
<c:when test="${salary > 1000}">
<p>还不错。</p>
</c:when>
<c:otherwise>
<p>hell。</p>
</c:otherwise>
</c:choose>
--------------------------------------------------------------------
<!-- forEach循环 -->
<c:forEach var="num" begin="1" end="5" step="1" varStatus="status">
items1:<c:out value="${num}" /><br/>
</c:forEach>
<!-- forTokens循环 -->
<c:forTokens items="google,alibaba,tencent,baidu,huawei" var="name" delims=",">
items2:<c:out value="${name}" /><br/>
</c:forTokens>
--------------------------------------------------------------------
<!-- if标签 -->
<c:if test="${salary>3000}">
工资为:<c:out value="${salary}"></c:out>
</c:if>
--------------------------------------------------------------------
<!-- url和param传参标签 -->
<c:url var="myURL" value="main.jsp">
<c:param name="name" value="Runoob"/>
<c:param name="url" value="www.runoob.com"/>
</c:url>
<a href="<c:out value="${myURL}"/>">
使用 <c:param> 为指定URL发送两个参数。</a>
--------------------------------------------------------------------
<!-- redirct重定向,作用类似forward -->
<c:redirect url="redirect.jsp" />
--------------------------------------------------------------------
<!-- remove标签 -->
remove前:<c:out value="${salary}" /><br/>
<c:remove var="salary" />
remove后:<c:out value="${salary}" /><br/>
--------------------------------------------------------------------
5.jstl标签之sql标签
<!-- 设置数据库驱动 -->
<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/runoob?useUnicode=true&characterEncoding=utf-8"
user="root" password="kevin_hy"/>
<!--插入数据-->
<sql:update datSource="${snapshot}" var="result">
INSERT INTO websites (name,url,alexa,country) VALUES ('菜鸟教程移动站', 'http://m.runoob.com', 5093, 'CN');
</sql:update>
<!--修改数据-->
<sql:update dataSource="${snapshot}" var="count">
DELETE FROM websites WHERE Id = ?
<sql:param value="${11}" />
</sql:update>
<!--删除数据-->
<c:set var="SiteId" value="3"/>
<sql:update dataSource="${snapshot}" var="count">
UPDATE websites SET name = 'RUNOOB' WHERE Id = ?
<sql:param value="${SiteId}" />
</sql:update>
<!--查询数据-->
<sql:query dataSource="${snapshot}" var="result">
SELECT * from websites;
</sql:query>
<!--遍历结果集-->
<c:forEach items="${result.rows}" var="rs">
<c:out value="${rs.id}"/>
<c:out value="${rs.name}"/>
<c:out value="${rs.url}"/>
<c:out value="${rs.alexa}"/>
<c:out value="${rs.country}"/><br/>
</c:forEach>
--------------------------------------------------------------------
6.jstl标签之xml标签 要导包【xalan.jar xercesImpl.jar xml-apis.jar】
<h1>xml解析</h1>
<c:import var="bookInfo" url="http://localhost:8080/HelloJSP01/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" />
--------------------------------------------------------------------
7.EL表达式 【参考:http://www.runoob.com/jsp/jsp-expression-language.html】
JSP EL隐含对象
隐含对象
描述
pageScope
page 作用域
requestScope
request 作用域
sessionScope
session 作用域
applicationScope
application 作用域
param
Request 对象的参数,字符串
paramValues
Request对象的参数,字符串集合
header
HTTP 信息头,字符串
headerValues
HTTP 信息头,字符串集合
initParam
上下文初始化参数
cookie
Cookie值
pageContext
当前页面的pageContext