JSP(JavaServer Pages)是一种在服务器上运行的基于Java的视图技术,它允许您在(客户端语言,如HTML,CSS,JavaScript等)中编写模板文本,并与后端Java代码进行交互。
我正在做我的学校项目,这是一个使用 JSP 和 Spring 框架完成的学校 Web 应用程序。 我不是 Spring 框架方面的专家,如果我的问题听起来很愚蠢,请注意我。 这是...
如何在不影响 httpsession 的情况下将对象从一个 servlet 发送到另一个 servlet 并在第二个 servlet 中检索其信息,然后再将其转发到 JSP
这是我的第一个 servlet 代码: 封装servlet; 导入java.io.IOException; 导入 java.io.PrintWriter; 导入 javax.persistence.EntityManager; 导入 javax.persistence.PersistenceContext; 进口...
我有一个任务,我应该使用 EJB、JPA、JSP 和其他一些东西(如 CSS 和 javascript)制作一个简单的网站。 我正在尝试发送包含所有产品的列表......
有点被这个搞糊涂了。 示例:HelloBubble.html 将 * 作为 d3 从“https:...</desc> <question vote="0"> <p>有点困惑。</p> <p>示例:HelloBubble.html</p> <pre><code><!DOCTYPE html> <html> <head></head> <body> <script type="module"> import * as d3 from "https://cdn.jsdelivr.net/npm/d3@7/+esm"; const svg = BubbleChart([["Hello", 10], ["World", 20]]); document.body.appendChild(svg); // Copyright 2021 Observable, Inc. // Released under the ISC license. // https://observablehq.com/@d3/bubble-chart function BubbleChart(data, { name = ([x]) => x, // alias for label label = name, // given d in data, returns text to display on the bubble value = ([, y]) => y, // given d in data, returns a quantitative size group, // given d in data, returns a categorical value for color title, // given d in data, returns text to show on hover link, // given a node d, its link (if any) linkTarget = "_blank", // the target attribute for links, if any width = 640, // outer width, in pixels height = width, // outer height, in pixels padding = 3, // padding between circles margin = 1, // default margins marginTop = margin, // top margin, in pixels marginRight = margin, // right margin, in pixels marginBottom = margin, // bottom margin, in pixels marginLeft = margin, // left margin, in pixels groups, // array of group names (the domain of the color scale) colors = d3.schemeTableau10, // an array of colors (for groups) fill = "#ccc", // a static fill color, if no group channel is specified fillOpacity = 0.7, // the fill opacity of the bubbles stroke, // a static stroke around the bubbles strokeWidth, // the stroke width around the bubbles, if any strokeOpacity, // the stroke opacity around the bubbles, if any } = {}) { // Compute the values. const D = d3.map(data, d => d); const V = d3.map(data, value); const G = group == null ? null : d3.map(data, group); const I = d3.range(V.length).filter(i => V[i] > 0); // Unique the groups. if (G && groups === undefined) groups = I.map(i => G[i]); groups = G && new d3.InternSet(groups); // Construct scales. const color = G && d3.scaleOrdinal(groups, colors); // Compute labels and titles. const L = label == null ? null : d3.map(data, label); const T = title === undefined ? L : title == null ? null : d3.map(data, title); // Compute layout: create a 1-deep hierarchy, and pack it. const root = d3.pack() .size([width - marginLeft - marginRight, height - marginTop - marginBottom]) .padding(padding) (d3.hierarchy({children: I}) .sum(i => V[i])); const svg = d3.create("svg") .attr("width", width) .attr("height", height) .attr("viewBox", [-marginLeft, -marginTop, width, height]) .attr("style", "max-width: 100%; height: auto; height: intrinsic;") .attr("fill", "currentColor") .attr("font-size", 10) .attr("font-family", "sans-serif") .attr("text-anchor", "middle"); const leaf = svg.selectAll("a") .data(root.leaves()) .join("a") .attr("xlink:href", link == null ? null : (d, i) => link(D[d.data], i, data)) .attr("target", link == null ? null : linkTarget) .attr("transform", d => `translate(${d.x},${d.y})`); leaf.append("circle") .attr("stroke", stroke) .attr("stroke-width", strokeWidth) .attr("stroke-opacity", strokeOpacity) .attr("fill", G ? d => color(G[d.data]) : fill == null ? "none" : fill) .attr("fill-opacity", fillOpacity) .attr("r", d => d.r); if (T) leaf.append("title") .text(d => T[d.data]); if (L) { // A unique identifier for clip paths (to avoid conflicts). const uid = `O-${Math.random().toString(16).slice(2)}`; leaf.append("clipPath") .attr("id", d => `${uid}-clip-${d.data}`) .append("circle") .attr("r", d => d.r); leaf.append("text") .attr("clip-path", d => `url(${new URL(`#${uid}-clip-${d.data}`, location)})`) .selectAll("tspan") .data(d => `${L[d.data]}`.split(/\n/g)) .join("tspan") .attr("x", 0) .attr("y", (d, i, D) => `${i - D.length / 2 + 0.85}em`) .attr("fill-opacity", (d, i, D) => i === D.length - 1 ? 0.7 : null) .text(d => d); } return Object.assign(svg.node(), {scales: {color}}); } </script> </body> </html> </code></pre> <p>现在我将完全相同的内容放入 JSP 中,但我遇到了问题,特别是这两行;</p> <pre><code>.attr("clip-path", d => `url(${new URL(`#${uid}-clip-${d.data}`, location)})`) </code></pre> <p>和</p> <pre><code>const uid = `O-${Math.random().toString(16).slice(2)}`; </code></pre> <p>应该说这是从 D3 的文档中复制和粘贴 JavaScript 示例(给或拿...)</p> <p>我只是很困惑为什么这在基本的 .html 文件中工作正常,但是当我使用 NetBeans IDE 8.2 时我无法编译 .war 文件时遇到错误(是的,我知道,它很旧......我喜欢它) 与 Java Maven Web 应用程序项目。</p> <p>我不是 JavaScript 大师。但是在我收到错误的这两行中非常明显的是,这看起来与 Java 语法非常相似。感觉好像 JavaScript 对于它的引导来说可能有点太大了并且混淆了 IDE。</p> <p>此外,我也不知道这段代码当时实际上做了什么。我花了几周的时间从 D3 获得一个工作示例,我实际上可以在文档如此糟糕的情况下工作。因此,我假设根本原因很可能是更现代的 JavaScript 语法(和模块)和更旧的 NetBeans 变得有点混乱。</p> <p>我只是不想因为一个库而升级我的本地开发环境(尽管我可能不得不在 StackOverflow 上解决这个问题时测试它以排除这种情况......)</p> <p><strong>更新 1 - 在 Web 浏览器中运行 JSP 时 IDE 中的错误</strong></p> <p>上面两行导致的错误</p> <p>在 IDE 中编译是——从技术上讲不是编译,但在第 1 行第 7 列有一条大红线,上面写着“Encoutered“URL”。期待其中之一;{加载不同类型的左/右括号,大约 20 个他们}";</p> <p>然后当我运行 JSP 时,IDE 控制台中出现此错误(页面无法在 Web 浏览器中加载);</p> <pre><code>***lots of other stuff*** javax.el.MethodNotFoundException: Method not found: class java.lang.String.slice(java.lang.Long) 415: 416: if (L) { 417: // A unique identifier for clip paths (to avoid conflicts). 418: const uid = `O-${Math.random().toString(16).slice(2)}`; 419: 420: leaf.append("clipPath") 421: .attr("id", d => `${uid}-clip-${d.data}`) ***lots of other stuff*** Stacktrace:] with root cause javax.el.MethodNotFoundException: Method not found: class java.lang.String.slice(java.lang.Long) </code></pre> <p>然后我删除导致错误的那行并得到一个不同的错误;</p> <pre><code>21-Apr-2023 22:05:24.783 SEVERE [http-nio-8084-exec-295] org.apache.catalina.core.ApplicationDispatcher.invoke Servlet.service() for servlet jsp threw exception javax.el.ELException: The identifier [new] is not a valid Java identifier as required by section 1.19 of the EL specification (Identifier ::= Java language identifier). This check can be disabled by setting the system property org.apache.el.parser.SKIP_IDENTIFIER_CHECK to true. ***lots of other stuff*** 423: .attr("r", d => d.r); 424: 425: leaf.append("text") 426: .attr("clip-path", d => `url(${new URL(`#${uid}-clip-${d.data}`, location)})`) 427: .selectAll("tspan") 428: .data(d => `${L[d.data]}`.split(/\n/g)) 429: .join("tspan") Stacktrace:] with root cause javax.el.ELException: The identifier [new] is not a valid Java identifier as required by section 1.19 of the EL specification (Identifier ::= Java language identifier). This check can be disabled by setting the system property org.apache.el.parser.SKIP_IDENTIFIER_CHECK to true. </code></pre> <p><strong>更新 2 - 在外部 .js 文件中尝试使用 JavaScript</strong> 我们可能在这里有所作为。所以我刚刚尝试的是……按照建议将其拆分。</p> <p>所以我们现在有;</p> <ul> <li>HelloBubble.jsp</li> <li>/JavaScript/HelloBubble.js</li> </ul> <p>JSP;</p> <pre><code><script src="/JavaScript/HelloBubble.js"></script> <script type="module"> import * as d3 from "https://cdn.jsdelivr.net/npm/d3@7/+esm"; const svg = BubbleChart([["Hello", 10], ["World", 20]]); document.body.appendChild(svg); </script> </code></pre> <p>JavaScript;</p> <pre><code>Rest of code from earlier, excluding for ease </code></pre> <p>当我这样做时,这是我在加载页面时在 Web 浏览器控制台中遇到的错误 - 似乎这是朝着正确方向迈出的一步;</p> <pre><code>caught TypeError: svg.selectAll(...).data(...).join is not a function at BubbleChart (HelloBubble.js:73:14) at HelloBubble**[.jsp]**:524:25 </code></pre> <p>在上面添加了 <strong>[.jsp]</strong> 位以便于理解。</p> <p>我觉得这两个 JavaScript(JSP 中的数据和 .js 文件中的核心函数)并没有完全相互交谈。</p> <p>为了完整起见,现在这是 HelloBubble.js 文件的完整内容;</p> <pre><code>// Copyright 2021 Observable, Inc. // Released under the ISC license. // https://observablehq.com/@d3/bubble-chart function BubbleChart(data, { name = ([x]) => x, // alias for label label = name, // given d in data, returns text to display on the bubble value = ([, y]) => y, // given d in data, returns a quantitative size group, // given d in data, returns a categorical value for color title, // given d in data, returns text to show on hover link, // given a node d, its link (if any) linkTarget = "_blank", // the target attribute for links, if any width = 640, // outer width, in pixels height = width, // outer height, in pixels padding = 3, // padding between circles margin = 1, // default margins marginTop = margin, // top margin, in pixels marginRight = margin, // right margin, in pixels marginBottom = margin, // bottom margin, in pixels marginLeft = margin, // left margin, in pixels groups, // array of group names (the domain of the color scale) colors = d3.schemeTableau10, // an array of colors (for groups) fill = "#ccc", // a static fill color, if no group channel is specified fillOpacity = 0.7, // the fill opacity of the bubbles stroke, // a static stroke around the bubbles strokeWidth, // the stroke width around the bubbles, if any strokeOpacity, // the stroke opacity around the bubbles, if any } = {}) { // Compute the values. const D = d3.map(data, d => d); const V = d3.map(data, value); const G = group == null ? null : d3.map(data, group); const I = d3.range(V.length).filter(i => V[i] > 0); // Unique the groups. if (G && groups === undefined) groups = I.map(i => G[i]); groups = G && new d3.InternSet(groups); // Construct scales. const color = G && d3.scaleOrdinal(groups, colors); // Compute labels and titles. const L = label == null ? null : d3.map(data, label); const T = title === undefined ? L : title == null ? null : d3.map(data, title); // Compute layout: create a 1-deep hierarchy, and pack it. const root = d3.pack() .size([width - marginLeft - marginRight, height - marginTop - marginBottom]) .padding(padding) (d3.hierarchy({children: I}) .sum(i => V[i])); const svg = d3.create("svg") .attr("width", width) .attr("height", height) .attr("viewBox", [-marginLeft, -marginTop, width, height]) .attr("style", "max-width: 100%; height: auto; height: intrinsic;") .attr("fill", "currentColor") .attr("font-size", 10) .attr("font-family", "sans-serif") .attr("text-anchor", "middle"); const leaf = svg.selectAll("a") .data(root.leaves()) .join("a") .attr("xlink:href", link == null ? null : (d, i) => link(D[d.data], i, data)) .attr("target", link == null ? null : linkTarget) .attr("transform", d => `translate(${d.x},${d.y})`); leaf.append("circle") .attr("stroke", stroke) .attr("stroke-width", strokeWidth) .attr("stroke-opacity", strokeOpacity) .attr("fill", G ? d => color(G[d.data]) : fill == null ? "none" : fill) .attr("fill-opacity", fillOpacity) .attr("r", d => d.r); if (T) leaf.append("title") .text(d => T[d.data]); if (L) { // A unique identifier for clip paths (to avoid conflicts). leaf.append("clipPath") .attr("id", d => `${uid}-clip-${d.data}`) .append("circle") .attr("r", d => d.r); leaf.append("text") .attr("clip-path", d => `url(${new URL(`#${uid}-clip-${d.data}`, location)})`) .selectAll("tspan") .data(d => `${L[d.data]}`.split(/\n/g)) .join("tspan") .attr("x", 0) .attr("y", (d, i, D) => `${i - D.length / 2 + 0.85}em`) .attr("fill-opacity", (d, i, D) => i === D.length - 1 ? 0.7 : null) .text(d => d); } return Object.assign(svg.node(), {scales: {color}}); } </code></pre> </question> </body></html>
我在显示来自 Tomcat 服务器的 register.jsp 网页时遇到问题。 register.jsp 位于 WEB-INF/jsp 和 webapps/register 文件夹中,RegisterController.class 位于 WE...
我正在尝试进行电子邮件订阅,用户在其中输入他们的电子邮件,mySQL 中的“空”字段将更新为提供的电子邮件地址。这是我到目前为止所拥有的: 公共布尔值
在我的 Jsutil 函数中,我添加了一个 css,但它没有响应。 我试过绝对路径 link rel="stylesheet" type="text/css" href="" 但它没有响应。 这是我的示例代码: link rel="stylesheet" type="text/css" href=""
为什么我的 javascript 文件不能像 jsp 那样识别 servlet?
我有一个名为 like 的 servlet @WebServlet("/UserServlet"),当我在 JSP 上使用 action="UserServlet" 时,它可以识别它,但 JavaScript 文件不能。 文件路径信息: Servlet 是
我包含我的根目录中的文件。它在本地运行良好,但当我托管我的网站时,它会给我: 错误 HTTP 状态 500:找不到“../connection.jsp” 我的文件在 public_html/我的文件夹/
(大致)在 Java 7 环境中实施 SSO/MFA 解决方案需要多长时间?
我们有一个在 Java 7 上运行的遗留 Web 应用程序,没有 Spring。实际上,有 3 个 JSP、它们的支持 Java 对象和一些 oracle 连接类。这是一个小应用程序。 我们正在...
我是 JSTL 的新手,我从这里下载了 jstl-1.2.jar 到我的 web-content/web-inf/lib 文件夹。 在我的 JSP 文件中,我提到: <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>...
如何从 jsp 页面的输出中去除多余的空格?我可以在我的 web.xml 上切换吗?有没有特定于 Tomcat 的设置?
我有一个带有textarea字段的jsp页面。我在字段中输入,更新表单后,当我再次打开它时,这些值消失了。我怎样才能得到以前输入的值...
使用 if 在 jsp 中添加 2 个条件。如果可能的话,如果有人可以解释嵌套的场景,我将不胜感激
如何在具有 2 个条件的 if 语句中编写一行代码,我试过这样 \ 类...
代码: <%@page import="java.sql.*"%> <%@ page import="java.util.*,javax.mail.*"%> <%@ page import="javax.mail.internet.*" %> <%@page contentType=&q...
“servlet api 类不在类路径中,一些 scriptlet 编辑功能被禁用”当我使用像 taglib 这样的指令标签时会显示这个
<%@page contentType="text/html" pageEncoding="UTF-8"%> <%@taglib prefix = "c" uri="http://java.sun.com/jsp/jstl/core" %> &l...
我有一个jsp页面,其中有文件下载、文件上传、文件删除、文件重命名功能。我正在使用 ServletOutputStream 和 FileInputStream 进行文件下载。我正在尝试返回 js...
JSTL 错误:绝对 uri:http://java.sun.com/jsp/jstl/core 无法在 web.xml 或随此应用程序部署的 jar 文件中解析 [重复]
这是我的代码: <%@ page import="java.io.*,java.util.*,java.sql.*"%> <%@ page import="javax.servlet.http.*,javax.servlet.*" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" pre...
如何在Scriptlets中使用jsp ForEach循环元素
我想分配 ${element.cpReferralDtlsId} 数据变量。 <% String data...