導航:首頁 > 編程語言 > jsp左移

jsp左移

發布時間:2023-05-07 10:31:53

java代碼優化的常用方法有什麼

1、 盡量指定類的final修飾符 帶有修飾符的類是不可派生的。
在Java核心API中,有許多應用final的例子,例如java.lang.String。為String類指定final防止了人們覆蓋length()方法。另外,如果指定一個類為final,則該類所有的方法都是final。Java編譯器會尋找機會內聯(inline)所有的final方法(這和具體的編譯器實現有關)。此舉能夠使性能平均提高50% 。
2、 盡量重用對象。
特別是String 對象的使用中,出現字元串連接情況時應用StringBuffer 代替。由於系統不僅要花時間生成對象,以後可能還需花時間對這些對象進行垃圾回收和處理。因此,生成過多的對象將會給程序的性能帶來很大的影響。
3、 盡量使用局部變數,調用方法時傳遞的參數以及在調用中創建的臨時變數都保存在棧(Stack)中,速度較快。
其他變數,如靜態變數、實例變數等,都在堆(Heap)中創建,速度較慢。另外,依賴於具體的編譯器/JVM,局部變數還可能得到進一步優化。請參見《盡可能使用堆棧變數》。
4、 不要重復初始化變數
默認情況下,調用類的構造函數時, Java會把變數初始化成確定的值:所有的對象被設置成null,整數變數(byte、short、int、long)設置成0,float和double變數設置成0.0,邏輯值設置成false。當一個類從另一個類派生時,這一點尤其應該注意,因為用new關鍵詞創建一個對象時,構造函數鏈中的所有構造函數都會被自動調用。
5、 在JAVA + ORACLE 的應用系統開發中,java中內嵌的SQL語句盡量使用大寫的形式,以減輕ORACLE解析器的解析負擔。
6、 Java 編程過程中,進行資料庫連接、I/O流操作時務必小心,在使用完畢後,即使關閉以釋放資源。
因為對這些大對象的操作會造成系統大的開銷,稍有不慎,會導致嚴重的後果。
7、 由於JVM的有其自身的GC機制,不需要程序開發者的過多考慮,從一定程度上減輕了開發者負擔,但同時也遺漏了隱患,過分的創建對象會消耗系統的大量內存,嚴重時會導致內存泄露,因此,保證過期對象的及時回收具有重要意義。
JVM回收垃圾的條件是:對象不在被引用;然而,JVM的GC並非十分的機智,即使對象滿足了垃圾回收的條件也不一定會被立即回收。所以,建議我們在對象使用完畢,應手動置成null。
8、 在使用同步機制時,應盡量使用方法同步代替代碼塊同步。
9、 盡量減少對變數的重復計算
例如:for(int i = 0;i < list.size; i ++) {

}
應替換為:
for(int i = 0,int len = list.size();i < len; i ++){

}
10、盡量採用lazy loading 的策略,即在需要的時候才開始創建。

例如: String str = 「aaa」;
if(i == 1) {
list.add(str);
}
應替換為:
if(i == 1) {
String str = 「aaa」;
list.add(str);
}

11、慎用異常

異常對性能不利。拋出異常首先要創建一個新的對象。Throwable介面的構造函數調用名為fillInStackTrace()的本地(Native)方法,fillInStackTrace()方法檢查堆棧,收集調用跟蹤信息。只要有異常被拋出,VM就必須調整調用堆棧,因為在處理過程中創建了一個新的對象。 異常只能用於錯誤處理,不應該用來控製程序流程。
12、不要在循環中使用:

Try {
} catch() {
}
應把其放置在最外層。
13、StringBuffer 的使用:

