1.本次練習寫一個簡單的註冊頁面
準備工作:首先搭建好伺服器tomcat環境,使用的編譯軟體是eclipse
2.在eclipse中建立一個web工程
3.在webContent資料夾下建立一個register.jsp檔案chua
主要程式碼:在<body>的裡面
<form action="show.jsp"method="post"> 使用者名稱:<input type="text" name="uname"/><br/> 密碼:<input type="password" name="upwd"/><br/> 年齡:<input type="text" name="uage"/><br/> 愛好: <input type="checkbox" name="uhobbies" value = "唱跳"/>唱跳 <input type="checkbox" name="uhobbies" value = "Rap"/>Rap <input type="checkbox" name="uhobbies" value = "籃球"/>籃球<br/> <input type="submit" value="註冊"> </form>
4.在webContent資料夾下建立一個show.jsp檔案
主要程式碼:還是在<body>標籤裡面
<% //設定編碼 request.setCharacterEncoding("utf-8"); String name = request.getParameter("uname"); String pwd = request.getParameter("upwd"); int age = Integer.parseInt(request.getParameter("uage")); String[] hobbies = request.getParameterValues("uhobbies"); %> 註冊成功,資訊如下:<br/> 姓名:<%=name%><br/> 密碼:<%=pwd%><br/> 年齡:<%=age%><br/> 愛好:<br/> <% if(hobbies!=null){ for(String hobby:hobbies){ out.print(hobby+" "); } } %>
5.上機效果:
總結:request:請求物件;儲存“客戶端向服務端傳送的請求資訊”
1.request物件的常見方法:
String getParameter(String name) :根據請求的欄位名key (input標籤的name屬性值) ,返回欄位值value (input標籤的value屬性值)
String[] getParameterValues(String name): 根據請求的欄位名key ,返回多個欄位值value (checkbox)
void setCharacterEncoding("編碼格式utf-8") :設定post方式的請求編碼 (tomcat7以前預設iso-8859-1,tomcat8以後改為了utf-8)
getRequestDispatcher("b.jsp").forward(request,response) ; 請求轉發 的方式跳轉頁面 A - > B
ServletContext getServerContext():獲取專案的ServletContext物件
2.jsp的執行流程:
第一次訪問時:JSP轉變成Java再編譯成class
第二次訪問時:直接訪問class檔案,如果服務端程式碼修改了,將會再訪問時重新翻譯、編譯
3.常見錯誤:
200:一切正常
300/301:頁面重定向(跳轉)
404:資源不存在
403:許可權不足(例如訪問a目錄,但是a目錄設定的是不可見的話會報403)
500:伺服器內部錯誤(程式碼有誤)
4.編碼問題:推薦使用"utf-8"