初次接觸JSP,寫一個登錄注冊界面
正文——JSP介紹:JSP通過在標準的HTML頁面中插入java代碼,其靜態的部分無須java程序控制。每個JSP頁面就是一個servlet實例,WEB應用中的每個JSP頁面都會由servlet容器生成對應的servlet。
理解:在HTML語句中加入java代碼的頁面
servlet介紹:servlet必須運行在服務器中。servlet容器的作用是處理客戶端的請求,并將處理結果返回給客戶端。當客戶請求到來時,servlet容器獲取請求,然后調用某個servlet,并把servlet的執行結果返回給客戶。Tomcat就是一個servlet容器。
servlet工作過程:
因為JSP在執行第一次后,會被編譯成Servlet的類文件,即.class,當再重復調用執行時,就直接執行第一次所產生的Servlet,而不再重新把JSP編譯成Servelt。在執行JSP網頁時,通??梢苑譃閮蓚€時期:轉譯時期(Translation Time)和請求時(Request Time)。
當JSP網頁在執行時,JSP Container會做檢查工作,如果發現JSP網頁有更新修改時,JSP Container才會再次編譯JSP成Servlet; 如果JSP沒有更新時,就直接執行前面所產生的Servlet。
◆轉譯時期:JSP網頁轉移成Servlet類。
◆請求時期:Servlet類執行后,響應結果至客戶端。
轉譯期間做了兩件事情:
◆轉譯時期:將JSP網頁轉移為Servlet源代碼 .java.
◆編譯時期:將Servlet 源代碼 .java編譯成 Servlet類 .class.
request與session的區別:request對象和session對象的最大區別是生命周期 request對象的生命周期是針對一個客戶端(說確切點就是一個瀏覽器應用程序)的一起請求 當請 求完畢之后,request里邊的內容也將被釋放點 ,也就是request的生命周期只在數據提交 而session的生命周期也是針對一個客戶端 但是卻是在別人設置的會話周期內(一般是20-30分鐘) session里邊的內容將一直存在 即便關閉了這個客戶端瀏覽器 session也不一定會馬上釋放掉的 簡單來說可以這么理解 session相當于是一個客戶端的全局變量; request是某一次訪問的局域變量;
數據庫的連接:
1 Class.forName("com.MySQL.jdbc.Driver");2 conn=DriverManager.getConnection(url,user,passWord);
"com.mysql.jdbc.Driver"需要插入jar包
url:數據庫名
連接數據庫可以用靜態代碼塊——靜態代碼塊:一般情況下,如果有些代碼必須在項目啟動的時候就執行的時候,需要使用靜態代碼塊,這種代碼是主動執行的;需要在項目啟動的時候就初始化。
數據庫數據類型——VARCHAR:是一種比CHAR更加靈活的數據類型,同樣用于表示字符數據,但是VARCHAR可以保存可變長度的字符串。
session介紹:在WEB開發中,服務器可以為每個用戶瀏覽器創建一個會話對象(session對象),注意:一個瀏覽器獨占一個session對象(默認情況下)。因此,在需要保存用戶數據時,服務器程序可以把用戶數據寫到用戶瀏覽器獨占的session中,當用戶使用瀏覽器訪問其它程序時,其它程序可以從用戶的session中取出該用戶的數據,為用戶服務。在服務器創建session對象的同時,會為該session對象生成唯一的session Id,客戶端和服務器通過session Id互相確認
JDBC:有一組用java語言編寫的類和接口,規定了java開發人員訪問數據庫所使用的方法。
javabean:簡單理解就是一串類似于
PRivate bool male;
public bool isMale(){return this.male;}public void setMale(bool b){this.male=b;}
request.getParameter()與request.getAttribute()的區別:
request.getAtribute(String name) 返回name屬性的值request.getParamter(String name) 獲得客戶傳遞給服務器的name參數的值request是對當前頁面的請求,如果當前這個頁面再去請求另一個頁面 會生成新的requestrequest.getAttribute():是request時設置的變量的值,用request.setAttribute("name","您自己的值");來設置值, request.getParameter():提取發送過來的參數如request.getAttribute()得到的是object,request.getParameter()得到的是String
post與get的區別:
post提交數據是隱式的,get是通過在url里面傳遞的(可以看一下你瀏覽器的地址欄),用來傳遞一些不需要保密的數據。用get時,傳輸數據的大小有限制 (注意不是參數的個數有限制),為2K;而post沒有此限制
客戶端用cookie保存了sessionID 客戶端用cookie保存了sessionID,當我們請求服務器的時候,會把這個sessionID一起發給服務器,服務器會到內存中搜索對應的sessionID,如果找到了對應的 sessionID,說明我們處于登錄狀態,有相應的權限;如果沒有找到對應的sessionID,這說明:要么是我們把瀏覽器關掉了(后面會說明為什 么),要么session超時了(沒有請求服務器超過20分鐘),session被服務器清除了,則服務器會給你分配一個新的sessionID。你得重 新登錄并把這個新的sessionID保存在cookie中。
客戶端沒有用cookie保存sessionID 這個時候如果我們請求服務器,因為沒有提交sessionID上來,服務器會認為你是一個全新的請求,服務器會給你分配一個新的sessionID,這就是 為什么我們每次打開一個新的瀏覽器的時候(無論之前我們有沒有登錄過)都會產生一個新的sessionID(或者是會讓我們重新登錄)
JSP的注釋:
<%-- JSP中的注釋,看不見 --%><% // 注釋,看不見 /* 注釋,看不見 */%><!--顯式注釋-->
URL參數: http://127.0.0.1/index.jsp?name=user&password=user其中name和password為URL參數
新聞熱點
疑難解答