StringBuffer表示了可變的、可寫的字元串。
有三個構造方法 :
StringBuffer (); //默認分配16個字元的空間
StringBuffer (int size); //分配size個字元的空間
StringBuffer (String str); //分配16個字元+str.length()個字元空間
你可以通過StringBuffer的構造函數來設定它的初始化容量,這樣可以明顯地提升性能。
這里提到的構造函數是StringBuffer(int length),length參數表示當前的StringBuffer能保持的字元數量。你也可以使用ensureCapacity(int minimumcapacity)方法在StringBuffer對象創建之後設置它的容量。首先我們看看StringBuffer的預設行為,然後再找出一條更好的提升性能的途徑。
StringBuffer在內部維護一個字元數組,當你使用預設的構造函數來創建StringBuffer對象的時候,因為沒有設置初始化字元長度,StringBuffer的容量被初始化為16個字元,也就是說預設容量就是16個字元。當StringBuffer達到最大容量的時候,它會將自身容量增加到當前的2倍再加2,也就是(2*舊值+2)。如果你使用預設值,初始化之後接著往裡面追加字元,在你追加到第16個字元的時候它會將容量增加到34(2*16+2),當追加到34個字元的時候就會將容量增加到70(2*34+2)。無論何事只要StringBuffer到達它的最大容量它就不得不創建一個新的字元數組然後重新將舊字元和新字元都拷貝一遍――這也太昂貴了點。所以總是給StringBuffer設置一個合理的初始化容量值是錯不了的,這樣會帶來立竿見影的性能增益。StringBuffer初始化過程的調整的作用由此可見一斑。所以,使用一個合適的容量值來初始化StringBuffer永遠都是一個最佳的建議。
14、合理的使用Java類 java.util.Vector。

簡單地說,一個Vector就是一個java.lang.Object實例的數組。Vector與數組相似,它的元素可以通過整數形式的索引訪問。但是,Vector類型的對象在創建之後,對象的大小能夠根據元素的增加或者刪除而擴展、縮小。請考慮下面這個向Vector加入元素的例子:
Object bj = new Object();
Vector v = new Vector(100000);
for(int I=0;
I<100000; I++) { v.add(0,obj); }
除非有絕對充足的理由要求每次都把新元素插入到Vector的前面,否則上面的代碼對性能不利。在默認構造函數中,Vector的初始存儲能力是10個元素,如果新元素加入時存儲能力不足,則以後存儲能力每次加倍。Vector類就對象StringBuffer類一樣,每次擴展存儲能力時,所有現有的元素都要復制到新的存儲空間之中。下面的代碼片段要比前面的例子快幾個數量級:
Object bj = new Object();
Vector v = new Vector(100000);
for(int I=0; I<100000; I++) { v.add(obj); }
同樣的規則也適用於Vector類的remove()方法。由於Vector中各個元素之間不能含有「空隙」,刪除除最後一個元素之外的任意其他元素都導致被刪除元素之後的元素向前移動。也就是說,從Vector刪除最後一個元素要比刪除第一個元素「開銷」低好幾倍。
假設要從前面的Vector刪除所有元素,我們可以使用這種代碼:
for(int I=0; I<100000; I++)
{
v.remove(0);
}
但是,與下面的代碼相比,前面的代碼要慢幾個數量級:
for(int I=0; I<100000; I++)
{
v.remove(v.size()-1);
}
從Vector類型的對象v刪除所有元素的最好方法是:
v.removeAllElements();
假設Vector類型的對象v包含字元串「Hello」。考慮下面的代碼,它要從這個Vector中刪除「Hello」字元串:
String s = "Hello";
int i = v.indexOf(s);
if(I != -1) v.remove(s);
這些代碼看起來沒什麼錯誤,但它同樣對性能不利。在這段代碼中,indexOf()方法對v進行順序搜索尋找字元串「Hello」,remove(s)方法也要進行同樣的順序搜索。改進之後的版本是:
String s = "Hello";
int i = v.indexOf(s);
if(I != -1) v.remove(i);
這個版本中我們直接在remove()方法中給出待刪除元素的精確索引位置,從而避免了第二次搜索。一個更好的版本是:
String s = "Hello"; v.remove(s);
最後,我們再來看一個有關Vector類的代碼片段:
for(int I=0; I++;I < v.length)
如果v包含100,000個元素,這個代碼片段將調用v.size()方法100,000次。雖然size方法是一個簡單的方法,但它仍舊需要一次方法調用的開銷,至少JVM需要為它配置以及清除堆棧環境。在這里,for循環內部的代碼不會以任何方式修改Vector類型對象v的大小,因此上面的代碼最好改寫成下面這種形式:
int size = v.size(); for(int I=0; I++;I<size)
雖然這是一個簡單的改動,但它仍舊贏得了性能。畢竟,每一個CPU周期都是寶貴的。
15、當復制大量數據時,使用System.array()命令。
int[] src={1,3,5,6,7,8};
int[] dest = new int[6];
System.array(src, 0, dest, 0, 6);
src:源數組; srcPos:源數組要復制的起始位置;
dest:目的數組; destPos:目的數組放置的起始位置;
length:復制的長度.
注意:src and dest都必須是同類型或者可以進行轉換類型的數組.
16、代碼重構:增強代碼的可讀性。
public class ShopCart {
private List carts ;

public void add (Object item) {
if(carts == null) {
carts = new ArrayList();
}
crts.add(item);
}
public void remove(Object item) {
if(carts. contains(item)) {
carts.remove(item);
}
}
public List getCarts() {
//返回只讀列表
return Collections.unmodifiableList(carts);
}

//不推薦這種方式
//this.getCarts().add(item);
}
17、不用new關鍵詞創建類的實例

