%!
网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、重庆小程序开发公司、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了南阳免费建站欢迎大家使用!
%是在service方法的外面定义变量和写入语句的,也就是在servlet中定义变量,而我们知道servlet在被container加载后只生成一个对象而已,然后所有的请求都在service方法里面被处理。所以如果你在servlet中定义了变量,那么所有的请求可以共用这一个变量了。
最简单的应用就是,你要计算有多少人访问了这一个JSP页面,那么就可以把变量i定义在servlet中,然后在JSP文件里面加一句i++;,这样就可以统计有多少人访问了你这个页面了。
至于%
%这个嘛,就是在service方法里啦。
JSP中,嵌入的JAVA代码,可以直接引用JAVA的类
%
out.println(new java.util.Date());
%
~
这样属于业务逻辑层啊,代码中除了与底层数据库连接的代码,还有显示的代码之外,只要是执行逻辑判断和信息处理的都是业务逻辑层,将其分离写道javabean里面可以增加可维护性。
尽量避免在JSP中出现大量的JAVA代码,JSP只是负责显示
在JSP中出现EL表达式可以使代码更简洁
不过楼主如果是新学JSP,倒也没什么关系,慢慢就会知道了
jsp中写java代码成为scriptlet,写在%%之间就可以了。
Scriptlet是包含在%和%之间的Java代码,在Web容器处理JSP页面时执行,通常会产生输出,并将输出发送到客户的输出流里。Scriptlet除了不能定义类和方法、不能用import引入类外,可以包含任何有效的Java代码。(Java类在Jsp外部定义,可用page指令的import属性引入,也可以Java Bean的形式使用。Java中的方法必须在类内定义,但Jsp允许使用声明定义方法。窗体(GUI)设计代码在Jsp中无效)。
Scriptlet例程:
%@ page contentType="text/html; charset=gb2312" %
html
head
titleJSP基本语法/title
/head
body
h1Scriptlet示例页面/h1
table border="1"
caption乘法口诀表/caption
%-- 在网页中嵌入Java代码的主要方法 --%
%
for(int i=1; i=9; i++) {
int j=1;
//out是JSP的一个内部对象,print方法用于向客户端输出数据
out.println("tr");
for(; j=i; j++) {
out.print("td" + j + "*" + i + "=" + j*i + "/td");
}
for(;j=9;j++) {
out.print("td /td");
}
out.println("/tr");
}
%
/table
/body
/html
首先,在服务端定义了一个类和静态方法:
public class Test {
public static String sayHello(String name){
return "hello, " + name;
}
}
注意:必须是公开的静态方法。
ajax分为同步、异步调用,如果没有传递回调函数,则是同步调用;
如果传递回调函数,则是异步调用。
同步调用
script type="text/javascript"
......
try{
var obj = Test.sayHello('world!');
......
}catch(e){
//e.error 错误码
//e.message 错误描述
}
......
/script
不传递回调函数,以try…catch来处理错误。
在同步调用模式下,如果有网络错误、业务逻辑错误等,会抛出一个异常。
异步调用
script type="text/javascript"
......
Test.sayHello('world!',
function(obj){ //success callback function
......
},
function(error, message){ //fail callback function
}
);
......
/script
传递回调函数作为参数。如果只有一个回调函数, 则默认是成功的回调函数。