亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

jsp基礎(chǔ)知識(shí)

Original 2016-11-09 15:23:14 701
abstract:一、jsp的3個(gè)指令JSP指令(directive)是為JSP引擎而設(shè)計(jì)的,它們并不直接產(chǎn)生任何可見(jiàn)輸出,而只是告訴引擎如何處理JSP頁(yè)面中的其余部分。在JSP 2.0規(guī)范中共定義了三個(gè)指令:page指令1、page:作用:用于定義JSP頁(yè)面的各種屬性屬性:1.1、 import 和java代碼中的import是一樣的<%@ page import="java.util.Date,

一、jsp的3個(gè)指令

JSP指令(directive)是為JSP引擎而設(shè)計(jì)的,它們并不直接產(chǎn)生任何可見(jiàn)輸出,而只是告訴引擎如何處理JSP頁(yè)面中的其余部分。

在JSP 2.0規(guī)范中共定義了三個(gè)指令:

page指令

1、page:
作用:用于定義JSP頁(yè)面的各種屬性
屬性:
1.1、 import 和java代碼中的import是一樣的

<%@ page import="java.util.Date,java.util.List"%>

或者:
<%@ page import="java.util.Date"%>

<%@ page import="java.util.List"%>

JSP會(huì)自動(dòng)導(dǎo)入以下的包:

import java.lang.*;

import javax.servlet.*;

import javax.servlet.http.*;

import javax.servlet.jsp.*;

1.2、 session: 是否會(huì)自動(dòng)創(chuàng)建session對(duì)象。默認(rèn)值是true;

1.3、 buffer: JSP中有javax.servlet.jsp.JspWriter輸出字符流。設(shè)置。輸出數(shù)據(jù)的緩存大小,默認(rèn)是8kb.

1.4 errorPage: 如果頁(yè)面中有錯(cuò)誤,則跳轉(zhuǎn)到指定的資源。

errorPage="/uri" 如果寫“/”則代表當(dāng)前應(yīng)用的目錄下,絕對(duì)路徑。

如果不寫“/”則代表相對(duì)路徑。

1.5、 isErrorPage: 是否創(chuàng)建throwable對(duì)象。默認(rèn)是false;

1.6、 contextType: 等同于response.setContextType("text/html;charset=utf-8");

1.7、 pageEncoding: 告訴JSP引擎要翻譯的文件使用的編碼。

1.8、 isELIgnored: 是否支持EL表達(dá)式。 默認(rèn)是false

<%@ page pageEncoding="gbk" %>

2、include:
靜態(tài)包含:把其它資源包含到當(dāng)前頁(yè)面中。

<%@ include file="/include/header.jsp" %>

動(dòng)態(tài)包含:

<jsp:include page="/include/header.jsp"></jsp:include>

兩者的區(qū)別:翻譯的時(shí)間段不同

前者:在翻譯時(shí)就把兩個(gè)文件合并

后者:不會(huì)合并文件,當(dāng)代碼執(zhí)行到include時(shí),才包含另一個(gè)文件的內(nèi)容。

原則:能用靜的就不用動(dòng)的。

3、taglib

作用:在JSP頁(yè)面中導(dǎo)入JSTL標(biāo)簽庫(kù)。替換jsp中的java代碼片段。

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

二、jsp的6個(gè)動(dòng)作

 使用標(biāo)簽的形式來(lái)表示一段java代碼。

如: <jsp:include page="2.jsp"></jsp:include>

<jsp:include > 動(dòng)態(tài)包含

<jsp:forward> 請(qǐng)求轉(zhuǎn)發(fā)

<jsp:param> 設(shè)置請(qǐng)求參數(shù)

<jsp:useBean> 創(chuàng)建一個(gè)對(duì)象

<jsp:setProperty> 給指定的對(duì)象屬性賦值

<jsp:getProperty> 取出指定對(duì)象的屬性值

<%
   Student stu = new Student();
   stu.setName("tom");    
   out.print(stu.getName());      
   //request.getRequestDispatcher("/7.jsp").forward(request, response);
%>
 
<jsp:useBean id="stu1" class="com.itheima.entity.Student"></jsp:useBean>
<jsp:setProperty property="name" name="stu1" value="jerry"/>
<jsp:getProperty property="name" name="stu1"/>
<!-- http://localhost:8080/day11_02_jsp2/6.jsp?name=123 -->
<jsp:forward page="/7.jsp">
   <jsp:param value="123" name="name"/>
   <jsp:param value="333" name="pwd"/>
</jsp:forward>

三、jsp的9個(gè)內(nèi)置對(duì)象(指在JSP的<%=%> 和<% %>中可以直接使用的對(duì)象)

1.request

2.response

3.config

4.application

5.exception

6.Session

7.page

8.out

9.pageContext

1、本身也是一個(gè)域?qū)ο螅核梢圆僮髌渌齻€(gè)域?qū)ο螅╮equest session application)的數(shù)據(jù)

void setAttribute(String name,Object o);

Object getAttribute(String name);

void removeAttribute(String name);

