国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

探索JSP中的"9大內置對象!"

2019-11-14 15:10:35
字體:
來源:轉載
供稿:網友

1.什么是jsp內置對象?

jsp內置對象就是Web容器創建的一組對象,我們都知道Tomcat可以看成是一種Web容器,所以我們可以知道所謂的內置對象Tomcat創建的,使用內置對象時可以不適用new關鍵字,

直接使用即可.

2.什么是內置對象?

解析:就是Web容器創建的一組對象,當Tocmat啟動時,這組對象在Tomcat服務器啟動的時候加載到內存,可以用戶直接使用.

3.JSP內置對象都有哪些?

out(常用)out 對象用于在Web瀏覽器內輸出信息,并且管理應用服務器上的輸出緩沖區。在使用 out 對象輸出數據時,可以對數據緩沖區進行操作,及時清除緩沖區中的殘余數據,為其他的輸出讓出緩沖空間。待數據輸出完畢后,要及時關閉輸出流。
request(常用)request 對象是 javax.servlet.httpServletRequest類型的對象。 該對象代表了客戶端的請求信息,主要用于接受通過HTTP協議傳送到服務器的數據。(包括頭信息、系統信息、請求方式以及請求參數等)。request對象的作用域為一次請求。
response(常用)response 代表的是對客戶端的響應,主要是將JSP容器處理過的對象傳回到客戶端。response對象也具有作用域,它只在JSP頁面內有效。
session(常用)session 對象是由服務器自動創建的與用戶請求相關的對象。服務器為每個用戶都生成一個session對象,用于保存該用戶的信息,跟蹤用戶的操作狀態。session對象內部使用Map類來保存數據,因此保存數據的格式為 “Key/value”。 session對象的value可以使復雜的對象類型,而不僅僅局限于字符串類型。
application(常用)application 對象可將信息保存在服務器中,直到服務器關閉,否則application對象中保存的信息會在整個應用中都有效。與session對象相比,application對象生命周期更長,類似于系統的“全局變量”。

pageContext 

pageContext 對象的作用是取得任何范圍的參數,通過它可以獲取 JSP頁面的out、request、reponse、session、application 等對象。pageContext對象的創建和初始化都是由容器來完成的,在JSP頁面中可以直接使用 pageContext對象。

config 

config 對象的主要作用是取得服務器的配置信息。通過 pageConext對象的 getServletConfig() 方法可以獲取一個config對象。當一個Servlet 初始化時,容器把某些信息通過 config對象傳遞給這個 Servlet。 開發者可以在web.xml 文件中為應用程序環境中的Servlet程序和JSP頁面提供初始化參數。

page 

page 對象代表JSP本身,只有在JSP頁面內才是合法的。 page隱含對象本質上包含當前 Servlet接口引用的變量,類似于Java編程中的 this 指針。

exception

exception 對象的作用是顯示異常信息,只有在包含 isErrorPage="true" 的頁面中才可以被使用,在一般的JSP頁面中使用該對象將無法編譯JSP文件。excepation對象和Java的所有對象一樣,都具有系統提供的繼承結構。exception 對象幾乎定義了所有異常情況。在Java程序中,可以使用try/catch關鍵字來處理異常情況; 如果在JSP頁面中出現沒有捕獲到的異常,就會生成 exception 對象,并把 exception 對象傳送到在page指令中設定的錯誤頁面中,然后在錯誤頁面中處理相應的 exception 對象。

 

request如何在另一個頁面拿到值,并且解決post提交的中文亂碼問題!

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">        <title>My JSP '1.jsp' starting page</title>        <meta http-equiv="PRagma" content="no-cache">    <meta http-equiv="cache-control" content="no-cache">    <meta http-equiv="expires" content="0">        <meta http-equiv="keyWords" content="keyword1,keyword2,keyword3">    <meta http-equiv="description" content="This is my page">    <!--    <link rel="stylesheet" type="text/CSS" href="styles.css">    -->  </head>    <body>    <form action="index.jsp" method="post">        <input typr="text" name="txtName" /><br/>        <input type="password" name="txtPwd" /><br/><input type="submit" name="Login" />    </form>  </body></html>

 

另一個index.jsp頁面中寫入如下代碼

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">        <title>My JSP 'index.jsp' starting page</title>    <meta http-equiv="pragma" content="no-cache">    <meta http-equiv="cache-control" content="no-cache">    <meta http-equiv="expires" content="0">        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">    <meta http-equiv="description" content="This is my page">    <!--    <link rel="stylesheet" type="text/css" href="styles.css">    -->  </head>    <body>
   <%
