9.Java web—JSP內置對象
容器內置了9大對象,這些對象在jsp頁無需實例化,可以直接使用。
分別為request、 response 、session、 application 、out、 pageContext 、config 、page、 exception
1)request對象
request封裝了由客戶端請求的http所有細節,包括HTTP頭信息,系統信息,請求方式,請求參數
request.getParameter("參數name"); //獲取請求的url參數。不存在此參數返回null,存在參數但沒有值返回””。
在作用域管理屬性:
當使用<jsp:forward>請求轉發時,可為後面的頁面傳參數。
request.setAttribute(String name,Object obj);//當前頁寫入值
request.getAtrribute(String name);//目標頁獲取到值 ,值為Object,需要轉換;有可能name不存在,最好需要判斷一下
cookie讀與取
java裏面不能通過已知cookie名稱直接獲取其值,要循環所有cookies來判斷方式獲取
//寫入cooke,如果有中文,要使用URLEncoder.encode()編碼 Cookie ck=new Cookie("UserInfo", URLEncoder.encode("我是值","utf-8")); ck.setMaxAge(60*60*24*30);//有效期為30天 response.addCookie(ck);//給客戶端寫cookie
取cookie
String result=""; Cookie[] cks = request.getCookies(); if (cks != null) { for (Cookie ck : cks) { //有中文要使用URLDecoder.decode()來解碼 result+="名稱:"+ck.getName()+" 值為:" + URLDecoder.decode(ck.getValue(),"utf-8"); } }
其他請求
<body> <br />客戶提交信息的方式equest.getMethod():<%=request.getMethod()%> <br />使用的協議request.getProtocol():<%=request.getProtocol()%> <br />獲取發出請求字符串的客戶端地址request.getRequestURI():<%=request.getRequestURI()%> <br />獲取發出請求字符串的客戶端地址request.getRequestURL():<%=request.getRequestURL()%> <br />獲取提交數據的客戶端IP地址request.getRemoteAddr():<%=request.getRemoteAddr()%> <br />獲取服務器端口號request.getServerPort():<%=request.getServerPort()%> <br />獲取服務器名稱request.getServerName():<%=request.getServerName()%> <br />獲取客戶端主機名request.getRemoteHost():<%=request.getRemoteHost()%> <br />獲取客戶端所請求的腳本文件的文件路徑request.getServletPath():<%=request.getServletPath()%> <br />獲取Http協議定義的文件頭信息HOST值request.getHeader("host"):<%=request.getHeader("host")%> <br />獲取Http協議定義的文件頭信息User-Agent值request.getHeader("user-agent"):<%=request.getHeader("user-agent")%> <br />獲取Http協議定義的文件頭信息accept-language值request.getHeader("accept-language"):<%=request.getHeader("accept-language")%> <br />獲取請求文件的絕對路徑request.getRealPath("index.jsp"):<%=request.getRealPath("index.jsp")%> </body>
結果為:
客戶提交信息的方式equest.getMethod():GET
使用的協議request.getProtocol():HTTP/1.1
獲取發出請求字符串的客戶端地址request.getRequestURI():/crm/index.jsp
獲取發出請求字符串的客戶端地址request.getRequestURL():http://localhost:8080/crm/index.jsp
獲取提交數據的客戶端IP地址request.getRemoteAddr():0:0:0:0:0:0:0:1
獲取服務器端口號request.getServerPort():8080
獲取服務器名稱request.getServerName():localhost
獲取客戶端主機名request.getRemoteHost():0:0:0:0:0:0:0:1
獲取客戶端所請求的腳本文件的文件路徑request.getServletPath():/index.jsp
獲取Http協議定義的文件頭信息HOST值request.getHeader("host"):localhost:8080
獲取Http協議定義的文件頭信息User-Agent值request.getHeader("user-agent"):Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
獲取Http協議定義的文件頭信息accept-language值request.getHeader("accept-language"):zh-CN,zh;q=0.9
獲取請求文件的絕對路徑request.getRealPath("index.jsp"):E:\study\java\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\crm\index.jsp
獲取客戶的國際化信息:
Locale locale=request.getLocale(); if(locale.equals(Locale.CHINA)){ //當前客戶端環境為中文 }
頂替
頂替
枯
枯
枯
枯頂替
頂替
9.Java web—JSP內置對象