操作其它域?qū)ο蟮姆椒?/p>

void setAttribute(String name,Object o,int Scope);

Object getAttribute(String name,int Scope);

void removeAttribute(String name,int Scope);

scpoe的值:

PageContext.PAGE_SCOPE

PageContext.REQUEST_SCOPE

PageContext.SESSION_SCOPE

PageContext.APPLICATION_SCOPE

findAttribute(String name); 自動(dòng)從page request session application依次查找,找到了就取值,結(jié)束查找。

<body>
    <%
        //pageContext.setAttribute("p", "pp");
        pageContext.setAttribute("p", "pp", PageContext.PAGE_SCOPE);
         
        //pageContext.setAttribute("p", "pp", PageContext.REQUEST_SCOPE);
        request.setAttribute("p", "request");
         
        //pageContext.setAttribute("p", "pp", PageContext.SESSION_SCOPE);
        //session.setAttribute("p", "session");
         
        //pageContext.setAttribute("p", "pp", PageContext.APPLICATION_SCOPE);
        application.setAttribute("p", "application");
         
        //request.getRequestDispatcher("/2.jsp").forward(request, response);
        //response.sendRedirect(request.getContextPath()+"/2.jsp");
        pageContext.forward("/2.jsp");
     %>
</body>
<body>
    <%
        /* String p = (String)pageContext.getAttribute("p");
        out.print(p); */
        //out.print(request.getAttribute("p"));
     %>
      
     <%--  <%=session.getAttribute("p") %>  --%>
     
    <%--  <%=application.getAttribute("p") %> --%>
     
    <%=pageContext.findAttribute("p") %>
</body>

四、四大域?qū)ο螅簩?shí)際開(kāi)發(fā)

PageContext : pageConext 存放的數(shù)據(jù)在當(dāng)前頁(yè)面有效。開(kāi)發(fā)時(shí)使用較少。

ServletRequest: request 存放的數(shù)據(jù)在一次請(qǐng)求(轉(zhuǎn)發(fā))內(nèi)有效。使用非常多。

HttpSession: session 存放的數(shù)據(jù)在一次會(huì)話中有效。使用的比較多。如:存放用戶的登錄信息,購(gòu)物車功能。

ServletContext: application 存放的數(shù)據(jù)在整個(gè)應(yīng)用范圍內(nèi)都有效。因?yàn)榉秶?,?yīng)盡量少用。

五、EL表達(dá)式

1、EL概述和基本語(yǔ)法

EL表達(dá)式:expression language 表達(dá)式語(yǔ)言

要簡(jiǎn)化jsp中java代碼開(kāi)發(fā)。

它不是一種開(kāi)發(fā)語(yǔ)言,是jsp中獲取數(shù)據(jù)的一種規(guī)范

2、EL的具體功能

a、獲取數(shù)據(jù)

EL表達(dá)式只能獲取存在4個(gè)作用域中的數(shù)據(jù)

${u} 原理: pageContext.findAttribute("u");

url?name=tom ${param.name}

EL獲取對(duì)于null這樣的數(shù)據(jù),在頁(yè)面中表現(xiàn)為空字符串

${u.name} == u.getName()方法

點(diǎn)(.) 運(yùn)算符相當(dāng)于調(diào)了getter方法,點(diǎn)后頁(yè)面跟的是屬性名。

屬性導(dǎo)航

[]運(yùn)算符:點(diǎn)能做的,它也能做; 它能做的,點(diǎn)不一定能做

${student.name}== ${student['name']} == ${student["name"]}

b、運(yùn)算

empty

判斷null,空字符串和沒(méi)有元素的集合(即使集合對(duì)象本身不為null)都返回true

三元運(yùn)算符

c、隱式對(duì)象:11個(gè)

EL隱式對(duì)象引用名稱 類型 JSP內(nèi)置對(duì)象名稱 說(shuō)明

10.png

${param.userName } 等價(jià)于${param.userName }==request.getParamemter("userName");
${paramValues.hobby[0] } 取數(shù)組的第一個(gè)
${header["User-agent"] }
${cookie.JSESSIONID.value }
<form action="${pageContext.request.contextPath }/success.jsp" method="post">
用戶名:<input type="text" name="userName" /><br /> 密碼:<input
type="password" name="pwd" /><br /> <input type="submit" value="登錄" /><br />
</form>

六、JSTL

1、什么是JSTL

JSTL(JavaServerPages Standard Tag Library)JSP標(biāo)準(zhǔn)標(biāo)簽庫(kù)

2、JSTL的作用

使用JSTL實(shí)現(xiàn)JSP頁(yè)面中邏輯處理。如判斷、循環(huán)等。

3、使用JSTL

1)在JSP頁(yè)面添加taglib指令

2)使用JSTL標(biāo)簽

4、常用標(biāo)簽介紹

核心標(biāo)簽庫(kù):

> 通用標(biāo)簽: set、 out、 remove

> 條件標(biāo)簽:if choose

> 迭帶標(biāo)簽:foreach


Release Notes

Popular Entries