1. 程式人生 > >學習筆記_java web——JSP基礎

學習筆記_java web——JSP基礎

JSPJava Server Pages
伺服器端的java頁面的動態網頁技術標準
JSP常用標籤
設定JSP頁面屬性 <%@page%>
需要匯入包時 <%@page import = ""%>
宣告全域性變數 <%! %>
編寫java程式碼 <% %>
實現輸出<%out.pringln();%>
<%= %>
添加註釋HTML註釋<!-- -->
JSP註釋<%-- --%>
JSP程式碼註釋<%//  %>
  <%/*  */%>
JSP執行過程
翻譯階段:先編譯檔案成文一個java類(servlet)
編譯階段:把java編譯成class
執行階段:動態生成顯示頁面並顯示給使用者


字元編碼問題
jsp中預設ios-8859-1不支援中文
常見支援中文的方式GB2312,GBK,UTF-8
設定請求和響應的編碼方式
設定post請求
request.setCharacterEncoding("utf-8");
設定響應
response.setCharacterEncoding("utf-8");
或,頁面<%@ page contentType="text/html;charset=ytf-8"%>
設定get請求
治標 
如果s時取出的亂碼
s = new String (s.getBytes("iso-8859-1"),"utf-8")
治本 在server.xml中
修改<Connector connectionTomeout = "" prot="" protocol="" 
redirtPort="" URIEncoding="UTF-8">
轉發和重定向
轉發
request.getRequestDispatcher("url").forward(request,response);
重定向
response.sendRedirect("url");
對比轉發重定向
URL變化否是
重新請求不是
是否現代請求 是否
目標URL本Web任意


JSP內建物件request和response
內建物件,無需宣告即可使用的物件
提交方式get和post的區別
getpost
引數出現在URL 是否
長度限制有無
安全性差強
URL可傳播 是否


請求物件:request
常用方法
getParameter(String name);
getParameterValues(String name);
setAttribute(String name , Object object)
getAttribute(String name);
注意,1、null值判斷
2、取出的物件要轉換型別
getRequestDispatcher("url").forward(request,response);轉發
setCharacterEncoding("utf-8");改變字元編碼方式

回話物件:session
session回話原理
每個session都有一個id,session儲存在伺服器端,通過id
找到session,從而實現互動
session的清除
1、主動清除 呼叫以下方法
session.invalidate();session失效
session.removeAttrbute(String name);session key為name屬性實現
2、自動清除 回話過期時間
設定回話過期時間
呼叫方法:setManInaciveInterval(int intervale(單位秒))
配置XML:<session-config> <session-timeout> 30單位分鐘() </session-timeout></session-config>
常用方法
setAttribute(String name , Object object)
getAttribute(String name);
注意,1、null值判斷
2、取出的物件要轉換型別
getId() 獲取sessionID
response.sendRedirect("url");重定向

全域性物件:application
application在整個專案中共享使用資料
常用方法
setAttribute(String name , Object object)
getAttribute(String name);
注意,1、null值判斷
2、取出的物件要轉換型別


Cookie
常用方法
Cookie cookie = new Cookie(String name , Object value);
setMaxAge(int expiry);設定有效期(單位秒)
response物件:void addCookie(Cookie cookie);新增資料
request物件:Cookie[] getCookies();獲取資料
使用方法
//==============請求頁面===================================
Cookie cookie = new Cookie("user" , usernmae);
cookie.setMaxAge(60 * 60);
response.addCookie(cookie);
//==============響應頁面===================================
Cookie[] cookies = request.getCookies();
String a ;
for(cookie : cookies) {
if(cookie.getname().equals("user")) {
a = cookis.getValue();
}
}