<% String s = "test"; out.println(s); %> ==> ... public class test_jsp ...{ ... public void service(HttpServletRequest req,HttpServletResponse res){ ... String s = "test"; out.println(s); ... } ... } =================================================================== <%! String s = "test"; %> <% out.println(s); %> ==> ... public class test_jsp ...{ ... String s = "test"; public void service(HttpServletRequest req,HttpServletResponse res){ ... out.println(s); ... } ... }
dreamover(梦醒了) ,你的意思是单独定义变量的时候用 <%!String s = "test";%>,如果后面有其他的代码就得用 <% String s = "test"; out.println(s); %> 是吗?
<%!%>还可以声明方法,原理同上<%! private boolean isDate(String str){ return str.matches("\\d{4}-\\d{2}-\\d{2}"); } %><% String d = "2006-05-aa"; if(isDate(d)){ out.println("var 'd' is a right date"); }else{ out.println("var 'd' is a wrong date"); } %>
dreamover(梦醒了) ,你的意思是单独定义变量的时候用 <%!String s = "test";%>,如果后面有其他的代码就得用 <% String s = "test"; out.println(s); %> 是吗? ==================================================不是,再想!
<%!%>这个是申明
变量肯定需要申明
所以要写在<%!%>里面
String s = "test";
out.println(s);
%>
==>
...
public class test_jsp ...{
...
public void service(HttpServletRequest req,HttpServletResponse res){
...
String s = "test";
out.println(s);
...
}
...
}
===================================================================
<%!
String s = "test";
%>
<%
out.println(s);
%>
==>
...
public class test_jsp ...{
...
String s = "test";
public void service(HttpServletRequest req,HttpServletResponse res){
...
out.println(s);
...
}
...
}
<%!String s = "test";%>,如果后面有其他的代码就得用
<%
String s = "test";
out.println(s);
%>
是吗?
private boolean isDate(String str){
return str.matches("\\d{4}-\\d{2}-\\d{2}");
}
%><%
String d = "2006-05-aa";
if(isDate(d)){
out.println("var 'd' is a right date");
}else{
out.println("var 'd' is a wrong date");
}
%>
<%!String s = "test";%>,如果后面有其他的代码就得用
<%
String s = "test";
out.println(s);
%>
是吗?
==================================================不是,再想!
<% %>中声明的是变量或方法在编译后变成你那个jsp页面生成的servlet的类的service方法的局部变量和方法!