JSP中遇到的幾個常見問題

來源:互聯網
上載者:User
js|問題

  以前記的東西。

  1、表單request漢文書處理:

request.setCharacterEncoding("GB2312")

  2、在JSP網頁中擷取頁面的名稱:

request.getRequestURI() ;//檔案名稱
request.getRequestURL() ;//全部url

  3、 頁面不保留緩衝:

response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);

  4、日期時間(伺服器端)

String datestr ;
java.text.DateFormat df = new java.text.SimpleDateFormat("MM月dd日 HH:mm E"); //這裡格式化
datestr = df.format(new java.util.Date()) ;
out.println(datestr);

  或者

<% java.util.Date shijian= new java.util.Date();%>
<%=shijian.getYear()+1900%><%=shijian.getMonth()+1%><%=shijian.getDate()%>
<%=shijian.getHour()%><%=shijian.getMinute()%>

  5、java中運用正則。jdk需是1.4以上 import="java.util.regex.*

  6、點後退顯示網頁到期

  在裡面加以下代碼

<META http-equiv=Pragma content=no-cache>
<META http-equiv=Cache-Control content=no-cache>
<META http-equiv=Expires content=0>

  和 3 原理一樣。

  7、計算執行所花費的時間

  代碼開始取時間,結束後取時間,相減

long t1 = System.currentTimeMillis();
///////////////// your code
long t2 = System.currentTimeMillis() ;
long time = t2-t1;

  8、四捨五入,保留小數點後兩位小數?

import java.text.*;
NumberFormat nf=NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(2);
nf.setMinimumFractionDigits(2);
nf.format(numb);
或者(+0.005 - 0.01)再取.後兩位

  9、form的預設方法是get.

  post方式是向伺服器傳送大容量資料時使用的方法。(再開啟一個socket.?)

  10、 防止使用者直接輸入url進去頁面:

  一 是在要訪問的頁面中加入控制.這個一般用session。

  二 是從web伺服器控制,對某一目錄的所有訪問要通過驗證.(有人說把jsp放到web-inf下)

  11、資料庫是datetime 型 ,插入目前時間到資料庫:

java.sql.Date sqlDate = new java.sql.Date();
PreparedStatement pstmt = conn.prepareStatement("insert into foo(time) values(?)");
pstmt.setDate(1,sqlDate);
pstmt.executeUpdate();

  其實一般資料庫都有自己的系統時間函數。

insert into foo(time) values(sysdate)

  12、 session存取int類型的變數:

session.setAttribute("int", i+""); //注意這裡i+""
int i = Integer.parseInt(session.getAttribute("int"));

  session的一些概念。

  使用者在瀏覽網頁時,由於Http 協議是一種無狀態的協議,往往在不同的頁面之間存在資料交換的問題,這就需要在這些不同的頁面之間共用資料。常見的實現方法是把要共用的資料儲存到Session 中。比如在使用者登入的頁面中把一些使用者的資訊儲存到Session 之中,然後在其他的頁面中讀取使用者的資訊。這些共用的資料可以是字串或者與Java 的未經處理資料類型相關的對象,也可以是一個Java 對象。

  Session 只能儲存對象,不能儲存原始的資料類型,比如:

session.setAttribute(“count”,10)

  是非法的語句,如果要把值為10 的整數儲存到Session 中,需要使用以下的方法:

session.setAttribute(“count”,new Integer(10));

  然後在另一個頁面中使用:

(Integer)session.getAttribute(“count”)

  來把這個整數讀取出來。

was中設定可以把session放在系統的資料庫中,但這樣影響效率。session大小最好不要太大

  13、把字元轉化成ASCII碼

int a='A'; out.println(a);

  14、String s = new String("xyz");建立了兩個String Object對象,一個是“xyx”,一個是指向“xyx”的引用對象s。

  還有典型的equals() 與 == 這個參考在堆棧原理。

  15、swtich不能作用在long上和String上:

switch(expr1)中,expr1是一個整數運算式。傳遞給 switch 和 case 語句的參數應該是
int、 short、 char 或者 byte。long,string 都不能作用於swtich。

  16、Hashtable和HashMap 

  Hashtable繼承自Dictionary類,而HashMap是Java1.2引進的Map interface的一個實現HashMap允許將null作為一個entry的key或者value,而Hashtable不允許Hashtable的方法是Synchronize的,而HashMap不是,在多個線程訪問Hashtable時,不需要自己為它的方法實現同步,而HashMap就必須為之提供外同步。



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.