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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/739135.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构之栈详解(C语言手撕)

&#x1f389;个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名乐于分享在学习道路上收获的大二在校生 &#x1f648;个人主页&#x1f389;&#xff1a;GOTXX &#x1f43c;个人WeChat&#xff1a;ILXOXVJE &#x1f43c;本文由GOTXX原创&#xff0c;首发CSDN&…

HYBBS 表白墙网站PHP程序源码,支持封装成APP

PHP表白墙网站源码&#xff0c;适用于校园内或校区间使用&#xff0c;同时支持封装成APP。告别使用QQ空间的表白墙。 简单安装&#xff0c;只需PHP版本5.6以上即可。 通过上传程序进行安装&#xff0c;并设置账号密码&#xff0c;登录后台后切换模板&#xff0c;适配手机和PC…

如何在Linux本地搭建Tale网站并实现无公网ip远程访问

文章目录 前言1. Tale网站搭建1.1 检查本地环境1.2 部署Tale个人博客系统1.3 启动Tale服务1.4 访问博客地址 2. Linux安装Cpolar内网穿透3. 创建Tale博客公网地址4. 使用公网地址访问Tale 前言 今天给大家带来一款基于 Java 语言的轻量级博客开源项目——Tale&#xff0c;Tale…

java 解压gzip json报文

