java學習筆記—JSP3 and javaBean(35)

來源:互聯網
上載者:User

標籤:

JSP配置

JSP的本質是Servlet,那麼Servlet是可以進行web.xml配置,那麼理論上JSP也可以進行基本的配置。

修改web.xml

 <context-param>    <param-name>title</param-name>    <param-value>czbk</param-value>  </context-param>  <servlet>    <servlet-name>myjsp</servlet-name>    <jsp-file>/init.jsp</jsp-file>    <init-param>      <param-name>ip</param-name>      <param-value>192.168.10.1</param-value>    </init-param>    <load-on-startup>1</load-on-startup>  </servlet>  <servlet-mapping>   <servlet-name>myjsp</servlet-name>   <url-pattern>/haha.html</url-pattern>  </servlet-mapping>

編寫代碼擷取配置資訊

<body>    <%-- JSP的訪問路徑 --%>    this is my jsp! <br/>    <%-- 擷取配置參數 --%>    <%= config.getInitParameter("ip") %><br/>    <%= application.getInitParameter("title") %><br/>    <%-- 重寫JSP的初始化方法 --%>    <%!       public void jspInit(){         System.out.println("jsp init.....");            }    %></body>
JSP排錯
1.翻譯階段
<body> <%-- </body>
org.apache.jasper.JasperException: /error.jsp(7,8) Unterminated <%-- tag
2.編譯階段 <body> <%= "itcast %> </body>
org.apache.jasper.JasperException: Unable to compile class for JSP:
3.運行階段 <body> <%= 1/0 %> </body>
org.apache.jasper.JasperException: An exception occurred processing JSP page /error.jsp at line 7

  處理錯誤的方式只有一種就是看錯誤資訊。

如果在進行jsp配置的時候強行的將jsp映射為其他的路徑,那麼需要使用使用一對多映射將原來的路徑也進行映射,否則原來的路徑中是無法進行配置參數擷取的。

  <servlet-mapping>    <servlet-name> myjsp</servlet-name>    <url-pattern>/init.jsp</url-pattern>    <url-pattern>/haha.html</url-pattern>  </servlet-mapping>

 

二 JavaBean

目前為止JavaBean主要協助我們進行基本的資料類型的封裝。可以方便後期的資料轉送。

特徵:

  1. 私人話幾乎所有的屬性
  2. 提供所有的get和set方法
  3. 無參數的建構函式
  4. 提供有參數的建構函式

JavaBean的屬性值得並不是你在JavaBean中定義的屬性,是get和set方法後面的去掉首字母大小的字母轉換為小寫後的值。

JavaBean技術

JSP主要的任務是顯示使用者的資料。那麼也需要承擔封裝使用者資料的職責。那麼在JSP頁面中我們必須要使用相應的技術實現資料的封裝。即JSP中的JavaBean技術。

1  建立JavaBean對象

<jsp:useBean ? 指定是動作名,使用javabeanid="" ? 指定的是引用變數名,也可以是屬性名稱beanName="" ? 指定對象的別名class="" ? 指定要建立的javabean類(全限定名)scope="page" ? 指定域type="">? 指定類的類型</jsp:useBean>

舉例1:在JSP中建立一個javabean的對象。

<body>

    <%-- 建立一個javabeanObject Storage Service在指定的page域中 --%>

    <jsp:useBean id="myuser" class="cn.itcast.beans.User" scope="page"></jsp:useBean>

    <%= ((User)pageContext.findAttribute("myuser")).getName() %>

</body>

以上的代碼被翻譯為:

cn.itcast.beans.User myuser = null;

      synchronized (_jspx_page_context) {

        myuser = (cn.itcast.beans.User) _jspx_page_context.getAttribute("myuser", PageContext.PAGE_SCOPE);

        if (myuser == null){

          myuser = new cn.itcast.beans.User();

          _jspx_page_context.setAttribute("myuser", myuser, PageContext.PAGE_SCOPE);

        }

      }

首先檢測指定的域中是否包含指定的屬性名稱的對象,如果有直接擷取出來,如果沒有直接建立出來。

1  設定屬性值

<jsp:setProperty ? 指定是一個設定屬性的動作name="" ? 指定要設定哪一個對象property="" ? 指定要設定哪一個屬性param="" ? 指定以什麼請求參數作為以上屬性的值value=""/>? 指定具體的值如果需要將請求參數作為屬性的值那麼可以使用param,如果需要將所有的請求參數進行封裝指定對象的相應屬性上去,那麼property的值可以直接是*。

2  擷取屬性值

<jsp:getProperty       name=""                   指定要擷取的對象property=""/>             指定要擷取的屬性

3 舉例實現資料的封裝和擷取

<%-- 建立一個javabeanObject Storage Service在指定的page域中 --%>

<jsp:useBean id="myuser" class="cn.itcast.beans.User" scope="page"></jsp:useBean>

<%-- 設定javabean屬性 --%>

<jsp:setProperty name="myuser" property="*"/> à 使用請求參數封裝資料

<%-- 擷取javabean屬性 --%>

<jsp:getProperty name="myuser" property="name"/><br/>

<jsp:getProperty name="myuser" property="age"/><br/>

<jsp:getProperty name="myuser" property="likes"/><br/>

java學習筆記—JSP3 and javaBean(35)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.