jsp笔记整理

来源:互联网 发布:淘宝网靠谱么 编辑:程序博客网 时间:2024/05/20 11:21
【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个内置标签 【参考:http://blog.csdn.net/wdengniz/article/details/8071462】

-------------动态导入,会生成两个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}"/>">
使用 &lt;c:param&gt; 为指定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































原创粉丝点击