import java.io.*; import java.util.zip.GZIPInputStream;public class GzipJsonParser {public static void main(String[] args) {try {// 读取GZIP压缩的JSON报文FileInputStream fis new FileInputStream("compressed.json.gz");GZIPInputStream gzipInputStre…

人工智能与挖矿 为什么要用显卡而不是CPU

人工智能&#xff08;AI&#xff09;和加密货币挖矿都是对计算资源要求很高的应用。在这两种情况下&#xff0c;使用显卡&#xff08;GPU&#xff09;而不是中央处理器&#xff08;CPU&#xff09;的原因主要是因为显卡在处理特定类型的计算任务时具有显著的优势。 1、并行处理…

JMeter 二次开发之环境准备

通过JMeter二次开发&#xff0c;可以充分发挥JMeter的潜力&#xff0c;定制化和扩展工具的能力以满足具体需求。无论是开发自定义插件、函数二次开发还是定制UI&#xff0c;深入学习和掌握JMeter的二次开发技术&#xff0c;将为接口功能测试/接口性能测试工作带来更多的便利和效…

【Linux/OS学习】基础文件控制/IO——内存文件

文章目录 一、 基础文件控制1.1 系统接口open函数1.2 Linux中文件描述符1.2 C语言FILE中的文件描述符 二、重定向1. 输出重定向2. 追加重定向3. 输入重定向 tips:fd的分配规则 一个文件要有一个唯一的文件标识&#xff0c;以便用户识别和引用。 文件名包含3部分&#xff1a;文件…

进电子厂了,感触颇多...

作者&#xff1a;三哥 个人网站&#xff1a;https://j3code.cn 本文已收录到语雀&#xff1a;https://www.yuque.com/j3code/me-public-note/lpgzm6y2nv9iw8ec 是的&#xff0c;真进电子厂了&#xff0c;但主人公不是我。 虽然我不是主人公&#xff0c;但是我经历的过程是和主…

画图--添加了两条水平直线,分别在y=0.092和y=-0.092处。并在水平直线上添加文本

import matplotlib.pyplot as plt import pandas as pd plt.rcParams[font.sans-serif]=[SimHei] #用来正常显示中文标签 plt.rcParams[axes.unicode_minus]=False #用来正常显示负号import matplotlib.pyplot as plt import pandas as pd# 示例函数,绘制曲率变化率图 def dra…

jdk1.8下载与安装 图文版

JDK下载 首先在Oracle官网上下载jdk1.8.https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html,如下图所示&#xff0c;找到jdk1.8,选择对应的版本 或者 链接&#xff1a;https://pan.baidu.com/s/13lZy7JKE1xn-dXx_VG1QFA?pwd29wl 提取码&#xff1a;…

谷歌承认“窃取”OpenAI模型关键信息

什么&#xff1f;谷歌成功偷家OpenAI&#xff0c;还窃取到了gpt-3.5-turbo关键信息&#xff1f;&#xff1f;&#xff1f; 是的&#xff0c;你没看错。 根据谷歌自己的说法&#xff0c;它不仅还原了OpenAI大模型的整个投影矩阵&#xff08;projection matrix&#xff09;&…

Redis高可用之哨兵模式和集群模式

Redis高可用 Redis哨兵高可用 概述 sentinel哨兵是特殊的redis服务&#xff0c;不提供读写服务&#xff0c;主要用来监控redis实例节点。 哨兵架构下client端第一次从哨兵找出redis的主节点&#xff0c;后续就直接访问redis的主节点 不会每次都通过sentinel代理访问redis的主…

路由算法与路由协议

路由选择协议的核心是路由算法&#xff0c;即需要何种算法来获得路由表中的各个项目。 路由算法的目的很简单&#xff1a;给定一组路由器以及连接路由器的链路&#xff0c;路由算法要找到一条从源路由器到目标路由器的最佳路径。通常&#xff0c;最佳路径是指具有最低费用的路…

知识图谱技术综述

作者简介:徐增林(1980 − ),男,博士,教授,主要从事机器学习及其在社会网络分析、互联网、计算生物学、信息安全等方面的研究. 【摘要】 知识图谱技术是人工智能技术的重要组成部分,其建立的具有语义处理能力与开放互联能力的知识库,可在智能搜索、智能问答、个性化推…

TodoList案例——静态组件

Todo-List案例 组件化编码流程 1、实现静态组件&#xff1a;抽取组件&#xff0c;使用组件实现静态页面效果 2、展示动态数据&#xff1a; 2.1数据的类型、名称是什么&#xff1f; 2.2数据保存在哪个组件&#xff1f; 3、交互——从绑定事件监听开始 演示&#xff1a; App组…

九、软考-系统架构设计师笔记-软件可靠性基础知识

1、软件可靠性概念 软件可靠性定义 软件可靠性(Software Reliability)是软件产品在规定的条件下和规定的时间区间完成规定功能的能力。 规定的条件是指直接与软件运行相关的使用该软件的计算机系统的状态和软件的输入条件&#xff0c;或统称为软件运行时的外部输入条件。规定…

自反检索增强生成 (SELF-RAG)

理想情况下&#xff0c;生成式 AI 的落地应用需要提供真实且高质量的响应。SELF-RAG 正是为解决此问题而被创建的。 背景介绍 有趣的是&#xff0c;RAG的发展轨迹与提示工程&#xff08;prompt engineering&#xff09;非常相似。RAG 最初是一个简单而有效的概念&#xff0c;其…

Rust 的 Error 如何使用?

在 Rust 中&#xff0c;错误处理是一个重要且核心的概念。Rust 提供了一种强大的类型系统&#xff0c;允许你明确地处理可能出现的错误。std::error::Error trait 是 Rust 标准库中用于表示错误的基础 trait。实现这个 trait 的类型可以被用作错误类型&#xff0c;并且可以使用…

cocos2d-x-3.17 android升级 gradle NDK_DEBUG=0 -o NDK_DEBUG=1 -o cocos2dlua_shared

由于需要升级sdk版本 需要对应升级gradle版本 记录下升级内容 externalNativeBuild { ndkBuild { - //arguments NDK_DEBUG0 -o 修改成下面 arguments NDK_DEBUG0 } } debug { …

音频功率放大器方案LM4863替代DP4863

音频放大器是在产生声音的输出元件上重建输入的音频信号的设备&#xff0c;其重建的信号音量和功率级都要理想——如实、有效且失真低。音频范围为约20Hz&#xff5e;20000Hz&#xff0c;因此放大器在此范围内必须有良好的频率响应。根据应用的不同&#xff0c;功率大小差异很大…