版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第jsp+servlet實(shí)現(xiàn)簡(jiǎn)單登錄頁(yè)面功能(附demo)目錄實(shí)現(xiàn)功能:開(kāi)發(fā)環(huán)境:預(yù)備知識(shí):1.登錄界面login.jsp:2.登錄成功界面hello.jsp:3.登錄失敗信息回顯Login.jsp:思路簡(jiǎn)述:具體代碼Code:
實(shí)現(xiàn)功能:
模擬簡(jiǎn)單登錄功能,登錄成功跳轉(zhuǎn)新頁(yè)面,登錄失敗在原登錄界面提示登錄失敗信息
開(kāi)發(fā)環(huán)境:
eclipse
Tomcat-8.0
預(yù)備知識(shí):
HTML標(biāo)簽,Servlet相關(guān)知識(shí)——請(qǐng)求的轉(zhuǎn)發(fā)與重定向,jsp相關(guān)知識(shí),EL表達(dá)式
思路實(shí)現(xiàn):共2個(gè)jsp,一個(gè)servlet
1.登錄界面login.jsp:
采用jsp,不采用html的原因是因?yàn)橐M(jìn)行登錄失敗信息回顯(當(dāng)然如果用html結(jié)合ajax也可以實(shí)現(xiàn),這里采用jsp更方便)
如圖:
2.登錄成功界面hello.jsp:
歡迎信息+登錄的用戶名
如圖:
3.登錄失敗信息回顯Login.jsp:
如圖:
思路簡(jiǎn)述:
問(wèn)題1:jsp頁(yè)面如何與一個(gè)java類(lèi)進(jìn)行連接綁定起來(lái)?
簡(jiǎn)單的說(shuō),一個(gè)jsp頁(yè)面要跟一個(gè)servlet進(jìn)行連接,需要有一個(gè)橋梁,這個(gè)橋梁就是web.xml文件,可以通過(guò)下面代碼觀察到,登錄頁(yè)面的表單的提交的action屬性值,填寫(xiě)的就是在web.xml文件里對(duì)應(yīng)的servlet-mapping中的url-pattern的值,而這個(gè)值又對(duì)應(yīng)了一個(gè)servlet-name,servlet-name則對(duì)應(yīng)到一個(gè)servlet-class,這樣就把jsp和java類(lèi)(servlet類(lèi))進(jìn)行了關(guān)聯(lián)。
其實(shí)我覺(jué)得最明顯的就是提交表單后,url地址變化了,通過(guò)這個(gè)url地址將表單信息傳給了對(duì)應(yīng)的java類(lèi)。
問(wèn)題2:實(shí)現(xiàn)的整體的思路是怎么樣的?
一個(gè)jsp頁(yè)面通過(guò)表單元素,將用戶信息通過(guò)url的形式提交給一個(gè)已經(jīng)在web.xml配置映射好的servlet類(lèi),servlet類(lèi)接收到傳來(lái)的表單信息,進(jìn)行值校驗(yàn)(為了方便起見(jiàn)則直接定義用戶名密碼了,正常情況下是要采用jdbc進(jìn)行從數(shù)據(jù)庫(kù)中取出值進(jìn)行校驗(yàn)的),然后對(duì)校驗(yàn)結(jié)果進(jìn)行判斷,如果賬戶密碼正確,則跳轉(zhuǎn)到登錄成功的頁(yè)面(采用重定向),如果失敗,則將登錄失敗的提示信息存到request域?qū)ο笾胁⒎祷氐卿浗缑骘@示出來(lái)(采用請(qǐng)求的轉(zhuǎn)發(fā))
簡(jiǎn)單的聯(lián)系:
jsp頁(yè)面web.xmlservlet類(lèi)
問(wèn)題3:在servlet中要如何獲取jsp中提交過(guò)來(lái)的表單信息呢?
request.getParameter("userName");//userName是表單中,input標(biāo)簽中name屬性的值,接收到的是string類(lèi)型
問(wèn)題4:登錄頁(yè)面如何在登錄失敗的時(shí)候給出提示信息呢?
實(shí)現(xiàn)思路是如果登錄失敗,則往request域?qū)ο笾写嫒氲卿浭〉奶崾拘畔?,然后通過(guò)請(qǐng)求的轉(zhuǎn)發(fā)的方式跳轉(zhuǎn)回登錄頁(yè)面并顯示,所以登錄界面要嵌入一段腳本代碼,用來(lái)判斷當(dāng)前是否有登錄失敗提示信息的對(duì)象,如果有則將該對(duì)象保存的信息打印出來(lái),如果沒(méi)有則什么都不顯示。
1)如果賬密不匹配,則往request域中存入message對(duì)象,該message中保存了提示信息:request.setAttribute("message","賬密錯(cuò)誤,請(qǐng)重新登錄br");
并轉(zhuǎn)發(fā)到登錄頁(yè)面:request.getRequestDispatcher("/loginDemo/login.jsp").forward(request,response);
2)在登錄頁(yè)面獲取該對(duì)象:(因?yàn)榈卿浭〉臅r(shí)候才有該對(duì)象,疑問(wèn):那如果我登錄失敗后再訪問(wèn)登錄頁(yè)面,那不應(yīng)該會(huì)顯示錯(cuò)誤信息嗎?答案是否定的??闪私鈘equest域?qū)ο笊芷谙嚓P(guān)知識(shí))
if(request.getAttribute("message")!=null){
out.print(request.getAttribute("message"));
問(wèn)題5:request.getAttribute()和request.getParameter()區(qū)別是:
前者獲取的是一個(gè)object對(duì)象,后者獲取的是一個(gè)string字符串,所以前者使用的時(shí)候可能會(huì)碰到需要做一些類(lèi)型轉(zhuǎn)換的情況。
問(wèn)題6:表單訪問(wèn)路徑填寫(xiě)問(wèn)題
在ation屬性,或者請(qǐng)求的轉(zhuǎn)發(fā),重定向,一般采用絕對(duì)路徑,可以避免路徑訪問(wèn)出錯(cuò),訪問(wèn)資源不存在等問(wèn)題。
jsp表達(dá)式:%=request.getContextPath()%或者用EL表達(dá)式:${pageContext.request.contextPath}可以獲取當(dāng)前web應(yīng)用根目錄路徑,不妨試試輸出打印下,就可以觀察值是多少了。
具體代碼Code:
1.login.jsp:
%@pagelanguage="java"contentType="text/html;charset=UTF-8"
pageEncoding="UTF-8"%
!DOCTYPEhtml
html
head
metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"
title標(biāo)題/title
styletype="text/css"
*{margin:0;padding:0;}
form{margin:0auto;padding:15px;width:300px;height:300px;text-align:center;}
#submit{padding:10px}
#submitinput{width:50px;height:24px;}
/style
/head
body
div
formaction="%=request.getContextPath()%/loginDemo"method="post"
label用戶名:/label
inputtype="text"name="userName"value="${param.userName}"/brbr
label密碼:/label
inputtype="password"name="password"/br
fontcolor="red"
if(request.getAttribute("message")!=null){
out.print(request.getAttribute("message"));
/font
divid="submit"
inputtype="submit"value="登錄"/
/div
/form
/div
/body
/html
2.hello.jsp
%@pagelanguage="java"contentType="text/html;charset=UTF-8"
pageEncoding="UTF-8"%
!DOCTYPEhtml
html
head
metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"
title標(biāo)題/title
/head
body
Hello:br
fontcolor="green"size="22"
out.print(request.getParameter("userName")+"br
/font
ahref="%=request.getContextPath()%/loginDemo/login.jsp"重新登錄/a
/body
/html
3.對(duì)應(yīng)的LoginServlet.java
packageloginDemo;
importjava.io.IOException;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
publicclassLoginServletextendsHttpServlet{
privatestaticfinallongserialVersionUID=1L;
protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
StringuserName=request.getParameter("userName");
Stringpassword=request.getParameter("password");
System.err.println(userName+";"+password);
StringmyUser="Dong";
StringmyPwd="5432100";
if(userName.equals(myUser)password.equals(myPwd)){
response.sendRedirect(request.getContextPath()+"/loginDemo/hello.jspuserName="+userName);
}else{
request.setAttribute("message","賬密錯(cuò)誤,請(qǐng)重新登錄br
request.getRequestDispatcher("/loginDemo/login.jsp").forward(request,response);
}
4.對(duì)應(yīng)的web.xml的配置(注冊(cè))與映射
s
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二硫化碳生產(chǎn)工測(cè)試驗(yàn)證評(píng)優(yōu)考核試卷含答案
- 電力通信運(yùn)維員崗前規(guī)章制度考核試卷含答案
- 片基流延工誠(chéng)信道德能力考核試卷含答案
- 電子玻璃制品鍍膜工安全宣教測(cè)試考核試卷含答案
- 安全員考試請(qǐng)假條
- 2025年超細(xì)銀粉末、銀鈀粉、鈀粉、鉑粉項(xiàng)目合作計(jì)劃書(shū)
- 2026年智能心率帶項(xiàng)目營(yíng)銷(xiāo)方案
- 2025年江蘇省南通市中考物理真題卷含答案解析
- 2025年山東省日照市中考英語(yǔ)真題卷含答案解析
- 2025康復(fù)醫(yī)學(xué)與技術(shù)專(zhuān)業(yè)知識(shí)題庫(kù)及答案
- 民法典物業(yè)管理解讀課件
- 2025年中國(guó)汽輪機(jī)導(dǎo)葉片市場(chǎng)調(diào)查研究報(bào)告
- 中班幼兒戶外游戲活動(dòng)實(shí)施現(xiàn)狀研究-以綿陽(yáng)市Y幼兒園為例
- 特色休閑農(nóng)場(chǎng)設(shè)計(jì)規(guī)劃方案
- 采購(gòu)部門(mén)月度匯報(bào)
- 新華書(shū)店管理辦法
- 檔案專(zhuān)業(yè)人員公司招聘筆試題庫(kù)及答案
- 工程竣工移交單(移交甲方、物業(yè))
- 來(lái)料檢驗(yàn)控制程序(含表格)
- 2025年鈦合金閥項(xiàng)目可行性研究報(bào)告
評(píng)論
0/150
提交評(píng)論