用new關鍵詞創建類的實例時,構造函數鏈中的所有構造函數都會被自動調用。但如果一個對象實現了Cloneable介面,我們可以調用它的clone()方法。clone()方法不會調用任何類構造函數。
在使用設計模式(Design Pattern)的場合,如果用Factory模式創建對象,則改用clone()方法創建新的對象實例非常簡單。例如,下面是Factory模式的一個典型實現:
public static Credit getNewCredit() {
return new Credit();
}
改進後的代碼使用clone()方法,如下所示:
private static Credit BaseCredit = new Credit();
public static Credit getNewCredit() {
return (Credit) BaseCredit.clone();
}
上面的思路對於數組處理同樣很有用。
18、乘法和除法

考慮下面的代碼:
for (val = 0; val < 100000; val +=5) {
alterX = val * 8; myResult = val * 2;
}
用移位操作替代乘法操作可以極大地提高性能。下面是修改後的代碼:
for (val = 0; val < 100000; val += 5) {
alterX = val << 3; myResult = val << 1;
}
修改後的代碼不再做乘以8的操作,而是改用等價的左移3位操作,每左移1位相當於乘以2。相應地,右移1位操作相當於除以2。值得一提的是,雖然移位操作速度快,但可能使代碼比較難於理解,所以最好加上一些注釋。
19、在jsP頁面中關閉無用的會話。

一個常見的誤解是以為session在有客戶端訪問時就被創建,然而事實是直到某server端程序調用HttpServletRequest.getSession(true)這樣的語句時才被創建,注意如果JSP沒有顯示的使用 <> 關閉session,則JSP文件在編譯成Servlet時將會自動加上這樣一條語句HttpSession session = HttpServletRequest.getSession(true);這也是JSP中隱含的session對象的來歷。由於session會消耗內存資源,因此,如果不打算使用session,應該在所有的JSP中關閉它。
對於那些無需跟蹤會話狀態的頁面,關閉自動創建的會話可以節省一些資源。使用如下page指令:<%@ page session="false"%>
20、JDBC與I/O

如果應用程序需要訪問一個規模很大的數據集,則應當考慮使用塊提取方式。默認情況下,JDBC每次提取32行數據。舉例來說,假設我們要遍歷一個5000行的記錄集,JDBC必須調用資料庫157次才能提取到全部數據。如果把塊大小改成512,則調用資料庫的次數將減少到10次。
21、Servlet與內存使用
許多開發者隨意地把大量信息保存到用戶會話之中。一些時候,保存在會話中的對象沒有及時地被垃圾回收機制回收。從性能上看,典型的症狀是用戶感到系統周期性地變慢,卻又不能把原因歸於任何一個具體的組件。如果監視JVM的堆空間,它的表現是內存佔用不正常地大起大落。
解決這類內存問題主要有二種辦法。第一種辦法是,在所有作用范圍為會話的Bean中實現HttpSessionBindingListener介面。這樣,只要實現valueUnbound()方法,就可以顯式地釋放Bean使用的資源。
另外一種辦法就是盡快地把會話作廢。大多數應用伺服器都有設置會話作廢間隔時間的選項。另外,也可以用編程的方式調用會話的setMaxInactiveInterval()方法,該方法用來設定在作廢會話之前,Servlet容器允許的客戶請求的最大間隔時間,以秒計。
22、使用緩沖標記

