jsp javascript调java_JavaScript控制JSP中的Java代码 | 学步园

总所周知,JSP中的java代码是在服务器端执行的程序,JavaScript代码在浏览器端执行,因此同一个页面的先执行Java代码,然后执行JavaScript代码。JavaScript是无法控制Java代码。

但是有一个需求要根据JavaScript的选择来决定Java代码执不执行。这个时候就要用到Ajax,需要2张JSP页面。当Ajax触发时候,另外一个JSP页面被加载,这个JSP页面中的Java被执行,以实现JavaScript控制Java代码。只能控制其他页面的Java代码,不能控制,本页面的Java代码。

1、在Oracle中建立表。

b70e1d7a764f7bfb08a8df8cd6bca055.png

2、创建被调用的JSP页面update.jsp。

pageEncoding="utf-8"%>

加载页面

String url="jdbc:oracle:thin:@localhost:1521:orcl"; //添加Oracle的连接地址,localhost即默认本机地址

String user="student"; //数据库的帐号

String password="student";//数据库的密码

Connection conn= DriverManager.getConnection(url,user,password); //将url,user和password实现数据库的连接

Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);//实例化Statement对象

String sql="select * from sparametertbl t where t.PARAMETER='autoChecking' "; //查询语句

String sql2="update sparametertbl t set t.value='0' where t.parameter='autoChecking'";//修改语句1

String sql3="update sparametertbl t set t.value='1' where t.parameter='autoChecking'";//修改语句2

ResultSet rs=stmt.executeQuery(sql); //执行查询操作

String flag="";

while(rs.next()) { //利用循环获取结果集的数据

flag=rs.getString(2);

}

String show="";

if(flag.equals("1")){//当结果是1的时候置换成0

stmt.executeUpdate(sql2);//执行修改操作

show="关闭";

flag="0";

}else{ //当结果是0的时候置换成1

stmt.executeUpdate(sql3);//执行修改操作

show="开启";

flag="1";

}

rs.close(); //关闭rs

stmt.close(); //关闭操作

conn.close(); //关闭连接

%>

当前自动检测的状态是:

3、创建含Ajax的调用页面,index.jsp

pageEncoding="utf-8"%>

自动检测更改页面

String url="jdbc:oracle:thin:@localhost:1521:orcl";

String user="student";

String password="student";

Connection conn= DriverManager.getConnection(url,user,password);

Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

String sql="select * from sparametertbl t where t.PARAMETER='autoChecking' ";

ResultSet rs=stmt.executeQuery(sql);

String flag="";

while(rs.next()) {

flag=rs.getString(2);

}

String show="";

if(flag.equals("1")){

show="开启";

}else{

show="关闭";

}

rs.close();

stmt.close();

conn.close();

%>

当前自动检测的状态是: flag:

改变状态

function docheck()

{

if(confirm("确定要修改状态吗?"))

{

jQuery.ajax({

cache: false,//清除缓存操作

url : "update.jsp",//URL指向要调用的页面

dataType:'jsp'//类型是JSP

});

location.reload();//刷新页面操作

} else{

}

}

4、最终效果:刚开始为关闭状态。点击按钮,提示是否改变状态,点击是。这时候Ajax触发另外一个页面的Java代码,SQL的update被执行。自动刷新页面,这时候显示为开启状态。当再次点击时,状态会再次发生改变。

159cd3759ebf7734a18a0bd74a106d94.png

bf5e2ee502f8f10dc67b9ff8331256e5.png

f48d0ee507f85ce20d3c0dccd4b2a69c.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值