一、內置對象介紹
JSP的內置對象在JSP中非常重要,這些內置對象是由WEB容器創建出來的,所以用戶不用自己創建。
主要的幾個內置對象有:
(1)request : javax.servlet.http.HttpServletRequest,表示客戶請求。
具體用法:request.getParameter("name")等。
(2)response:javax.servlet.http.HttpServletResponse,表示服務器回應。
(3)pageContext:javax.servlet.jsp.pageContext,表示JSP頁面。
(4)session:javax.servlet.http.HttpSession,表示一次會話。
(5)application:javax.servlet.servletContext,表示所有用戶共享信息。
(6)out:javax.servlet.jsp.jspWriter,寫入頁面內容。
(7)page:表示一個頁面的實例。
(8)config:javax.servlet.servletConfig,表示配置文件信息。
二、4種屬性范圍
(1)page范圍:一頁中有效,跳轉即無效。
(2)request范圍:服務器跳轉有效,客戶端跳轉無效。
(3)session范圍:跳轉有效,新開浏覽器無效。
(4)application范圍:所有用戶有效,重啟服務器無效。
這四個對象有3個方法:
(1) void setAttribute(String key,Object o);
(2) Object getAttribute(String key):取得後要向下轉型。
(3) void removeAttribute(String key);
三、request對象
request對象是接收客戶端發來的信息,而客戶端發來了頭信息、內容、傳遞方式、cookie。
常用方法:
(1)request.getParameter(String name):取得name元素的值。
(2)Enumeration enu = request.getParameterNames():取得全部的參數的名稱,通過迭代器遍歷。
(3)String[] strs = request.getParameterValues(String name):用於取得比如checkbox的多項選擇。
(4)Enumeration enu = request.getHeaderNames():獲得全部頭信息的名字。
(5)String str = request.getHeader(String name):獲得名字為name的頭信息的內容。
(6)String str = request.getMethod():獲得是post或get.
(7)request.setCharacterEncoding(String ):統一request的編碼。
(8)request.isUserInRole(String name)
(9)Cookie[] c = request.getCookies():獲得全部的cookie。
tomcat增加新用戶和新權限的方法:
(1)在tomcat/conf/tomcat-users.xml可以設置,參照admin配置即可,然後重啟tomcat服務器,完成新用戶和權限的載入。
(2)在web.xml進行設置,使得成為登錄網頁前會跳出窗口輸入用戶名、密碼。
四、post和get的區別
最明顯的區別是地址欄的區別,post傳遞時,地址欄沒有任何變化,而get傳遞,地址欄會顯示傳遞的信息,因此get傳遞的信息有限。
五、response對象
表示回應客戶端的對象。
1.常用方法:
(1)addCookie(Cookie):添加cookie
(2)setHeader(String name,String value):設置頭信息。
(3)sendRedirect():重定向,類似於客戶端跳轉。
常用應用:
(1)定時刷新:response.setHeader("refresh","seconds"):幾秒刷新一次。
(2)定時跳轉:response.setHeader("refresh","2;URL=hello.jsp");2秒後跳轉到hello.jsp。
(3)直接跳轉:response.sendRedirect("hello.jsp");
2.操縱Cookie:
將用戶的信息保存為一個cookie,存儲在客戶端,每次request時,都會把cookie發送到服務器端。
response.addCookie(Cookie e);添加cookie。
Cookie位於javax.servlet.http.cookie中。
常用方法:
(1)Cookie c = new Cookie("name","value"):創建一個新cookie。
(2)c.setMaxAge(int seconds):設置cookie最長壽命,因為原本cookie保存在浏覽器中,如果浏覽器關閉,cookie丟失。
(3)c.getName():獲得名字。
(4)c.getValue():獲得值。
六、session對象
session常用方法:
(1)String getId():獲得session id。
(2)session.setAttribute("",""):設置屬性。
(3)session.getCreationTime():獲得創建時間。
(4)session.getLastAccessedTime():獲得最後訪問時間。
(5)session.isNew():這個session是否是新的。
(6)session.invalidate():把session的記錄全部清空。
登錄-注銷頁面:
(1)使用session.setAttribute()注冊。
(2)使用session.isNew()判斷是否已經注冊。
七、application對象
常用方法:
(1)getRealPath(path):獲得真實路徑。
(2)getContextPath():獲得虛擬路徑。
application==this.getServletContext()
八、config對象
先從配置文件談起,在每個web應用中,都有一個WEB-INF文件夾,這個文件夾是很安全的,不能被其他人看到。
如果將一個hello.jsp文件放到WEB-INF中,如果能夠讓其能夠被訪問。
答案就是在WEB-INF/web.xml設置即可,內容如下:
<servlet>
<servlet-name>he</servlet-name>
<jsp-file>/WEB-INF/hello.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>he</servlet-name>
<url-pattern>hello</url-pattern>
</sevlet-mapping>
重啟服務器後,則在地址欄輸入http://localhost:8080/test/hello即可。
config常用方法:
(1)getInitParameterNames();
(2)getInitParameter(String name);
什麼是初始化參數呢?
初始化參數在web.xml中進行配置,形式如下:
<init-param>
<param-name>name</param-name>
<param-value>value</param-value>
</init-param>
九、pageContext對象
表示JSP上下文,可以通過這個實例,取得request\response\session\<jsp:forward>等
摘自:xiazdong的專欄