JavaScript控制JSP中的Java代码
2013-06-18 17:13
267 查看
总所周知,JSP中的java代码是在服务器端执行的程序,JavaScript代码在浏览器端执行,因此同一个页面的先执行Java代码,然后执行JavaScript代码。JavaScript是无法控制Java代码。
但是有一个需求要根据JavaScript的选择来决定Java代码执不执行。这个时候就要用到Ajax,需要2张JSP页面。当Ajax触发时候,另外一个JSP页面被加载,这个JSP页面中的Java被执行,以实现JavaScript控制Java代码。只能控制其他页面的Java代码,不能控制,本页面的Java代码。
1、在Oracle中建立表。
2、创建被调用的JSP页面update.jsp。
3、创建含Ajax的调用页面,index.jsp
4、最终效果:刚开始为关闭状态。点击按钮,提示是否改变状态,点击是。这时候Ajax触发另外一个页面的Java代码,SQL的update被执行。自动刷新页面,这时候显示为开启状态。当再次点击时,状态会再次发生改变。
但是有一个需求要根据JavaScript的选择来决定Java代码执不执行。这个时候就要用到Ajax,需要2张JSP页面。当Ajax触发时候,另外一个JSP页面被加载,这个JSP页面中的Java被执行,以实现JavaScript控制Java代码。只能控制其他页面的Java代码,不能控制,本页面的Java代码。
1、在Oracle中建立表。
2、创建被调用的JSP页面update.jsp。
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ page import="java.sql.*"%> <!-- 添加java的sql包 --> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>加载页面</title> </head> <body> <%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); //加载Oracle数据库的驱动 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(); //关闭连接 %> 当前自动检测的状态是:<%=show%> <%=flag%> </body> </html>
3、创建含Ajax的调用页面,index.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ page import="java.sql.*"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>自动检测更改页面</title> <script type="text/javascript" src="js/jquery.js" ></script> </head> <body> <%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); 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(); %> 当前自动检测的状态是:<%=show%> flag: <%=flag%> <a href="#" onclick="docheck()"><button type="button">改变状态</button></a> <script type = "text/javascript" language = "javascript"> function docheck() { if(confirm("确定要修改状态吗?")) { jQuery.ajax({ cache: false,//清除缓存操作 url : "update.jsp" ,//URL指向要调用的页面 dataType:'jsp'//类型是JSP }); location.reload();//刷新页面操作 } else{ } } </script> </body> </html>
4、最终效果:刚开始为关闭状态。点击按钮,提示是否改变状态,点击是。这时候Ajax触发另外一个页面的Java代码,SQL的update被执行。自动刷新页面,这时候显示为开启状态。当再次点击时,状态会再次发生改变。
相关文章推荐
- 简化 Ajax 和 Java 开发,第 1 部分: 用 JSP 标记文件动态生成 JavaScript 代码
- 2.我的第一个JSP代码:java控制输出1-100之和,say hello并写一个简单的表格
- Jsp 中JavaScript 和 Java代码的异步执行特点
- 如何在JSP页面中的Java代码和JavaScript代码中通信- -
- 简化 Ajax 和 Java 开发,第 1 部分: 用 JSP 标记文件动态生成 JavaScript 代码
- 用javascript控制iframe滚动的代码
- json字符串在javascript和java代码中的表示方式
- Java、JSP与JavaScript的区别
- 使用xml和java代码混合控制UI界面
- [转]以列表形式显示动态加载的数据(JavaScript,Java,JSP,HTML)
- [转]JSTL 与 JSP 或者 Java 相互传递变量的代码
- jsp中java代码、jsp代码、js代码执行的顺序
- forward redirct 转向和重定向区别;通过el和java代码在jsp页面取出参数,jsp:param注意事项
- jsp页面内写java代码 更新数据库
- 【Android】安卓开发实战之Java代码中控制EditText插入图片的大小
- jsp页面用java代码取随机数
- Java执行JavaScript代码
- jsp中的java代码修改jsp页面的显示
- java、javascript、js、jsp的区别
- jsp遍历session值和Java代码获取所有系统属性