<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Rising Sun

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      148 隨筆 :: 0 文章 :: 22 評論 :: 0 Trackbacks
    使用<%! %>方式所聲明的變量為全局變量,即表示:若同時n 個用戶在執行此JSP網頁時,
    將會共享此變量。因此筆者強烈建議讀者,千萬別使用<%! %>來聲明您的變量。
    若要聲明變量時,請直接在<% %>之中聲明使用即可。
    ----------------------------------------------------------------------------------
    有時候,我們想要讓網頁自己能自動更新,因此,須使用到Refresh 這個標頭。舉個例子,我
    們告訴瀏覽器,每隔三分鐘,就重新加載此網頁:
    response.setIntHeader("Refresh" , 180)
    如果想要過十秒后,調用瀏覽器轉到http://Server/Path 的網頁時,可用如下代碼:
    response.setHeader("Refresh","10; URL=http://Server/Path" )
    如果大家對HTML 語法還熟悉,則HTML 語法中也有類似的功能:
    <META HTTP-EQUIV="Refresh" CONTENT=" 10; URL=http://Server/Path" >
    上述兩種方法皆可以做到自動重新加載。
    ----------------------------------------------------------------------------------

    jsp隱式對象

    輸入輸出對象 out request response
    作用域通訊對象 session application pagecontext
    servlet對象  page config
    錯誤對象  exception
    ----------------------------------------------------------------------------------

    servlet:
    request.setAttribute("articleComment",articleCommentArrayList);
            RequestDispatcher dispatcher = request.getRequestDispatcher("pages/delcomment.jsp");

    jsp:
    ArrayList articletypeArrayList = (ArrayList)request.getAttribute("articleType");
    ----------------------------------------------------------------------------------
    jsp標準動作

    jsp:useBean
    jsp:setProperty
    jsp:getProperty
    jsp:include
    jsp:forword
    jsp:parm
    ----------------------------------------------------------------------------------
    <button name="but" onclick="document.form1.submit()">提交</button>
    location.href="abc.htm";   跳到另一頁 也可刷新本頁
    ----------------------------------------------------------------------------------
    Core 主要

    表達式操作:out ,set ,remove,catch等;
    流程控制:if choose when otherwise
    迭代操作:forEach forTokens

    前提條件是用taglib 引入核心標簽庫
    --------------------------------------------------------------------------------------
    表達式操作
    -------------------------------------------
    <c:out>不可以不帶主體
    <c:out value=需要顯示的內容 default=如果value的值為空,則顯示default的值 escapeXml是否轉換特殊字符,如設定為真,默認會將<,>,、等字符轉換成&lt等;
    <c:out value ="<p>有特殊字符</p>">
    <c:out value ="<p>有特殊字符</p> escapeXml="false" ">
    <c:set>將變量存貯在JSP范圍內或javabean中
    -------------------------------------------

    <c:set>
    可以帶主體也可以不帶
    <c:set value="要存在變量中的值" var scope=默認page/>
    <c:set  var scope>主體中的內容存在變量中 </c:set>
    <c:set  value ="要存在對象中的值" target="javabean的對象" property="屬性名"/>
    <c:set  target="javabean的對象" property="屬性名">
    主體中的內容存在對象中 </c:set>
    <c:set var="num"> 1+1 </c:set>
    -------------------------------------------
    <c:remove var="要移出的變量名" scope可有可無>  如果不寫scope就會按照page->request->session->application的范圍順序依次刪除
    -------------------------------------------
    <c:catch>主要將可能發生的錯誤放在<c:catch>和</c:catch>之間
    如果真的發生錯誤將把錯誤信息存貯在var中
    <c:catch var="errorMessage">
    <% String str="no number" ; int i=Integer.parseInt(str);%>
    </catch>
    ${errorMessage}
    -------------------------------------------


    流程控制<c:if> <c:choose> <c:when> <c:otherwise>

    --------------------------------------------------------------------------------------
    <c:if test(必須有test屬性)="測試條件" var="用來存儲test后的結果">
    當條件為真時,執行主體內容
    </c:if>
    <c:if test="{param.username}=='admin'" var="con" >
    您好,admin
    </c:if>
    ${con}
    執行的時候在jsp的后面直接加上?username=admin
    -------------------------------------------
    <c:choose>本身只當作<c:when>和<c:otherwise>的父標簽
    <c:choose></c:choose>主體內容為
    1.空白
    2.1或多個<c:when>
    3.0個或1個<c:otherwise>,<c:when>必須在<c:otherwise>之前
    <c:when test="必須的測試條件">
    -------------------------------------------
    <c:forEach>為循環控制,它可以將集合(Collection)中的成員按循序瀏覽一遍,當條件符合時,就會繼續;
    var用于存放現在指到的成員;String
    varstatus用來存放現在知道的相關成員的信息  String
    例如:varstatus="a"
    則a還有四個屬性,index,count,first和last
    index:number 現在指到的成員的索引
    count:number 總共指到的成員的總數
    first:boolean 現在指到的成員是否是第一個成員
    last:boolean 現在指到的成員是否為最后一個成員
    items 被迭代的集合對象,包括:Arrays Collection Iterator Enumeration Map String

    begin開始的位置int
    end結束的位置int
    step每次迭代的間隔數int
    限定begin如果有必須大于0,end必須大于begin
    step必須大于等于1

    <%
       String a[]= new String[3];
      a[0]="hello ";
      a[1]="this";
      a[2]=" is a test";
      request.setAttribute("att",a);
    %>
    <c:forEach items="${"att"}" var="items" varStatus="s">
      ${item}
      item有效范圍在foreach中
      index:${s.index}
      count:${s.count}
      first:${s.first}
      last:${s.last}
    </c:forEach>
    不同的begin和end的設置輸出不一樣
    -------------------------------------------
    <c:forTokens>
    </c:forTokens>用來瀏覽一字符串中所有的成員,其成員定義由定義符號來分隔
    delims定義用來分隔字符串的字符
    <c:forEach>也可以分隔字符串,但不能設定分隔符
    <c:forEach items="a,b,c,d" var="item">
      ${item}
    </c:forEach>
    <c:forToken items="a,b,c,d" var="item" delims=",">
      ${item}
    </c:forEach>
    <c:forToken items="123-456-789" var="item" delims="-">
      ${item}
    </c:forEach>
    -------------------------------------------
    此外,筆者還使用<c:set>來傳遞值給Core_import.jsp,這就是<c:param>無法做到的動作,
    <c:param>只能從包含端拋給被包含端,但是在屬性范圍中,可以讓包含端也能得到被包含端傳來的
    數據
    -------------------------------------------
    國際化與格式化標簽庫 I18N

    重寫客戶端的區域設置
    <fmt:setLocale value="語言與國家代碼" variant="瀏覽器變量" scope="page|request|session|application"/>


    區域代碼  區域,語言
    en        英文
    en_US     英文(美國)
    zh_TW     中文(臺灣)
    zh_CN     中文(中國)
    de_CH      瑞士,德國樣式

    創建一個I18N本地化上下文,并將資源包加載到其中
    <fmt:bundle basename="無擴展名的資源文件名">Body</fmt:bundle>

    創建一個I18N本地化上下文,并存在范圍變量里
    <fmt:setBundle basename="無擴展名的資源文件名" var="指定導出的范圍變量的名稱" scope="page|request|session|application"/>

    給出資源包的輸出值
    <fmt:message key="消息關鍵字"/>

    格式化數字
    <fmt:formatNumber value="要格式化的數字" type="格式類型" minFractionDigits="小數點后保留幾位"/>

    格式化時間
    <fmt:formatDate value=""/>

    -------------------------------------------

    JSTL中最重要的就是國際化格式(I18N)的支持,此功能可以對一個特定的語言請求作出合適的響應。
    不同的國家有不同的數據顯示格式。如數字356987.589,在法國為356 987,589
    在德國356.987,589 在美國356,987.589

    I18N格式符主要包含:國際化,消息,數字日期格式化。

    詳細分類:
    國際化setLocale
          requestEncoding:用來設定字符串編碼,功能和ServletRequest.setCharacterEncoding()相同

    <fmt:setLocale value="一定要有value屬性,設定地區代碼。其中最少有兩個字符的語言代碼如zh ,en 然后再加上兩個字母的國家和地區代碼,用-或_連接"  varitant="瀏覽器或供應商,如WIN,Mac" >

    <%Date n= new Date();
      request.setAttribute("d",n);
    %>
    <fmt:setLocale value="zh_CN"/><fmt:formatDate value=$bdxzdbb/>

    --消息     bundle     message      param     setBundle
          抓取系統設定的語系資源,作為國際化信息.通過建立存放國際化信息的數據來源.建立propertie文件,并存儲在we-inf/classes目錄下
          寫的時候必須依照key=value
          MyResource.properties
          str1=hello
          str2=My name is Bunny
    <fmt:bundle basename="basename" prefix="屬性的前綴">
    basename是設定要使用的數據源,千萬不可有任何的文件類型即擴展名,如.class,或.properties
    prefix是前置關鍵字,如當如下的propertites:
      requestinfo.label.method=Method;
      requestinfo.label.requesturi=URI;
      requestinfo.label.protocol=Protocol;
     我們就可以用以下方法打開
    <fmt:bundle basename="MyResource" prefix="requestinfo.label.">
    <fmt:message key="protocol"/>
    <fmt:message key="method"/>
    </fmt:bundle>

     

     <fmt:message>會從指定的資源中把特定的關鍵字的值抓取出來。
    <fmt:setbundle>設定默認的數據源
    <fmt:setbundle basename=""  var="存儲資源的名稱">

    <fmt:setbundle>和<fmt:bundle>都可以和<fme:setLocale>搭配使用.多種語言源時,可以將文件名取成如書上例子所示的,當語言取成zh_TW時,它默認去找MyResource_zh_TW.properties作為數據源,如果設定的區域沒有符合的文件名,將會使用MyResource.properties 來作為數據源。

    如是中文的資源文件,它的內容大部分是Unicode的符號,他們都代表一些中文字,在執行jsp時,會出現亂碼,無法正常顯示中文;
    --------------------------------------------------------------------------------------
    SQL標簽庫
    1.設置數據源
      <sql:setDataSource driver="驅動的名字'sun.jdbc.odbc.JdbcOdbcDriver'" url="jdbc:odbc:blog" var="conn"/>
    2.用事務建表
      <sql:transaction dataSource="${conn}">
        <sql:update var="newTable">
          sql語句來見表
        </sql:update>
      </sql:transaction>
    3.插入記錄
      <sql:update var="newRow" dataSource="${conn}">
          insert into tablename values(?,?,?)
          <sql:param value=""/>
          <sql:param value=""/>
      </sql:update>
    4.查詢記錄
      <sql:query var="rs" dataSource="${conn}">
          select * from tablename
      </sql:query>
    5.用表格顯示記錄
      <table border="1">
       <tr>
        <c:forEach var="columnName" items="${rs.columnNames}">
         <th>
          <c:out value="${columnName}"/>
         </th>
        </c:forEach>
       </tr>
       <c:forEach var="row" items="${rs.rowsByIndex}">
        <tr>
          <c:forEach var="column" items="${row}">
        <td>
          <c:out value="${column}"/>
        </td>
       </c:forEach>
        </tr>
       </c:forEach>
      </table>
    --------------------------------------------------------------------------------------

    import java.util.Calendar;
    import java.util.GregorianCalendar;

    public class Test {
        public static void main(String[] argv) {
            //返回一個當前日期和時間的Calendar
            Calendar curDate = Calendar.getInstance();
            //返回今天夜里零時的Calendar(這里不明白看API)
            Calendar tommorowDate = new GregorianCalendar(curDate
                    .get(Calendar.YEAR), curDate.get(Calendar.MONTH), curDate
                    .get(Calendar.DATE) + 1, 0, 0, 0);
            //一天24小時當中,當前過了多少毫秒(用一天24小時的毫秒數減去一天剩余時間的毫秒數)
            System.out.println((60*60*24*1000-(tommorowDate.getTimeInMillis() - curDate
                    .getTimeInMillis())));
        }
    }

    --------------------------------------------------------------------------------------

    轉換成時間
    DateFormat format = new SimpleDateFormat("H:dd");
    Date date = format.parse("8:00");

    加上20分鐘,如果是減去20分鐘的話用-20
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(date);
    calendar.add(Calendar.MINUTE, 20);

    --------------------------------------------------------------------------------------
    11.JSP中動態INCLUDE與靜態INCLUDE的區別?
    動態INCLUDE用jsp:include動作實現
    它總是會檢查所含文件中的變化,適合用于包含動態頁面,并且可以帶參數
    靜態INCLUDE用include偽碼實現,定不會檢查所含文件的變化,適用于包含靜態頁面
    --------------------------------------------------------------------------------------
    int i=100;
    String binStr=Integer.toBinaryString(i);
    String otcStr=Integer.toOctalString(i);
    String hexStr=Integer.toHexString(i);
    System.out.println(binStr);
    System.out.println(otcStr);
    System.out.println(hexStr);
    --------------------------------------------------------------------------------------
    Calendar date=Calendar.getInstance();
    SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");

    String name=format.format(date.getTime());
    --------------------------------------------------------------------------------------

    使用WEB容器捕獲異常進行處理,在web.xml文件頭部加上:
    <error-page>
       <exception-type>java.lang.Exception</exception-type>
       <location>/system_error.jsp</location>-----出錯后轉向system_error.jsp頁面
    </error-page>
    <error-page>
       <error-code>404</error-code>
       <location>/system_error.jsp</location>-----出錯后轉向system_error.jsp頁面
    </error-page>
    <error-page>
       <error-code>400</error-code>
       <location>/system_error.jsp</location>-----出錯后轉向system_error.jsp頁面
    </error-page>
    <error-page>
       <error-code>500</error-code>
       <location>/system_error.jsp</location>-----出錯后轉向system_error.jsp頁面
    </error-page>
    --------------------------------------------------------------------------------------
    Java 運行 記事本
    Runtime rt = Runtime.getRuntime();
    Process p = rt.exec("notepad"); 



    Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1535545

    posted on 2007-08-25 14:32 brock 閱讀(1574) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 免费观看成人毛片a片2008| 久久国产免费观看精品3| 毛片免费观看的视频在线| 久久久久亚洲AV无码专区首JN| 国产精品玖玖美女张开腿让男人桶爽免费看 | 久99久精品免费视频热77| 亚洲高清国产AV拍精品青青草原| 国产精品永久免费视频| 亚洲高清国产拍精品青青草原| 国产成人高清亚洲一区久久 | 亚洲欧洲在线观看| 91制片厂制作传媒免费版樱花| 亚洲日韩在线视频| 妻子5免费完整高清电视| 中文有码亚洲制服av片| 全免费a级毛片免费看不卡| 亚洲AV成人一区二区三区观看| 免费国产a国产片高清网站| 国产成人精品免费大全| 亚洲成人中文字幕| 男女免费观看在线爽爽爽视频 | 久青草国产免费观看| 亚洲色精品vr一区二区三区 | 在线jlzzjlzz免费播放| 国产午夜亚洲精品不卡电影| 自拍偷自拍亚洲精品第1页| 久久永久免费人妻精品下载| 亚洲中文字幕一二三四区苍井空| 免费一级特黄特色大片在线观看| 一区二区3区免费视频| 亚洲成人中文字幕| 国产在线国偷精品产拍免费| 免费一级毛suv好看的国产网站| 亚洲午夜久久久影院| 最近中文字幕免费2019| 激情小说亚洲色图| 亚洲AV永久纯肉无码精品动漫| 毛片高清视频在线看免费观看| 精精国产www视频在线观看免费| 亚洲成人高清在线观看| 无码国产亚洲日韩国精品视频一区二区三区 |