① 怎麼在js中取java變數的值,朋友們幫忙說說
Java的變數值,理論上在js中是不能獲取,但是可以通過間接的方式來獲取。提供兩種思路供參考:1、把java變數的值存在cookie中,js通過cookie去取; <pre t="code" l="js">function getCookie(name)
{
var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
if(arr=document.cookie.match(reg))
return unescape(arr[2]);
else
return null;
}
var value= getCookie("cookie的name名");2、把java變數的值賦值給頁面中<input type="hidden"/>的value,通過js去取;<pre t="code" l="js">var value=document.getElementById("hidden的ID").value;
② java 調用 js函數
function是屬於javascript裡面的語法,而<%%>裡面調用的是java的語法,所以想要用<%%>調用alert()是不行了,因為他們不是同一個東西。
不知道你的意思是不是頁面一載入就進行調用alert(),如果是這樣的話,建議使用onload事件,表示頁面載入的時候調用alert();
或者如果是點擊的時候調用,那麼久調用onclick()..總而言之可以使用事件完成。
③ 怎麼在js中取java變數的值,朋友們幫忙說說
function test(){
var g = "${first_Name}";
alert(g);
}
"<%=first_Name%>"; 這種方式只能取道jsp頁面上定義的變數
比如
a.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<HTML>
<%! String a = "aaaaa";%>
<BODY BGCOLOR=cyan>
<FONT Size=1>
<P>這是一個簡單的JSP頁面
<BR>
</FONT>
<%=a %>
${a };
</BODY>
<HTML>
在跳轉到該jsp頁面的servlet中在request中設置了一個a
效果如下:
這是一個簡單的JSP頁面
aaaaa serveta;
原因很簡單:
對於每個jsp,伺服器(比如tomcat)都會將其轉換成java文件(後綴.java的文件),然後將其編譯成class文件
"<%=%>"就是從這個java文件中去取變數值
而"${}"則是從容器中的四個區域去取值(page,request,session,application)
④ java web如何防止html,js注入
在java Web體系中,可以寫自定義標簽,過濾用戶輸入,也可以寫一個filter過濾器。比如說自定義標簽。
開發步驟:
1 寫一個標簽處理類
2在/WEB-INF/目錄下,寫一個*.tld文件,目的是讓Web容器知道自定義標簽和標簽處理類的對應關系
3 在JSP頁面中,通過<%@taglib%>指令引用標簽庫.
4 部署web應用,訪問simple.jsp即可
其中,標簽處理類可以這樣寫,轉義大於號,小於號等特殊符號。
packagecn.itcast.web.jsp.tag;
importjava.io.IOException;
importjava.io.StringWriter;
importjavax.servlet.jsp.JspException;
importjavax.servlet.jsp.PageContext;
importjavax.servlet.jsp.tagext.JspFragment;
importjavax.servlet.jsp.tagext.SimpleTagSupport;
//<simple:filter>標簽處理類
{
publicvoiddoTag()throwsJspException,IOException{
JspFragmentjspFragment=this.getJspBody();
StringWriterwriter=newStringWriter();
jspFragment.invoke(writer);
Stringtemp=writer.getBuffer().toString();
//結果必定是轉義後的字元串
temp=filter(temp);
PageContextpageContext=(PageContext)this.getJspContext();
pageContext.getOut().write(temp);
}
publicStringfilter(Stringmessage){
if(message==null)
return(null);
charcontent[]=newchar[message.length()];
message.getChars(0,message.length(),content,0);
StringBufferresult=newStringBuffer(content.length+50);
for(inti=0;i<content.length;i++){
switch(content[i]){
case'<':
result.append("<");
break;
case'>':
result.append(">");
break;
case'&':
result.append("&");
break;
case'"':
result.append(""");
break;
default:
result.append(content[i]);
}
}
return(result.toString());
}
}