一些應用伺服器加入了面向JSP的緩沖標記功能。例如,BEA的WebLogic Server從6.0版本開始支持這個功能,Open Symphony工程也同樣支持這個功能。JSP緩沖標記既能夠緩沖頁面片斷,也能夠緩沖整個頁面。當JSP頁面執行時,如果目標片斷已經在緩沖之中,則生成該片斷的代碼就不用再執行。頁面級緩沖捕獲對指定URL的請求,並緩沖整個結果頁面。對於購物籃、目錄以及門戶網站的主頁來說,這個功能極其有用。對於這類應用,頁面級緩沖能夠保存頁面執行的結果,供後繼請求使用。
23、選擇合適的引用機制

在典型的JSP應用系統中,頁頭、頁腳部分往往被抽取出來,然後根據需要引入頁頭、頁腳。當前,在JSP頁面中引入外部資源的方法主要有兩種:include指令,以及include動作。
include指令:例如<%@ include file="right.html" %>。該指令在編譯時引入指定的資源。在編譯之前,帶有include指令的頁面和指定的資源被合並成一個文件。被引用的外部資源在編譯時就確定,比運行時才確定資源更高效。
24、及時清除不再需要的會話

為了清除不再活動的會話,許多應用伺服器都有默認的會話超時時間,一般為30分鍾。當應用伺服器需要保存更多會話時,如果內存容量不足,操作系統會把部分內存數據轉移到磁碟,應用伺服器也可能根據「最近最頻繁使用」(Most Recently Used)演算法把部分不活躍的會話轉儲到磁碟,甚至可能拋出「內存不足」異常。在大規模系統中,串列化會話的代價是很昂貴的。當會話不再需要時,應當及時調用HttpSession.invalidate()方法清除會話。HttpSession.invalidate()方法通常可以在應用的退出頁面調用。
25、不要將數組聲明為:public static final 。
26、HashMap的遍歷效率
for(Entry<String, String[]> entry : paraMap.entrySet()){
String appFieldDefId = entry.getKey();
String[] values = entry.getValue();
.......
}
取得Entry的值之後直接取key和value,效率高。

27、array(數組) 和 ArryList,基於效率和類型檢驗,應盡可能使用array,無法確定數組大小時才使用ArrayList!
28、盡量使用HashMap 和ArrayList ,除非必要,否則不推薦使用HashTable和Vector ,後者由於使用同步機制,而導致了性能的開銷。
29、StringBuffer 和StringBuilder,應優先StringBuilder類,因為它支持所有相同的操作,但由於它不執行同步,所以速度更快。為了獲得更好的性能,在構造 StirngBuffer 或 StirngBuilder 時應盡可能指定它的容量。
30、盡量避免使用split

② jsp怎麼讓文字動起來

有個標簽是用冊中棗來讓文州拆字移動的,
從右向左移 代碼培啟 <marquee direction=left>需要移動的文字</marquee>
從左向右移 代碼 <marquee direction=right>需要移動的文字</marquee>

③ 我寫的jsp頁面在本機測試的時候能夠正常顯示,但是在其它機器上測試的時候,頁面就會整體左移

還沒學到JSP額

④ 一個JSP+AJAX傳值問題,高手進!

1、在控制層寫好方法, 用於調用, 來獲得右邊的數據
2、js代碼ajax調用控制知並層
$.ajax({
url: "UserCon/getUsers",
dataType: "json",
success: function(msg){
//3、這里調用Grid來刷新你得到的後台數據
$("#yourGrid").dataGrid('reload',msg);
}
});
這樣一來就完成了 右邊的Grid 顯示數據
如果要 左移右移, 簡單的做法是.
左邊的Grid 添加一行數據, 數據位右邊的選搭埋跡中行.
右邊的Grid刪除被選中的行, 這樣就完成了 左移.

