gpt4 book ai didi

java - 无法获取由 Servlet 设置并转发到 JSP 的属性(在请求范围内)

转载 作者:太空宇宙 更新时间:2023-11-04 14:14:19 24 4
gpt4 key购买 nike

我在 StackOverflow 上尝试了几种解决方案,但似乎都不起作用:我想将字符串从 Servlet 传递到 JSP 并用 EL 显示。

我在 Netbeans 上创建了一个简单的普通项目,这是我添加的代码:

Servlet 代码:

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

String message = "Hello";

request.setAttribute("message", message);
RequestDispatcher dispatcher = request.getRequestDispatcher("index.jsp");
dispatcher.forward(request, response);

}

JSP代码:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Hello World!</h1>
<h2 style="border: 2px solid brown; width: 20%"> Message is: ${message} </h2>
</body>
</html>

令我沮丧的是,即使对于文档(Oracle Api 引用和 HeadFirst O'Reilly 指南)来说,这也应该很简单,但我根本没有得到任何文本,即使我使用了 scriptlet。我尝试了 Glassfish 和 TomEE

最佳答案

我或多或少确定您的问题是您的 Servlet 没有被调用。将控制台(System.out.println)输出放入 Servlet 中,然后查看输出是否正在打印。

不要尝试直接访问 JSP 页面。而是点击为 Servlet 映射的 URL。

您的 Servlet 可以通过两种方式进行映射:1. 注释2.部署描述符(web.xml)

@WebServlet("/processForm") 
public class UploadServlet extends HttpServlet {
// implement servlet doPost() and doGet()...
}

在上述情况下,如果您点击相对于您的 web 应用程序的 /processForm,则将调用 UploadServlet,并且如果使用调度程序,则将执行并转发 Servlet 的任何处理。

等效描述符如下所示:

<servlet>
<servlet-name>UploadServlet</servlet-name>
<servlet-class>com.bla.bla.UploadServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UploadServlet</servlet-name>
<url-pattern>/processForm</url-pattern>
</servlet-mapping>

关于java - 无法获取由 Servlet 设置并转发到 JSP 的属性(在请求范围内),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27939726/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com