可以使用jsp的腳本或表達(dá)式,如以下代碼:
在溧水等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需定制網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),成都全網(wǎng)營(yíng)銷,外貿(mào)營(yíng)銷網(wǎng)站建設(shè),溧水網(wǎng)站建設(shè)費(fèi)用合理。
%
out.println(new java.uti.Data());
%
1.取得腳本解釋器的管理器Manager
2.從管理器中取得js的解釋器實(shí)例ScriptEngine
3.取得存儲(chǔ)javascript變量的Bindings實(shí)例
4.把一個(gè)java.io.Reader流及Bindings傳遞給ScriptEngine的eval方法返回腳本運(yùn)行結(jié)果,如果執(zhí)行中發(fā)生錯(cuò)誤,會(huì)拋出ScriptException異常。
例:運(yùn)行javascript腳本的一個(gè)java程序
throwsIOException{ScriptEngineManagerscriptManager=newScriptEngineManager;//從管理器中獲取js的解釋器//定義我們要運(yùn)行的腳本文件Stringfilename=null;//通過(guò)解釋器來(lái)獲得存儲(chǔ)javascript變量的Bindings的實(shí)例,使它們提供給腳本。Bindingsbindings=js.createBindings;//在map中獲取和設(shè)置值的方法publicObjectget;//使用我們的name/value對(duì)(即javascript變量)Bindingsbindings=newSimpleBindings(defaults);//創(chuàng)建一個(gè)變量,用于存放腳本執(zhí)行的內(nèi)容ScriptContextcontext=newSimpleScriptContext();//設(shè)置那些Bindings在Context中,使它們可讀。但這樣的變量定義的腳本不要放入我們的Map中context.setBindings(bindings,ScriptContext.GLOBAL_SCOPE);BufferedReaderin=newBufferedReader(newFileReader(filename));Stringline;while((line=in.readLine())!=null){line=line.trim();if(line.length()==0)continue;//跳過(guò)空行if(line.charAt(0)==‘#‘)continue;//跳過(guò)命令intpos=line.indexOf(":");if(pos==-1){thrownewIllegalArgumentException("syntax:"+line);}Stringname=line.substring(0,pos).trim();Stringvalue=line.substring(pos+1).trim();charfirstchar=value.charAt(0);intlen=value.length();charlastchar=value.charAt(len-1);if(firstchar==‘"‘lastchar==‘"‘){//雙引號(hào)引用的值為字符串defaults.put(name,value.substring(1,len-1));}elseif(Character.isDigit(firstchar)){//如果開(kāi)始是一個(gè)數(shù)字try{doubled=Double.parseDouble(value);defaults.put(name,value);}catch(NumberFormatExceptione){//沒(méi)有數(shù)字,是一個(gè)stringdefaults.put(name,value);}}elseif("true".equals(value)){//處理布爾值defaults.put(name,Boolean.TRUE);}elseif("false".equals(value)){defaults.put(name,Boolean.FALSE);}elseif("null".equals(value)){//處理null值defaults.put(name,null);}elseif(firstchar==‘{‘lastchar==‘}‘){//如果值是在一對(duì)大括號(hào)之內(nèi),則執(zhí)行javascript代碼Stringscript=value.substring(1,len-1);Objectresult=engine.eval(script,context);defaults.put(name,result);}else{//其它情況,剛好是一個(gè)字符串defaults.put(name,value);}}}//一個(gè)簡(jiǎn)單的類的測(cè)試程序publicstaticvoidmain(String[]args)throwsIOException,ScriptException{Configurationdefaults=newConfiguration();defaults.load(args[0]);Set
答:jsp中java代碼可以寫在js中。
示例如下:
script type="text/javascript"
function check(){
var username=document.getElementById("username");
var username=document.getElementById("password");
//java代碼塊
%
String sql="select * from Manger";
String user;
String pass;
ResultSet rs=DBHelper.query(sql);//sql代碼已經(jīng)寫好在被的類中,此處為直接調(diào)用??!
while(rs.next()){
user=rs.getString("username");
pass=rs.getString("password");%
if(username.value=="%=user %" passsword.value=="%=pass%")
{
return true;
}else if(username.value==""|| password.value==""){
username.setCustomValidity("賬號(hào)或密碼不能為空");
return false;
}else{
username.setCustomValidity("賬號(hào)或密碼錯(cuò)誤,請(qǐng)從新輸入");
return false;
}
%
}
%
}
/script
js不能直接調(diào)用java代碼。
可以通過(guò)頁(yè)面提交后臺(tái)的方式,間接調(diào)用后臺(tái)的服務(wù)java代碼。
也可以通過(guò)ajax的方式,調(diào)用后臺(tái)的服務(wù)java代碼。
兩種方式稍有差別,不過(guò)都是前后臺(tái)的通信交互。