這個方法,效率比較液陵低, 如果你地項目需要, 你可以在聯系我 告訴你 我項目中的做法.
分配角色頁面 我就用的這個 形式作的.
留下聯系方式跟你吧 119070025
希望對你有幫助

⑤ jsp頁面中,當出現瀏覽器的滑輪時,頁面中的內容向左移動,不知道是什麼原因,怎麼解決

出現滾動條,你頁面的可視區域就變得比原來窄了,然後猛羨緩你內容設置為居中,所以位置就會重新計算,很正常的,沒枝模什派租么改不改的。

⑥ Java中>>> , >>和<<都是什麼作用

三個都是移位運算符
>>>表示右移一位,相當於原來的數頌襲除以2;
>>也表示右移,但是這個可以自由定義它的移動位數,比如>>3,則表示右移3位,也就相當於原來的數除以2的3次方;
<<則與>>相對應搭埋,表示左移,也可以自由指定位數,例如 <<2,表示左移野枝兄2位,也就相當於原來的數乘以2的2次方

⑦ 在jsp中運用加減乘除需要導入什麼包

看你是怎麼寫了
要是寫
3+2 這樣的,當然不用。
要是用BigDecimal這個類,那就需要導
java.math.BigDecimal

方法摘要
BigDecimal abs()
返回 BigDecimal,其值為此 BigDecimal 的絕對值,其標度為 this.scale()。
BigDecimal abs(MathContext mc)
返回其值為此 BigDecimal 絕對值的 BigDecimal(根據上下文設置進行舍入)。
BigDecimal add(BigDecimal augend)
返回一個 BigDecimal,其值為 (this + augend),其標度為 max(this.scale(), augend.scale())。
BigDecimal add(BigDecimal augend, MathContext mc)
返回其值為 (this + augend) 的 BigDecimal(根據上下文設置進行舍入)。
byte byteValueExact()
將此 BigDecimal 轉換為 byte,以檢查丟失的信息。
int compareTo(BigDecimal val)
將此 BigDecimal 與指定的 BigDecimal 比較。
BigDecimal divide(BigDecimal divisor)
返回一個 BigDecimal,其值為 (this / divisor),其首選標度為 (this.scale() - divisor.scale());如果無法表示准確的商值(因為它有無窮的十進制擴展),則拋出 ArithmeticException。
BigDecimal divide(BigDecimal divisor, int roundingMode)
返回一個 BigDecimal,其值為 (this / divisor),其標度為 this.scale()。
BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)
返回一個 BigDecimal,其值為 (this / divisor),其標度為指定標度。
BigDecimal divide(BigDecimal divisor, int scale, RoundingMode roundingMode)
返回一個 BigDecimal,其值為 (this / divisor),其標度為指定標度。
BigDecimal divide(BigDecimal divisor, MathContext mc)
返回其值為 (this / divisor) 的 BigDecimal(根據上下文設置進行舍入)。
BigDecimal divide(BigDecimal divisor, RoundingMode roundingMode)
返回一個 BigDecimal,其值為 (this / divisor),其標度為 this.scale()。
BigDecimal[] divideAndRemainder(BigDecimal divisor)
返回由兩個元素組成的 BigDecimal 數組,該數組包含 divideToIntegralValue 的結果,後跟對兩個操作數計算所得到的 remainder。
BigDecimal[] divideAndRemainder(BigDecimal divisor, MathContext mc)
返回由兩個元素組成的 BigDecimal 數組,該數組包含 divideToIntegralValue 的結果,後跟根據上下文設置對兩個操作數進行舍入計算所得到的 remainder 的結果。
BigDecimal divideToIntegralValue(BigDecimal divisor)
返回 BigDecimal,其值為向下舍入所得商值 (this / divisor) 的整數部分。
BigDecimal divideToIntegralValue(BigDecimal divisor, MathContext mc)
返回 BigDecimal,其值為 (this / divisor) 的整數部分。
double doubleValue()
將此 BigDecimal 轉換為 double。
boolean equals(Object x)
比較此 BigDecimal 與指定的 Object 的相等性。
float floatValue()
將此 BigDecimal 轉換為 float。
int hashCode()
返回此 BigDecimal 的哈希碼。
int intValue()
將此 BigDecimal 轉換為 int。
int intValueExact()
將此 BigDecimal 轉換為 int,以檢查丟失的信息。
long longValue()
將此 BigDecimal 轉換為 long。
long longValueExact()
將此 BigDecimal 轉換為 long,以檢查丟失的信息。
BigDecimal max(BigDecimal val)
返回此 BigDecimal 和 val 的最大值。
BigDecimal min(BigDecimal val)
返回此 BigDecimal 和 val 的最小值。
BigDecimal movePointLeft(int n)
返回一個 BigDecimal,它等效於將該值的小數點向左移動 n 位。
BigDecimal movePointRight(int n)
返回一個 BigDecimal,它等效於將該值的小數點向右移動 n 位。
BigDecimal multiply(BigDecimal multiplicand)
返回一個 BigDecimal,其值為 (this × multiplicand),其標度為 (this.scale() + multiplicand.scale())。
BigDecimal multiply(BigDecimal multiplicand, MathContext mc)
返回其值為 (this × multiplicand) 的 BigDecimal(根據上下文設置進行舍入)。
BigDecimal negate()
返回 BigDecimal,其值為 (-this),其標度為 this.scale()。
BigDecimal negate(MathContext mc)
返回其值為 (-this) 的 BigDecimal(根據上下文設置進行舍入)。
BigDecimal plus()
返回 BigDecimal,其值為 (+this),其標度為 this.scale()。
BigDecimal plus(MathContext mc)
返回其值為 (+this) 的 BigDecimal(根據上下文設置進行舍入)。
BigDecimal pow(int n)
返回其值為 (thisn) 的 BigDecimal,准確計算該冪,使其具有無限精度。
BigDecimal pow(int n, MathContext mc)
返回其值為 (thisn) 的 BigDecimal。
int precision()
返回此 BigDecimal 的精度。
BigDecimal remainder(BigDecimal divisor)
返回其值為 (this % divisor) 的 BigDecimal。
BigDecimal remainder(BigDecimal divisor, MathContext mc)
返回其值為 (this % divisor) 的 BigDecimal(根據上下文設置進行舍入)。
BigDecimal round(MathContext mc)
返回根據 MathContext 設置進行舍入後的 BigDecimal。
int scale()
返回此 BigDecimal 的標度。
BigDecimal scaleByPowerOfTen(int n)
返回其數值等於 (this * 10n) 的 BigDecimal。
BigDecimal setScale(int newScale)
返回一個 BigDecimal,其標度為指定值,其值在數值上等於此 BigDecimal 的值。
BigDecimal setScale(int newScale, int roundingMode)
返回一個 BigDecimal,其標度為指定值,其非標度值通過此 BigDecimal 的非標度值乘以或除以十的適當次冪來確定,以維護其總值。
BigDecimal setScale(int newScale, RoundingMode roundingMode)
返回 BigDecimal,其標度為指定值,其非標度值通過此 BigDecimal 的非標度值乘以或除以十的適當次冪來確定,以維護其總值。
short shortValueExact()
將此 BigDecimal 轉換為 short,以檢查丟失的信息。
int signum()
返回此 BigDecimal 的正負號函數。
BigDecimal stripTrailingZeros()
返回數值上等於此小數,但從該表示形式移除所有尾部零的 BigDecimal。
BigDecimal subtract(BigDecimal subtrahend)
返回一個 BigDecimal,其值為 (this - subtrahend),其標度為 max(this.scale(), subtrahend.scale())。
BigDecimal subtract(BigDecimal subtrahend, MathContext mc)
返回其值為 (this - subtrahend) 的 BigDecimal(根據上下文設置進行舍入)。
BigInteger toBigInteger()
將此 BigDecimal 轉換為 BigInteger。
BigInteger toBigIntegerExact()
將此 BigDecimal 轉換為 BigInteger,以檢查丟失的信息。
String toEngineeringString()
返回此 BigDecimal 的字元串表示形式,需要指數時,則使用工程計數法。
String toPlainString()
返回不帶指數欄位的此 BigDecimal 的字元串表示形式。
String toString()
返回此 BigDecimal 的字元串表示形式,如果需要指數,則使用科學記數法。
BigDecimal ulp()
返回此 BigDecimal 的 ulp(最後一位的單位)的大小。
BigInteger unscaledValue()
返回其值為此 BigDecimal 的非標度值 的 BigInteger。
static BigDecimal valueOf(double val)
使用 Double.toString(double) 方法提供的 double 規范的字元串表示形式將 double 轉換為 BigDecimal。
static BigDecimal valueOf(long val)
將 long 值轉換為具有零標度的 BigDecimal。
static BigDecimal valueOf(long unscaledVal, int scale)
將 long 非標度值和 int 標度轉換為 BigDecimal。

