JAVA筆記-第28週

黃滋滋
7 min readMar 1, 2020

--

實作題目-使用JSP

程式sop:

  1. 策劃:把之前+上週的題目使用JSP寫出

題目1:寫一個頁面有登入成功/登入失敗

題目2:作一個WEB應用程式,可動態產生使用者登入密碼,送出表單後必須通過密碼驗證才可觀看到使用者頁面

2.建立什麼:

2.1關於Servlet:

2.1.1Servlet生命週期:init()/service()/destroy()

2.1.2getResourcePaths()->指定路徑使用/開頭,如果是資料夾會以/結尾

2.1.3HttpSession有其存活期限當銷毀時就會呼叫sessionDestroyed()防止使用者重複登入

2.1.4Filter三個實作的方法:init()/doFilter()/destroy()

2.1.5Ajax非同步請求技術,不會因等待回應而被迫停止網頁操作

2.1.6其他:404不是port被佔 是找不到表單送出的action對象 應該是你沒寫check或著form的check路徑寫錯

2.1.7setHeader()覆寫既有的值/addHeader()添加額外的值

2.1.8在不同頁面pageContext來設定頁面範圍屬性HttpServletRequest=請求範圍 / HttpSession=會話範圍 /ServletContext=應用程式範圍

2.2關於JSP:

2.2.1JSP最後還是會成為Servlet

2.2.2三個方法:_jspInit()/_jspDestroy()/_jspService()

2.2.3JSP只接受GET/POST/HEAD請求

2.2.4<%與%>=Scriptlet元素,在JSP中寫JAVA程式碼

2.2.5for迴圈的區塊語法沒有完成需寫成<%}%>

2.2.6指示元素語法<%@指示類型[屬性="值"]*%>

2.2.7在同一頁面pageContext來設定頁面範圍屬性setAttrubute()/getAttrubute()/removeAttrubute()

2.2.8標準標籤:

2.2.8.1<jsp:include>/<jsp:param>

2.2.8.2轉發時使用<jsp:forward>

2.2.9使用EL取得屬性$語法:EL 運算子

${param.user}等於<%=request.getParameter(“user”)%>

2.2.9.1EL函式是"標籤程式庫描述檔",這個檔案是XML文件,副檔名*.tld

放在WEB-INF資料夾下

3-如何建立:

題目1:寫一個頁面有登入成功/登入失敗

現在開始要寫JSP了要記得V->如何建檔

感覺友善的"對稱感又回來了"打<%自動生成%>還有<h1>自動生成</h1>,只是程式碼裡面有<%%>蠻不習慣的....

一直都習慣把檔案建在src裡,現在跑到WebContent要重新熟悉

程式碼:

結果:

沒有自己打網址時=失敗

自己打時=成功,而且還會自己秀NAME

備註:

request.getParameter 的值是String

題目2:作一個WEB應用程式,可動態產生使用者登入密碼,送出表單後必須通過密碼驗證才可觀看到使用者頁面->這個題目其實非常的複雜呢~

JSP開始有的XML檔(建檔開始就有),有人說這個是重點,不能隨意更改

一開始建好就有的XML檔,沒有改過的~沒想到修改XML檔居然會讓我的電競比電會卡卡?

聽說只要改寫成這樣=有相同的設定@@=加入標籤

</jsp-property-group>剛打完會反紅,只要打了<url-pattern> </url-pattern>就好了0.0

備註:

<url-pattern> </url-pattern> 覆蓋了默認的servlet配置,但是jsp是不受影響的。

<page-encoding> </page-encoding> pageEncoding 主要是告知容器,這個 JSP 檔案的文字編碼為何,以正確地將字元轉譯至 .java

<default-content-type></default-content-type> 統一預設的內容類型

需要好幾個頁面+他們的HTML檔+CSS:

  1. 註冊成功+會員登入網頁

1.1註冊成功

備註:

}->這個居然會反紅,刪掉重打就好了

${param.username}獲取USERNAME的值跟 request.getParameter(“username”);一樣

結果-

  1. 2會員登入網頁

這裡的忘記密碼一定是顯示404的錯誤=找不到檔案,因為還不知道怎麼寄信通知~

  1. 3有時還要加入.css程式的幫忙=才有顏色

table= 表格的顏色處理

用 <li>寫成的巢狀的結構

a=連結

hr=連結

這裡比較困難的是因為都太依賴ECLIPSE會自動產生有.java/.jsp/.html第一次要自己打.css真是怪..不過真的可以,就是在WebContent下新增CSS資料夾,然後再新增.css的檔而已喔~

將這行程式碼寫入HTML的<head>標籤中 <link rel = “stylesheet” style = “text/css” href = “../資料夾/檔名.css”>

其中需要注意的有:

  • ../ 表示當前專案的路徑
  • 資料夾 表示儲存css樣式表的資料夾
  • 檔名.css 表示css樣式表的名字

2.註冊失敗+註冊會員網頁

2.1註冊失敗

2.2註冊會員網頁

3.使用者畫面

備註:

顯示500的錯誤=語法不合法

顯示404的錯誤=找不到檔案

結果-感覺文章有點太長....這個貼在下週~

下周預習:使用JSTL會將JAVA程式碼的部分使用JSTL標籤庫來使用,就不會這麼複雜...QQ

【Java 第二十八週】

大家安安~感謝按讚!

這週雖然是jsp的開始,但是我想不久的將來應該又會開始spring,就像jsp的存在是改善servlets一樣,雖然很想直接練習spring但是看到學習地圖的建議還是先把jsp認識一下

正在努力(希望)之後的筆記可以更好~

第二十八週:

在文章內是放上步驟,實作上有問題的話可能再麻煩大大們提點了,真的感謝!

- 學習狀態:702天

  • 有無問題:
  • 大家都是用甚麼寫Spring? IntelliJ IDEA?
  • 要怎麼知道網站是用 Spring寫的?有沒有推薦的動態網站(想當目標)
  • 筆記分享:

— —

我所根據的的書:Servlet&JSP技術手冊-從Servlet到Spring Boot

參考資料1:深入淺出Servlets與JSP

--

--