javaweb項(xiàng)目視頻-gzu2JavaWeb應(yīng)用服務(wù)器Tomcat安裝與配置_第1頁(yè)
javaweb項(xiàng)目視頻-gzu2JavaWeb應(yīng)用服務(wù)器Tomcat安裝與配置_第2頁(yè)
javaweb項(xiàng)目視頻-gzu2JavaWeb應(yīng)用服務(wù)器Tomcat安裝與配置_第3頁(yè)
javaweb項(xiàng)目視頻-gzu2JavaWeb應(yīng)用服務(wù)器Tomcat安裝與配置_第4頁(yè)
javaweb項(xiàng)目視頻-gzu2JavaWeb應(yīng)用服務(wù)器Tomcat安裝與配置_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余383頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

JavaWeb應(yīng)用服務(wù)器——Tomcat的安裝與配 安裝 web容 2.1.1 安裝 服務(wù)器的配置(手動(dòng) eclipse與安 漢化 集成eclipse與 完善Web項(xiàng)目開發(fā)所需配 第一個(gè)Web項(xiàng) JSP基礎(chǔ)語(yǔ) JSP注 第一種 第二種 第三種 page指 設(shè)置頁(yè)面的 設(shè)置文件編 錯(cuò)誤頁(yè)設(shè) 數(shù)據(jù)庫(kù)連接操作 包含指 靜態(tài)包 動(dòng)態(tài)包 跳轉(zhuǎn)指 作 JSP內(nèi)置對(duì) JSP內(nèi)置對(duì)象概 四種屬性范 page屬性范 request屬性范 session屬性范 application屬性范 深入page屬性范 request對(duì) 亂碼解 接受請(qǐng)求參 顯示全部的頭信 response對(duì) 設(shè)置頭信 頁(yè)面跳 操 取得Session 登錄及注 判斷新用 取得用戶的操作時(shí) application對(duì) 取得虛 對(duì)應(yīng)的絕對(duì)路 計(jì)數(shù) config對(duì) Web安全 config對(duì) out對(duì) pageContext對(duì) JavaBean簡(jiǎn) 在JSP中使用 使用JSP的page指令導(dǎo)入所需要的 使用<jsp:useBean>指 JavaBean與表 設(shè)置屬性 取得屬性 JavaBean的保存范 page范圍內(nèi)的 request范圍的 session范圍內(nèi)的 application范圍的 JavaBean的刪 作業(yè):驗(yàn) DAO設(shè)計(jì)模 DAO設(shè)計(jì)模式簡(jiǎn) DAO開 JSP調(diào)用 文件上 上個(gè)文 混合表 為上傳文件自動(dòng)命 批量上 Servlet簡(jiǎn) 第一個(gè)Servlet程序(手動(dòng)創(chuàng)建 Servlet生命周 取得初始化配置信 取得其他內(nèi)置對(duì) 取得HttpSession實(shí) 取得ServletContext實(shí) Servlet跳 客戶端跳 服務(wù)器端跳 Web開發(fā)模 ModeII:Model-View- mvc設(shè)計(jì)模式應(yīng) 表達(dá)式語(yǔ) 表達(dá)式語(yǔ) 表達(dá)式語(yǔ)言的內(nèi)置對(duì) 9.2.14種屬性范圍的內(nèi) 調(diào)用內(nèi)置對(duì)象操 接收請(qǐng)求參 集合操 在MVC中應(yīng)用 運(yùn)算 預(yù)習(xí) JSP標(biāo)準(zhǔn) JSTL簡(jiǎn) 安裝 <c:remove><c:catch><c:if><c:choose>、<c:when>、<c:otherwise><c:forEach><c:forTokens><c:import><c:url><c:redirect>11分 JSP中分頁(yè)實(shí) 作業(yè):抽象出分頁(yè)控 12Session購(gòu)物 product表 image.jsp頁(yè)面 分頁(yè)頁(yè) login.jsp登錄頁(yè)面 e.jsp歡迎頁(yè) logout.jsp注銷頁(yè)面 product_list.jsp產(chǎn)品列表 作業(yè):將上述代碼使用MVC設(shè)計(jì)模式實(shí) 項(xiàng)目實(shí)戰(zhàn)——購(gòu)物項(xiàng)目需求概 概 主要功 運(yùn)行環(huán) 功能需 商品顯示模 用戶模 購(gòu)物車模 訂單模 引 編寫目 術(shù)語(yǔ)或縮 總體設(shè) 系統(tǒng)說(shuō) 總體架 包結(jié)構(gòu)、類分 業(yè)務(wù)模型 控制 視圖 實(shí)現(xiàn)思 數(shù)據(jù)庫(kù)設(shè) 表結(jié) 表關(guān) 可擴(kuò)展的標(biāo)記HTML(超文本標(biāo)記語(yǔ)言:<?xml<?xmlversion="1.0"encoding="utf-XML由倆個(gè)部分組成第一個(gè)部分:前導(dǎo)區(qū),規(guī)定XML的一些屬性,一般是有三個(gè)屬性version:表示XML的版本,現(xiàn)在encoding:頁(yè)面中使用的文字編碼,如果我們的頁(yè)面中有中文,就定要指定編碼。在這里我們就使用utf-standalone:此 或者XSL控制面可以存放多個(gè)子元素,但是要求每一個(gè)元素都必須完結(jié),每一個(gè)標(biāo)記都是區(qū)分大小寫的。對(duì)比一下HTMLXML的區(qū)別比較內(nèi)可擴(kuò)展可以定義新的標(biāo)記語(yǔ)言側(cè)重側(cè)重點(diǎn)在于如側(cè)重在于如何結(jié)構(gòu)化的描述信語(yǔ)法要對(duì)于標(biāo)記的嵌套、配對(duì)不嚴(yán)格,不要求標(biāo)嚴(yán)格要求遵循統(tǒng)一的順序結(jié)構(gòu)可讀性及可難于閱讀以及結(jié)構(gòu)清晰、便于數(shù)據(jù)和顯示的關(guān)內(nèi)容描述和顯示融合在一內(nèi)容描述與顯示相分離保值具有保值在網(wǎng)絡(luò)應(yīng)用程序開發(fā)中,體系結(jié)構(gòu)一般分為C/SB/S兩種結(jié)構(gòu)C/S結(jié)構(gòu):客戶端/服務(wù)器(Client/Server)在JavaWeb開始之前,我們需要幾個(gè)組件:JavaWeb應(yīng)用服務(wù)器——Tomcat的安裝與JavaWeb應(yīng)用服務(wù)器——Tomcat的安裝地址 打開cmd,輸入如果見到web容在進(jìn)行JavaWeb開發(fā)時(shí)必須有Web服務(wù)器的支持,要運(yùn)行一JavaWeb程序必須有相web容器支持Tomcatweb容器是我們的地址選擇你要的Tomcat版選擇的文件就可以了直接將的zip文件解壓即可Tomcat主要 logs:保存的服務(wù)器的系統(tǒng)日 應(yīng)用程序存 ,文本項(xiàng)目保存在 中即work:臨時(shí)文件夾,生成所有的臨時(shí)文件(*.java、器中輸入:8080看到服務(wù)器的配置(手動(dòng)1、修改端<Connectorport="8080"redirectPort="8443"/><Connectorport="8080"redirectPort="8443"/>將port修改為80,此時(shí)在瀏覽器中只需要輸入即可。默認(rèn)采用8080.每次修改完服務(wù)器配置都需要重新啟動(dòng)服2、配置在Tomcat的服務(wù)器配置中,最重要的就是配置虛擬 都保存了一個(gè)完整的Web項(xiàng)目。 盤中建立一個(gè)文<?xmlversion="1.0"encoding="ISO-8859-<web-app"h/xml/ns/javaee/web-<display-name>gzu</display-eto</web-夾叫做gzu,并且在此文件夾中建立WB-INF的<?xmlversion="1.0"encoding="ISO-8859-<web-app"h/xml/ns/javaee/web-<display-name>gzu</display-eto</web-web.xml是整個(gè)Web的文件 之后,下面進(jìn)行服務(wù)器的配置。打開Tomcat安裝目錄的conf/server.xml文件,在其中加其中 表示瀏覽器上的的虛擬路徑的名稱在conf/web.xml中的然后重啟服務(wù)器2XX:請(qǐng)求成3XX:重定4XX:客戶機(jī)出現(xiàn)的錯(cuò)404:服務(wù)器中找不到相應(yīng)的文5XX:服務(wù)器中出現(xiàn)500:服務(wù)器的錯(cuò)誤3、配置首Tomcat服務(wù)器配置完虛擬 中建立一個(gè)index.html文件。eclipse與安地址選擇自己的版help=》InstallNewSoft看到如下workwith里面輸入n等待安裝就好了eclipse找到窗口=》首選找完善Webeclipse指定web瀏覽JSP頁(yè)面的編碼格將整個(gè)工作空間設(shè)置為UTF-第一Web項(xiàng)新<%@<%@pagelanguage="java"contentType="text/html;charset=UTF-<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN" JSP基礎(chǔ)JSP(javaserverpage)在JSP中其的基本語(yǔ)法還是java,所以java中各種判斷、循環(huán)等語(yǔ)JSP中仍然可以使用。所以在本節(jié)中只介紹JSP的一些基本語(yǔ)法。JSP注<!—顯式注釋<!—顯式注釋隱式注釋有三種第三種:<%--注釋-- 注<h3>本demo是為了演示注釋的基本應(yīng)用而準(zhǔn)備的//Java提供的//Java提供的單行注釋,客戶端是看不到<%--這是JSP提供的注釋,客戶端還是看不到!在JSP中,最重要的就是Scriptlet(小程序,所有嵌入在HTML代碼Java程序都必須使Scriptlet標(biāo)記出JSP中,一共有3種Scriptlet代碼。第二種:第三種:<%=<>intx=StringStringstr=out.print("<h2>x="+x+大學(xué)的官網(wǎng)是:"定義全局常量、方法、<>publicstaticfinaldoublePAI=publicintadd(intx,intreturn} privateStringprivateint////(Stringname,=this.age=}publicStringreturn"用戶名是:是:}}//普通的在此Scriptlet可以定義全局常量,方法和類,但是在<%!%>里面不能出現(xiàn)任何其他的語(yǔ)句,所以又使用第一種scriptlet進(jìn)行輸出。注意:盡量不要在注意:盡量不要在JSP第三Scriptlet的主要功能是輸出一個(gè)變量或者是一個(gè)具體的值,使用<%=%>的形式完成。也叫表達(dá)式輸出。intx=19;Stringstr="<h2>x的值是:<%=x<h1>貴大的官網(wǎng)是:<%=str建議使用<%=%>來(lái)進(jìn)行輸出scriptletjavascriptlet代這個(gè)是后來(lái)有的,大量的<%%>這種在程序中,會(huì)是頁(yè)面起來(lái)非常,<jsp:scriptlet>就是好看page指page指令在jsp頁(yè)面中定義了相關(guān)屬性。page指令常用的屬性有:是,到客戶端的輸出被刷新,如果設(shè)置為false,表示緩沖區(qū)溢出。默認(rèn)為true。buffer:指定到客戶端輸出流的緩沖模式,如果設(shè)置為none,表示不中文,則contentType="text/html;charset=UTF-8"errorPage:定義了頁(yè)面出錯(cuò)時(shí)要跳轉(zhuǎn)的頁(yè)isErrorPage屬性一isErrorPage:可以設(shè)置為truefalse,表示此頁(yè)面出錯(cuò)時(shí)是否處理extends:主要定義此JSP頁(yè)面產(chǎn)生的Servlet是從哪個(gè)父類擴(kuò)展而來(lái)import:在JSP中導(dǎo)包(表示可以出現(xiàn)多次info:JSP頁(yè)面的信language:用來(lái)定義要使用的語(yǔ)言,目前只有java sessiontruefalse,默認(rèn)true的。如果設(shè)置為true表示一個(gè)JSP頁(yè)面可以處理多個(gè)用戶的請(qǐng)求。設(shè)置頁(yè)面page指令中,使用最多的是就contentType屬性,如果想讓一JSP文件顯示中文,則必須對(duì)整個(gè)頁(yè)面指定MIME編碼。<!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html"<metahttp-equiv="Content-Type"content="text/html;<title>第三種intx=Stringstr=<<h2>x的值是:<%=x<h1>貴大的官網(wǎng)是:<%=str在上面的程序中,page指定的藥使用的開發(fā)語(yǔ)言java,然后通過(guò)contentType進(jìn)行設(shè)置,本頁(yè)面是按照HTML文本文件進(jìn)行顯示,頁(yè)面的編碼是utf-8。設(shè)置文件編 進(jìn)行編碼的設(shè)<%@<%@pagelanguage="java"pageEncoding="UTF-contentType 里面的charset=”utf-8”pageEncoding="UTF-8"當(dāng)前JSP頁(yè)面文件本身的錯(cuò)誤頁(yè)設(shè)<!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<metahttp-equiv="Content-Type"content="text/html;<title>異常頁(yè)面<h1>intx=<%@pageerrorPage="error.jsp"<!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;pageEncodingpageEncoding="UTF-<metahttp-equiv="Content-Type"content="text/html;<title>錯(cuò)誤頁(yè)面<h1>發(fā)生錯(cuò)誤了,正在努力查找問(wèn)題,請(qǐng)稍后。。。。。<%@pageisErrorPage="true"數(shù)據(jù)庫(kù)連接操作<!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<metahttp-equiv="Content-Type"content="text/html;<%@page<title><title>列出數(shù)據(jù)<%!publicstaticfinalStringDBDRIVER=publicstaticfinalStringDBURL="jdbc:mysql://localhost:330/schol";//schol是你要操作的數(shù)據(jù)庫(kù)的庫(kù)名publicstaticfinalStringDBUSR=publicstaticfinalStringDBPASS=Connectionconn=null;PreparedStatementps=null;ResultSetrs=null;tryconnDriverManager.getConnection(DBURL,DBUSR,DBPASS);//Stringsql"SELECT*fromstudent";//語(yǔ)psps=conn.prepareStatement(sql);//prepareStatementrs=ps.executeQuery();//<tableborder="1"<td>學(xué)號(hào)while(rs.next()){//循環(huán)打印出student數(shù)intsnors.getInt(1);//Stringsnamers.getString(2);//名}}}catch(Exceptione){//異常處理finally{//程序的統(tǒng)一出口}靜態(tài)包含指令在JSP編譯的時(shí)候一個(gè)包含文本或代碼的文件,這個(gè)過(guò)程是靜態(tài)的,包含的文件可以是JSP、HL、文本也可以是一段ava代碼。注意:在一個(gè)完整的HTML中,對(duì)于<html>、<head>、<body>、<title>語(yǔ)法<%@<%@includefile=”要包含的文件的路徑先準(zhǔn)備三個(gè)被包含的文<<h2>被包含的第一HTML文件<%@<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<h3>JSP文件<h4><h4>被包含的文件<!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<metahttp-equiv="Content-Type"content="text/html;<title>在此標(biāo)題<h1>下面演示的是靜態(tài)包含<%@<%@includefile="include1.html"<%@includefile="include2.jsp"<%@includefile="include3.inc"還是靜態(tài)的,如果是靜態(tài)的,就靜態(tài)包含一樣,如果是動(dòng)態(tài)的,則先進(jìn)行動(dòng)態(tài)處理,然后在將處理后的結(jié)果顯示出來(lái)。語(yǔ)法<jsp:include<jsp:includepage=”{要包含的文件路徑|<%=%>}”傳遞參數(shù)<jsp:include<jsp:includepage=”{要包含的文件路徑|<%=%>}”<jsp:paramname=”參數(shù)名”value=”參數(shù)值flush屬性可選的值有truefalse。當(dāng)設(shè)置false的時(shí)候表示這個(gè)網(wǎng)頁(yè)完全被讀進(jìn)來(lái)以后在輸出。當(dāng)設(shè)置為true時(shí),只有當(dāng)網(wǎng)頁(yè)中的buffer滿了之后才會(huì)輸出,一般情況都會(huì)設(shè)置成true,默認(rèn)值就是true。<!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<metahttp-equiv="Content-Type"content="text/html;<title>在此標(biāo)題<h1>下面演示的是動(dòng)態(tài)包含<jsp:includepage="include1.html"<jsp:includepage="include2.jsp"<jsp:includepage="include3.inc"動(dòng)態(tài)包含<!DOCTYPE<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<metahttp-equiv="Content-Type"content="text/html;<title>標(biāo)題<%Stringusername="hunk";<h1>動(dòng)態(tài)包含含參<jsp:include<jsp:paramvalue="<%=username%>"<jsp:paramvalue="30"被包含頁(yè)<%@<%@pagelanguage="java"charset=UTFEncoding="UTF-<h1>參數(shù)<h1>參數(shù)2:<%=request.getParameter("age")學(xué)過(guò)了靜態(tài)包含和動(dòng)態(tài)包含,使用哪個(gè)更web開發(fā)的過(guò)程中可以使用<jsp:forward>,將一個(gè)用戶的請(qǐng)求一個(gè)語(yǔ)法 page=”要跳轉(zhuǎn)的文件路徑傳遞參數(shù) page=”要跳轉(zhuǎn)的文件路徑<jsp:pramaname=””<!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<metahttp-equiv="Content-Type"content="text/html;<title>標(biāo)題<%Stringusername="hunk";<jsp:forward<jsp:paramvalue="<%=username%>"<jsp:paramvalue="30"<!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<metahttp-equiv="Content-Type"content="text/html;<title>標(biāo)題<h1>這是跳轉(zhuǎn)之后的頁(yè)面<h2><h2>作JSP+JDBC實(shí)現(xiàn)用戶登錄分析:數(shù)據(jù)庫(kù),有一個(gè)表user頁(yè)面:登錄頁(yè)login.html,就一個(gè)表傳遞給 在這個(gè)頁(yè)面中是不是要連接數(shù)據(jù)在這個(gè) 頁(yè)面中要實(shí)現(xiàn)跳轉(zhuǎn),如果成功要跳轉(zhuǎn)至成功頁(yè),失敗話跳轉(zhuǎn)至失敗<!<!doctype<metacharset="utf-<title>登錄<h1>請(qǐng)您登錄<formaction="login_check.jsp"<table<td>用戶名<td><inputtype="text"<td>密;<td><input<td><inputtype="submit"value="登錄<td><inputtype="reset"value="重置<!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<%@page<metahttp-equiv="Content-Type"content="text/html;<title>登錄<%!publicstaticfinalStringDBDRIVER=publicstaticfinalStringDBURL=publicstaticfinalStringDBUSER=publicstaticfinalStringDBPASS=Connectionconn=PreparedStatementps=ResultSetrs=booleanflag=Stringname={conn=DriverManager.getConnection(DBURL,DBUSER,DBPASS);Stringsql="selectnamefromuserwhere=?andpassword=ps=rs=if(rs.next())name=rs.getString(1);flag=true;}}catch(Exception{}finally{}catch(Exception{}}if(flag)<jsp:forward<jsp:paramvalue="<%=name%>"name="username"}else<jsp:forwardpage="login_failure.jsp"}<!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;pageEncodingpageEncoding="UTF-<metahttp-equiv="Content-Type"content="text/html;<title>登錄成功<h1>登錄成功<!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<<metahttp-equiv="Content-Type"charset=UTF-<title>登錄失敗<h1>登錄失敗了<h2>錯(cuò)誤,請(qǐng)返回href="login.html">登錄JSP內(nèi)置JSP內(nèi)置對(duì)象Web程序開發(fā)中最重在JSP中為了方便用戶開發(fā),給我們提供了9大內(nèi)置對(duì)象,這些內(nèi)置對(duì)象是由Web容器進(jìn)行實(shí)例化的,不需要向我們?cè)贘ava中那樣,看見對(duì)象就得使new關(guān)鍵字來(lái)實(shí)例化對(duì)象JSP中,這些內(nèi)置對(duì)象JSP的頁(yè)面容器得到用戶的請(qǐng)求信息服務(wù)器向客戶端的響應(yīng)信用來(lái)保存每一個(gè)用戶的信息表示所有用戶的共享信息javax.servlet.ServletContextconfig服務(wù)器配置,可以獲取初始化javax.servlet.ServletConfigout頁(yè)面輸出javax.servlet.jsp.JspWriterpage表示從該頁(yè)面中表示出來(lái)的一個(gè)servlet實(shí)例java.lang.Objectexception表示JSP頁(yè)面所發(fā)生的異常,在錯(cuò)誤頁(yè)中才起作用四種屬性范JSP中提供的四種屬性范圍分別是 只在一個(gè)頁(yè)面中有效,跳轉(zhuǎn)之后就 只在一次請(qǐng)求中保存,服務(wù)器跳轉(zhuǎn)之后依然有 在一次會(huì)話范圍中,無(wú)論何種跳轉(zhuǎn)都可以使用,但是新打?yàn)g瀏覽器無(wú)application在整個(gè)服務(wù)器上保存,所有用戶都可以使用。上面的4個(gè)內(nèi)置對(duì)象都支持下面三個(gè)屬性操作方法:publicObjectgetAttribute(Stringname)根據(jù)屬性名稱取得屬publicvoidremoveAttribute(Stringname)刪除指定的屬page屬性范圍(pageContext表示,表示將一個(gè)屬性設(shè)置在本頁(yè)<!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<%@pageimport="java.util.*"<metahttp-equiv="Content-Type"content="text/html;<title>page屬性范圍pageContext.setAttribute("name","hunk");pageContext.setAttribute("birthday",newDate());Stringusername=DateuserBirthday=<h2>用戶名:<%=username<h2>生日:<%=userBirthday在上面程序的基礎(chǔ)上,我們進(jìn)一步,采用js:oar>進(jìn)行跳轉(zhuǎn),跳轉(zhuǎn)之后看能否取得屬性:demo2.jsp中設(shè)置倆個(gè)屬性,并且實(shí)現(xiàn)跳轉(zhuǎn)至<!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<%@pageimport="java.util.*"<metahttp-equiv="Content-Type"content="text/html;<title>page屬性范圍pageContext.setAttribute("name","hunk");pageContext.setAttribute("birthday"newDate());<jsp:forwarddemo3中獲取屬<!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<%@pageimport="java.util.*"<metahttp-equiv="Content-Type"content="text/html;<title>page屬性范圍Stringusername=DateuserBirthday=<<h2>用戶名:<%=username<h2>生日:<%=userBirthday結(jié)果發(fā)現(xiàn)獲取不到,說(shuō) 屬性范圍只在當(dāng)前頁(yè)面有效,跳轉(zhuǎn)之后無(wú)效request上面page屬性范圍時(shí),發(fā)現(xiàn)頁(yè)面跳轉(zhuǎn)之后,屬性失效,要想頁(yè)面跳轉(zhuǎn)之后,屬性仍然保存,則使用request屬性范圍,把上面的例子<!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<%@pageimport="java.util.*"<metahttp-equiv="Content-Type"content="text/html;<title>request屬性范圍request.setAttribute("name""hunk");.setAttribute("birthday",new<jsp:forward<!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage=<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<%@pageimport="java.util.*"<metahttp-equiv="Content-Type"content="text/html;<title>request屬性范圍<%//從page屬性范圍中取出屬性,并執(zhí)行Stringusername=(String)request.getAttribute("name");DateuserBirthday=<h2>用戶名:<%=username<h2>生日:<%=userBirthday使用超跳轉(zhuǎn)。<!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<%@pageimport="java.util.*"<metahttp-equiv="Content-Type"content="text/html;<title>request屬性范圍request.setAttribute("name","hunk");request.setAttribute("birthday"newDate());<ahref="demo3.jsp"><!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<%@pageimport="java.util.*"<metahttp-equiv="Content-Type"content="text/html;<title>request屬性范圍<%<%//從pageStringusername=(String)request.getAttribute("name");DateuserBirthday=<h2>用戶名:<%=username<h2>生日:<%=userBirthday運(yùn)行結(jié)果使用超跳轉(zhuǎn)的時(shí)候,request就失效了,此時(shí)無(wú)法取得屬性。如果希望一個(gè)屬性設(shè)置以后,可以在任何一個(gè)頁(yè)面中都獲取到屬性則可以使用 屬性范圍。繼續(xù)改裝上面的例子<!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<%@pageimport="java.util.*"<metahttp-equiv="Content-Type"content="text/html;<title>request屬性范圍session.setAttribute("name","hunk");session.setAttribute("birthday"newDate());<ahref="demo3.jsp">跳轉(zhuǎn)一下看看<!DOCTYPE<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<%@pageimport="java.util.*"<metahttp-equiv="Content-Type"content="text/html;<title>request屬性范圍<%//從page屬性范圍中取出屬性,并執(zhí)行Stringusername=(String)session.getAttribute("name");DateuserBirthday=<h2>用戶名:<%=username<h2>生日:<%=userBirthday運(yùn)行結(jié)果但是,現(xiàn)在的問(wèn)題是,我如果直接打 demo3,那么情況是發(fā)現(xiàn)沒有取到屬性,直接打開取不到,要想取到,就采 屬性范圍application屬性范繼續(xù)改裝上面的例子<!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<%@pageimport="java.util.*"<metahttp-equiv="Content-Type"content="text/html;<title>application屬性范圍application.setAttribute("name","hunk");application.setAttribute("birthday"newDate());<ahref="demo3.jsp">跳轉(zhuǎn)一下看看<!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<%@pageimport="java.util.*"<metahttp-equiv="Content-Type"content="text/html;<title>application屬性范圍Stringusername=DateuserBirthday=<h2>用戶名:<%=username<<h2>生日:<%=userBirthday器中直接輸入:打開發(fā)現(xiàn)注意:application屬性好,隨時(shí)打開隨時(shí)獲取,服務(wù)器就得付出代價(jià),如果你設(shè)置的application屬性范圍過(guò)多,那么服務(wù)器的負(fù)荷就大,必我們無(wú)論關(guān)閉多少次瀏application屬性都可以取到,但是,允許你,重啟一下服務(wù)器,然后再輸入你就會(huì)發(fā)現(xiàn)pagesetAttribute(java.lang.Stringjava.lang.Objectint面我們通過(guò)page設(shè)置屬性的時(shí)候,是通過(guò)pageContext下面的setAttribute(Stringname,Objectvalue),通過(guò)查閱API可以發(fā)setAttribute(java.lang.Stringjava.lang.Objectint intscope)Registerthenameandvaluespecified

appropriatesemantics.Ifthevaluepassedinisnull,thishasthesamecallingremoveAttribute(name,scopename-thenameoftheattributetovaluevalue-theobjecttoassociatewiththename,ornulliftheattributetoberemovedfromthespecifiedjava.lang.NullPointerException-ifthenameisIllegalArgumentException-ifthescopeisIllegalStateExceptionPageContext.SESSION_SCOPEbutthepagethatwasrequesteddoesnotparticipateinasessionorthesessionhasbeeninvalidated.scope-thescopewithwhichtoassociatethepublicstaticfinalintPAGE_SCOPE 表示的page屬性范圍,默認(rèn)publicstaticfinalintREQUEST_SCOPE 表示的是request屬性范圍publicstaticfinalintSESSION_SCOPE 表示的是session屬性范圍publicstaticfinalintAPPLICATION_SCOPE 表示的是application屬性改裝上面<!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;pageEncodingpageEncoding="UTF-<%@pageimport="java.util.*"<metahttp-equiv="Content-Type"content="text/html;<title>application屬性范圍.setAttribute("birthday",;<ahref="demo3.jsp">在web開發(fā)中,request對(duì)象是使用最多的一個(gè)對(duì)象,其主要作用是接受客戶端發(fā)送過(guò)來(lái)的請(qǐng)求。 InterfaceAll主要是應(yīng)用在InterfaceAllHttpSeverletRequest接口是SeverletRequest的子接口,所以在查找request對(duì)象方法時(shí)除了HttpSeverletRequest接口下面方法之外,你還需要查詢SeverletRequest接口下面的方法。在web開發(fā)中,使用request接受請(qǐng)求的參數(shù)是最常見的,但是,在<!<!doctype<title>登錄<formaction="demo4.jsp"<inputtype="submit"value="提交<!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<metahttp-equiv="Content-Type"content="text/html;<title>接受參數(shù)Stringusername=<<h2><%=username運(yùn)行結(jié)果現(xiàn)在解決亂碼<!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<metahttp-equiv="Content-Type"content="text/html;<title>接受參數(shù)Stringusername=<h2><%=usernamerequest.setCharacterEncoding("utf-接受請(qǐng)求參上面在接受參數(shù)的時(shí)候是采用request.gtParameer,的方法來(lái)request.gtParameterValues進(jìn)行接收。<!<!doctype<metacharset="utf-<title>登錄<<formaction="demo5.jsp"method="post">username:<inputtype="text"name="uname">hobby:<inputtype="checkbox"name="hobby"value="唱歌唱歌<inputtype="checkbox"name="hobby"value="跳舞"><inputtype="checkbox"name="hobby"value="游泳"><inputtype="checkbox"name="hobby"value="足球"><inputtype="checkbox"name="hobby"value="跑步"><inputtype="checkbox"name="hobby"value="睡覺"><inputtype="submit"value="提交<!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<metahttp-equiv="Content-Type"content="text/html;<title>接收多個(gè)參數(shù)request.setCharacterEncoding("utf-Stringusername=request.getParameter("uname");Stringhobby[]=request.getParameterValues("hobby");:for(inti=0;i<hobby.length;<%=hobby[i]<!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;}運(yùn)行結(jié)果pageEncoding=pageEncoding="UTF-<metahttp-equiv="Content-Type"content="text/html;<title>接收多個(gè)參數(shù)Stringid=request.getParameter("id");Stringusername=request.getParameter("uname");Stringhobby[]=if(hobby!=null):forfor(inti=0;i<hobby.length;i++)} URL重寫的格式動(dòng)動(dòng)態(tài)的頁(yè)面地址?參數(shù)1=參數(shù)1&參數(shù)名2=參數(shù)在request內(nèi)置對(duì)象里面request.getParametrNames,返回的是參數(shù)名。返回值類型是枚舉。hasMoreElements()來(lái)判斷是否有內(nèi)容,取得內(nèi)容的方法nexeent();<!<!doctype<metacharset="utf-<formaction="demo1.jsp":<inputtype="text":type="radio"name="sex"value="男"CHECKED>type="radio"name="sex"value="女">女<br><optionvalue="貴陽(yáng)">貴陽(yáng)<optionvalue="遵義">遵義<optionvalue="六盤水">六盤水</select>:<inputname="**inst"value="唱歌"><inputtype="checkbox"name="**inst"value="">type="checkbox"name="**inst"value="足球">type="checkbox"name="**inst"value="籃球">type="checkbox"name="**inst"value="乒乓球乒乓球<br><textarearows="3"cols="30"<br><inputtype="hidden"name="uid"type="reset"value="重置"inputtype="submit"<!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@page<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<metahttp-equiv="Content-Type"content="text/html;request.setCharacterEncoding("utf-8");//設(shè)置編<table<td><td>參數(shù)名<td>參數(shù)值Enumerationenu=while{StringparamName=(String) if{StringparamValues[]=for(inti=0;i<paramValues.length;i++){%><%=paramValues[i]%>}}}elseStringparamValue=%><%=paramValue%>}}顯示全部的頭信IP、、語(yǔ)<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@page<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@page<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<metahttp-equiv="Content-Type"content="text/html;<title>在此標(biāo)題Enumerationenu=whilewhile(enu.hasMoreElements())StringheaderName=(String)StringheaderValue }<!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<metahttp-equiv="Content-Type"charset=UTF-charset=UTF-<title>在此 標(biāo)題Stringmethod=request.getMethod();Stringip=request.getRemoteAddr();Stringpath=request.getServletPath();StringcontextPath=IP 設(shè)置頭信頁(yè)面定時(shí)刷<!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<metahttp-equiv="Content-Type"content="text/html;<title>在此標(biāo)題<%!intcount=response.setHeader("refresh",已經(jīng)刷新了<%=count++%>3秒鐘后自動(dòng)<!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<metahttp-equiv="Content-Type"content="text/html;<title>在此標(biāo)題<h3>3秒鐘后自動(dòng)跳轉(zhuǎn)至demo1.html,如果沒有跳轉(zhuǎn)href="demo1.html">這里response.setHeader(response.setHeader("refresh","3;URL=<metahttp-equiv="refresh"<metahttp-equiv="refresh"設(shè)置了自動(dòng)跳轉(zhuǎn)。也是客戶端跳<!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<metahttp-equiv="Content-Type"content="text/html;<title>在此標(biāo)題response.sendRedirect("demo1.html"response.sendRedirect("demo1.html");//客戶端直接跳<jsp:forward>服務(wù)器端System.out.println("============跳轉(zhuǎn)之前 跳轉(zhuǎn)之后的代<jsp:forwardresponse.sendRedirect("demo1.html");客戶端System.out.println("============跳轉(zhuǎn)之前 <%response.sendRedirect("demo2.html");比如你在頁(yè)面執(zhí)行是數(shù)據(jù)庫(kù)連接,按照一貫的方法,在執(zhí)行完數(shù)據(jù)庫(kù)在JSP中提供了 操作類類的構(gòu)造方法是(java.lang.Stringname,java.lang.String常用的普通方法ReturnsthenameoftheGetsthecurrentvalueof.setMaxAge(intSetstheumageinforthis所有的都是有服務(wù)器端設(shè)置到客戶端上的所以要想客戶端 ,必須調(diào)用response對(duì)象下面的add (;<!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<metahttp-equiv="Content-Type"content="text/html;<title>在此標(biāo)題c1=c2=objects Returnsanarraycontainingallofthetwiththisrequest.objects Returnsanarraycontainingallofthetwiththisrequest.<!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<metahttp-equiv="Content-Type"content="text/html;<title>在此標(biāo)題c[]=s();//for(inti=0;i<c.length;<h2><%=c[i].getName()%><%=c[i].getValue()%></}運(yùn)行結(jié)果圖中JSESSIONID是什系統(tǒng)自動(dòng)設(shè)置的。在每一個(gè)用戶服務(wù)器的時(shí)候,服務(wù)器為了區(qū)分JSSSIID的<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<metahttp-equiv="Content-Type"content="text/html;<title>在此標(biāo)題c1=c2=我們也應(yīng)該能夠取得我們?cè)O(shè)置的?,F(xiàn)在關(guān)閉了瀏覽器,卻發(fā)現(xiàn)沒有取得,而是出現(xiàn)了空指針異常,說(shuō)明,在之前設(shè)置的兩個(gè)并沒有真正保存<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<metahttp-equiv="Content-Type"content="text/html;<title>在此標(biāo)題c1=c2=關(guān)閉瀏覽器,在60秒之內(nèi)打開,發(fā)現(xiàn) 雖然中可以保存信息,但是并不能的保存,一般一個(gè)個(gè)客戶端最多只能保300個(gè)所以數(shù)據(jù)量太大的時(shí)候?qū)o(wú)法使用。<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;也可也通<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;pageEncodingpageEncoding="UTF-<metahttp-equiv="Content-Type"content="text/html;<title>標(biāo)題 ",session對(duì)Returnsastringcontainingtheuniqueidentifierassignedtothissession.ReturnsthetimewhenthissessionwassincemidnightJanuary1,1970Returnsthe在實(shí)際開發(fā)中session對(duì)象主Returnsastringcontainingtheuniqueidentifierassignedtothissession.ReturnsthetimewhenthissessionwassincemidnightJanuary1,1970Returnstheassociatedwiththissession,asthenumberofmillisecondssincemidnightJanuary1,1970GMT,andmarkedbythetimethereceivedtheReturnstrueiftheclientdoesnotyetknowaboutthesessionorifthechoosesnottojointhethissessionthenunbindsanyobjectsboundtoit.anEnumerationofStringobjectscontainingthenamesofalltheobjectsboundtothissession.HttpSession接口中最重要的還是屬性的操作,主要是可以完成用戶登錄的驗(yàn)證。當(dāng)一個(gè)用戶連接到服務(wù)器之后,服務(wù)器就自動(dòng)為此session分配一個(gè)不會(huì)重復(fù)的sessionid,服務(wù)器依靠這些不同的sessionid來(lái)區(qū)分每一個(gè)不同的用戶,在Web中我依靠是getId()來(lái)取得id。<!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@<%@pagelanguage="java"charset=UTFEncoding="UTF-<metahttp-equiv="Content-Type"content="text/html;<title>標(biāo)題Stringid=<h3>SessionId:<%=id<h3>SessionId的長(zhǎng)度:<%=id.length()運(yùn)行結(jié)果問(wèn)題:這SessionID的長(zhǎng)度和我們的很相 的時(shí)候有一個(gè)JSESSIONID的 個(gè)我們這里的SessionID一樣??jī)烧呤且粯拥?。Session使用的 機(jī)制新連接的用戶,服務(wù)器會(huì)為每一個(gè)用戶重新分配新的sessionid。<Contextpath="/gzu"可以實(shí)現(xiàn)需要配置tomcat下面的server.xml服務(wù)器關(guān)閉的時(shí)候,把sessionid序列化在數(shù)據(jù)庫(kù)、文件中,當(dāng)服務(wù)器重新啟動(dòng)的時(shí)<Contextpath="/gzu" 登錄及注實(shí)現(xiàn)思路:當(dāng)用戶登錄成功之后,設(shè)置一個(gè)session范圍的屬性,然后在其他需要驗(yàn)證的頁(yè)面中判斷此session是否存在,如果存在,則分析:login.jsp:完成登錄的表單顯示,同時(shí)向頁(yè)面本身提交數(shù)據(jù),以有登錄,則要給出未登錄的提示,同時(shí)給出一個(gè)登錄的地址。logout.jsp:完成登錄的注銷,注銷后,頁(yè)面要跳轉(zhuǎn)至login.jsp頁(yè)面,<!DOCTYPE<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<metahttp-equiv="Content-Type"content="text/html;<title>登錄<formaction="login.jsp"method="post">username:<inputtype="text"name="uname"><br>password:<inputtype="password"name="psw"><br><inputtype="reset"value="重置<inputtype="submit"value="登錄Stringname=request.getParameter("uname");Stringpsw=request.getParameter("psw");if("hunk".equals(name)&&"123456".equals(psw)){"session.setAttribute("username",<h3>e.jsp">}}e<!<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML<%@pagelanguage="java"contentType="text/html;pageEncoding="UTF-<metahttp-equiv="Content-Type"content="text/html;<title>歡迎頁(yè)系統(tǒng),<ahre

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論