⑧ eclipse 編輯jsp頁面時橫向滾動條自動跑到左側

在hbuilder裡面寫好再復制到eclipse中。。。

⑨ 關於myeclipse中jsp頁面布局的問題,求各位大神幫幫忙,非常感謝

你可以看看你的css設置的是否是灶中絕對位置,如果是的話,將汪辯春 width設置大困耐一點,然後逐步調整一下即可。

⑩ 怎麼讓JSP多個表格輸入框用上下左右鍵移動

<html>
<head>
<title>移動焦點</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script language="javascript">
var cols=3;
var obj;
var CanMove=false;
var key;
function setobj(input){
obj=input;
}
function init(){
document.onkeydown=keyDown;
document.onkeyup=keyUp;
}
function keyDown(DnEvents){
var key=window.event.keyCode;
if(key==116){
window.event.keyCode=0;
return false;
}
if(key==8){
if(event.srcElement.tagName!="INPUT"){
event.cancelBubble = true;
event.returnValue = false;
return false;
}
}

for(var i=0;i<document.forms[0].elements.length;i++){
if(document.forms[0].elements[i]==obj){
if (key == 37){//←
if(i>0){
document.forms[0].elements[i-1].focus();
}
}
if (key == 38){//↑
if(i>cols-1){
document.forms[0].elements[i-cols].focus();
}
}
if (key == 39){//→
if(i<document.forms[0].elements.length-1){
document.forms[0].elements[i+1].focus();
}
}
if (key == 13)
{//→
event.keyCode = 9;
}
if (key == 40){//↓
if(i<document.forms[0].elements.length-cols){
document.forms[0].elements[i+cols].focus();
}
}
}
}
}
function keyUp(UpEvents){
return false;
}
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000" onload="init()">
<form action=http://dwww.cn>
<table border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td>
<input type="text" name="textfield" onfocus="setobj(this)">
</td>
<td>
<input type="text" name="textfield2" onfocus="setobj(this)">
</td>
<td>
<input type="text" name="textfield3" onfocus="setobj(this)">
</td>
</tr>
<tr>
<td>
<input type="text" name="textfield5" onfocus="setobj(this)">
</td>
<td>
<input type="text" name="textfield6" onfocus="setobj(this)">
</td>
<td>
<input type="text" name="textfield7" onfocus="setobj(this)">
</td>
</tr>
</table>
</form>
</body>
</html>

閱讀全文

與jsp左移相關的資料

熱點內容
桌面雲配置文件分離 瀏覽:505
iphone5如何升級4g網路 瀏覽:5
團購是在哪個app 瀏覽:897
打開多個word文檔圖片就不能顯示 瀏覽:855
騰訊新聞怎麼切換版本 瀏覽:269
app安裝失敗用不了 瀏覽:326
桌面文件滑鼠點開會變大變小 瀏覽:536
手機誤刪系統文件開不了機 瀏覽:883
微信兔子甩耳朵 瀏覽:998
android藍牙傳文件在哪裡 瀏覽:354
蘋果6s軟解是真的嗎 瀏覽:310
c語言代碼量大 瀏覽:874
最新網路衛星導航如何使用 瀏覽:425
以下哪些文件屬於圖像文件 瀏覽:774
zycommentjs 瀏覽:414
確認全血細胞減少看哪些數據 瀏覽:265
文件有哪些要求 瀏覽:484
cad打開時會出現兩個文件 瀏覽:65
什麼是轉基因網站 瀏覽:48
手柄設備有問題代碼43 瀏覽:921

友情鏈接