关于JSP的打印调试,再来一篇巩固巩固

28 篇文章 0 订阅
24 篇文章 0 订阅

JSP实质上就是html混入了Java,或者说是HTML+JavaScript+CSS+Java的混合⽂件,那么就会牵扯到各种语言之间的变量引用问题,既然基础是html,那么就先看看html怎么引用其他内容,以及其他内容间值的互引用。

1、Html获取JavaScript变量值

因为html后缀文件里面是没法直接用java的,如果想在html代码里面引用java的话,需要把后缀改成jsp,那么就是属于前面我们定义的JSP实质了,就是各种混合了。这儿说的是html文件,所以我们这儿就只引入JavaScript。

<scriptlanguage="javascript"type="text/javascript">
   var df=newDate(); 
   var year= df.getFullYear() ;
   document.write("<td>"+year+" J2EE开发</td>");
</script>

2、JavaScript输出Java的变量值

	<%String name = "James"; %>
   	<script type="text/javascript"> 
   	document.write('<%=name%>');
   	</script>

上面是在一个页面里面去输出的时候的引用方式,我们前台处理表单提交后,想前台的javascript获取后台的Java传来的值,怎么去调用,这个前面也说了,用req的getparam方法。

1、通过request.getParameter("参数名")获取后台的值。
2、通过<%=变量%>的方式赋给JavaScript变量。

   	<script>
	<%String p1 = (String)request.getParameter("parameter name");%>
	var s = '<%=p1%>';
	</script>

如果不同过servlet来获取的话,还可以在jsp里面直接混入java的类和方法:

A. 创建Java对象 : 

// Java代码
public class MyClass {
    private String javaValue = "Hello, Java!";
    
    public String getJavaValue() {
        return javaValue;
    }
}


B. 使用Java对象的方法 : 

// JavaScript代码
var myClass = new Packages.MyClass();
var javaValue = myClass.getJavaValue();


C. 将Java值传递给JavaScript : 

// JavaScript代码
console.log("Java值为:" + javaValue);

既然JavaScript变量有值了,就也可以再通过1中html调用js来显示了。

3、Java获取JavaScript的变量值

java要获取JavaScript的值,这可以通过表单提交、AJAX请求或URL参数等方式实现。前面的文章里面都讲了提交到jsp文件、提交到servlet的方式。

<%@ page language="java" %>
<%@ page import="java.util.*" %>
<%
  String inputValue = request.getParameter("hiddenField");
  // 在这里对inputValue进行处理
%>

相当于通过req对象直接获取到表单提交的参数了。

我们也可以使用Java和JavaScript之间的互操作性。Java提供了一种机制,称为Java Scripting API,它允许Java代码与不同的脚本语言进行交互,包括JavaScript。我们可以利用这个API在Java中执行JavaScript代码,并从中获取结果值。

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class JavaScriptExample {
    public static void main(String[] args) {
        // 创建一个ScriptEngineManager对象
        ScriptEngineManager engineManager = new ScriptEngineManager();
        
        // 通过ScriptEngineManager获取JavaScript引擎
        ScriptEngine engine = engineManager.getEngineByName("JavaScript");
        
        // 定义JavaScript代码
        String script = "var x = 10 + 5; x;";
        
        try {
            // 在Java中执行JavaScript代码
            Object result = engine.eval(script);
            
            // 将结果值转换为Java的整数类型
            int value = (int) result;
            
            // 打印结果值
            System.out.println("Result: " + value);
        } catch (ScriptException e) {
            e.printStackTrace();
        }
    }
}

通过以上示例代码,我们可以看到Java中执行了JavaScript代码,并成功接收到了结果值。这种方法可以解决我们在开发中需要从前端JavaScript代码中获取值的问题。

状态图如下所示:

参考资料:

https://blog.csdn.net/bangrenzhuce/article/details/52145015

https://www.php.cn/faq/465412.html

https://blog.51cto.com/u_16213300/9746025

https://www.php.cn/faq/282622.html

https://blog.51cto.com/u_16175488/6819187

https://blog.51cto.com/u_16213362/8289951

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

涛哥依旧在

你的鼓励是我最大的创作动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值