<!-- 用post方式提交解決亂碼的方法 -->
    request.setCharacterEncoding("UTF-8");
%> <%
    <!-- request.getParameter(form表單中文本框的name名字);  用來拿到提交過來的文本框的屬性 -->
    String name=request.getParameter("txtName");    String pwd=request.getParameter("txtPwd");        %>    <%=name %><br/>    <%=pwd %>  </body></html>

運行結果如下:用戶名和密碼輸入的都是123 (當然,沒有做邏輯判定了  嘻嘻)

當點擊提交之后,跳轉到index.jsp頁面:

結果就是:

request轉發的方法

<!-- 2.jsp頁面 -->
<% if(request.getParameter("txtName").equals("123")){ String str=request.getParameter("txtName"); request.setAttribute("name", str); //轉發 request.getRequestDispatcher("index.jsp").forward(request, response); } %>

我們可以看到,通過中轉站2.jsp進行判定通過之后,轉發到歡迎頁面,但是URL中顯示的還是2.jsp

response重定向方法

<%    if(request.getParameter("txtName").equals("123")){    	String str=request.getParameter("txtName");    	request.setAttribute("name", str);    	//重定向    	response.sendRedirect("index.jsp");    }    %>

通過重定向跳轉之后,我們可以看到URL地址中變成index.jsp頁面.

request轉發和response重定向的區別

(1).Request Dispatcher.forward()是容器中控制權的轉向,在客戶端瀏覽器地址欄中不會顯示出轉向后的地址;
(2).response.sendRedirect()則是完全的跳轉,瀏覽器將會得到跳轉的地址,并重新發送請求鏈接。這樣,從瀏覽器的地址欄中可以看到跳轉后的鏈接地址。
前者更加高效,在前者可以滿足需要時,盡量使用RequestDispatcher.forward()方法.

注:在有些情況下,比如,需要跳轉到一個其它服務器上的資源,則必須使用HttpServletResponse.sendRequest()方法。

out方法的使用:

<%            out.print("我是out內置對象");        %>

其運行結果是:

session的使用方法:

<!-- 一個網頁中把變量username以username為名字保存在session上--><%session.setAttribute("username",username);%><!-- 在另一個頁面中通過getAttribute方法取得username的值--><%String username = (String)session.getAttribute("username");%><!-- "username"是傳遞變量的名字 username 是變量--><!-- session是一次會話只要瀏覽器不關閉就不會關閉會話 一般默認保存30分鐘可以根據自己的需要更改-->

application的使用方法

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%><html>  <head>    <title>My JSP 'ServletContextAttribute.jsp' starting page</title>  </head>  <body>    <%      application.setAttribute("name","Hello") ;      application.removeAttribute("name") ;    %>  </body></html>ServletContextListenerDemo.java:package org.lxh.listener.app;import javax.servlet.ServletContextAttributeEvent;import javax.servlet.ServletContextAttributeListener;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;public class ServletContextListenerDemo implements    ServletContextAttributeListener, ServletContextListener {  public void attributeAdded(ServletContextAttributeEvent arg0) {    System.out.println("** 增加屬性:" + arg0.getName() + " --> " + arg0.getValue()) ;  }  public void attributeRemoved(ServletContextAttributeEvent arg0) {    System.out.println("** 刪除屬性:" + arg0.getName() + " --> " + arg0.getValue()) ;  }  public void attributeReplaced(ServletContextAttributeEvent arg0) {    System.out.println("** 替換屬性:" + arg0.getName() + " --> " + arg0.getValue()) ;  }  public void contextDestroyed(ServletContextEvent arg0) {    System.out.println("** 容器銷毀:" + arg0.getServletContext().getRealPath("/"));  }  public void contextInitialized(ServletContextEvent arg0) {    System.out.println("** 容器初始化:" + arg0.getServletContext().getRealPath("/"));  }}

 

                                                                                         如若轉載,請標明 @小小菜鳥,飛得高

                                                            本人QQ是 : 1878321819

                                                        對jsp/servlet有興趣的可以進行交流哦!

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 科尔| 鲁甸县| 辽宁省| 依兰县| 云安县| 孟津县| 鲁甸县| SHOW| 嫩江县| 红桥区| 娄烦县| 额济纳旗| 喜德县| 宁波市| 敦化市| 河池市| 开平市| 万州区| 文成县| 花莲县| 双牌县| 芦溪县| 荔波县| 湖北省| 黄陵县| 桐庐县| 响水县| 莱西市| 澄迈县| 新津县| 星子县| 军事| 潜江市| 滨州市| 临朐县| 蓬安县| 海淀区| 界首市| 凯里市| 宜川县| 泸水县|