本文目錄一覽:
- 1、請問如何在js中遍歷jsp頁面里的java代碼(如List),程序代碼如下
- 2、如何在HTML頁面中寫java代碼
- 3、運行時可調用瀏覽器打開一個網頁,網頁地址在代碼中的java代碼怎麼寫?
- 4、在jsp頁面寫了一部分java代碼,這樣好不?
請問如何在js中遍歷jsp頁面里的java代碼(如List),程序代碼如下
js肯定是不能直接操作java的list啊,你可以把list循環成一個json格式的字元串如:
String str=””;
for(int i=0;ilist2.size();i++){
str+=(“{id:'”+list2.get(i).getId()+”‘,pid:'”+list2.get(i).getparentId()+”‘},”);
}
if(str.length()0){
str=”[“+str.substring(0,str.length()-1)+”]”;
}
然後js裡面這樣var list=’%=str %’;
list=new Function(“return “+ list)();
這樣後list就是個和java中list差不多的對象數組了
list[i].id等價於java的list2.get(i).getId()
如何在HTML頁面中寫java代碼
Java要運行html代碼,需要運行在伺服器端,也就是servlet容器中,經過容器編譯解析,返回html靜態內容,示例如下:
在servlet裡面寫就可以了
引入一系列包
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
public class Servlet1 extends HttpServlet {
public void doGet(ServletRequest req,ServletResponse res)throws ServletException, IOException{try{PrintWriter pw=res.getWriter();//在瀏覽器輸出需要
pw.println(“scriptscript”);}catch(exception e){=”” e.printstacktrace();=”” 為發現調試錯誤}}}=””
運行時可調用瀏覽器打開一個網頁,網頁地址在代碼中的java代碼怎麼寫?
網頁地址在代碼中的java代碼寫法如下:
package com.test;
import java.lang.reflect.Method;
//實現打開瀏覽器並跳到指定網址的類
public class BareBonesBrowserLaunch {
public static void openURL(String url) {
try {
browse(url);
} catch (Exception e) {
}
}
private static void browse(String url) throws Exception {
//獲取操作系統的名字
String osName = System.getProperty(“os.name”, “”);
if (osName.startsWith(“Mac OS”)) {
//蘋果的打開方式
Class fileMgr = Class.forName(“com.apple.eio.FileManager”);
Method openURL = fileMgr.getDeclaredMethod(“openURL”, new Class[] { String.class });
openURL.invoke(null, new Object[] { url });
} else if (osName.startsWith(“Windows”)) {
//windows的打開方式。
Runtime.getRuntime().exec(“rundll32 url.dll,FileProtocolHandler ” + url);
} else {
// Unix or Linux的打開方式
String[] browsers = { “firefox”, “opera”, “konqueror”, “epiphany”, “mozilla”, “netscape” };
String browser = null;
for (int count = 0; count browsers.length browser == null; count++)
//執行代碼,在brower有值後跳出,
//這裡是如果進程創建成功了,==0是表示正常結束。
if (Runtime.getRuntime().exec(new String[] { “which”, browsers[count] }).waitFor() == 0)
browser = browsers[count];
if (browser == null)
throw new Exception(“Could not find web browser”);
else
//這個值在上面已經成功的得到了一個進程。
Runtime.getRuntime().exec(new String[] { browser, url });
}
}
}
//主方法 測試類
public static void main(String[] args) {
String url = “”;
BareBonesBrowserLaunch.openURL(url);
}
在jsp頁面寫了一部分java代碼,這樣好不?
jsp文件中存在一些java代碼是在所難免的,不然也不用使用jsp了,純html就好了嘛,但對於題目中的「一部分」是指多少並未可知,如果太多確實會有影響的,所以一般不建議這樣做,影響大致如下所列:
1、根據MVC思想,JSP屬於VIEW層,不宜存在太多java的代碼,view層應該只有布局、樣式相關的代碼,jsp中包含太多java代碼就和MVC思想有出入了。
2、可讀性差,大多公司中,JSP是有專業的前台人員進行維護的,但這些前台人員,只需要具備HTML、JS、CSS、JQUERY等前端技術,一般都不懂得Java代碼,在jsp中寫太多java代碼,會使可讀性變差,不便於前台人員維護。
3、不便於維護。把多數java代碼寫在jsp頁面中,而更多的代碼還是在後台的java文件中的,這樣在開發過程中就需要多個文件一起看,出了問題也要一起修改,這要造成了維護代碼的負擔。
4、不易於調試。其實更確切的說是不能調試。jsp文件中是無法加斷點的,這樣寫出的代碼如果存在問題卻編譯通過的話,想找起來會相當麻煩。
也正因為會有上述所說的這些影響,但開發者又有時需要在jsp中輸入java代碼,所以才有jstl、el表達式等技術出現可以在jsp頁面替換掉那些複雜的java代碼。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/291860.html