gpt4 book ai didi

java - 在 JSP 页面加载时与 servlet 进行通信

转载 作者:行者123 更新时间:2023-12-01 11:05:37 24 4
gpt4 key购买 nike

我刚刚开始使用 Servlet,我完全被难住了。

我在网上查看了数十种资源,并尝试了所有资源,但都没有成功。它们(有细微的变化)都有一个包含以下代码的 jsp 文件:

<%= request.getAttribute("message")%>

...以及一个包含以下代码的 servlet:

String message = "Example source code of Servlet to JSP communication.";
request.setAttribute("message", message);

getServletContext().getRequestDispatcher("/newjsp_1.jsp").forward(request, response);

我已将上述代码放入 doPost()、doGet() 和 servlet 主体中,但没有任何效果。然后我想到 jsp 文件实际上不可能知道它应该与哪个 servlet 通信。我研究过 xml 映射和注释映射,但它们似乎并不适用。

到目前为止,我已经与 servlet 进行了良好的 Ajax 通信,但我可以使用 ajax 指定操作。如何将数据从 jsp 传递到 servlet,然后再返回?

任何想法将不胜感激!

最佳答案

下面是一个简单的Servlet-JSP通信示例代码:

index.jsp

<!doctype html>
<html>
<head>
<title>Servlet - JSP Communication Demo</title>
</head>

<body>
<%
if(request.getAttribute("message") != null) {
out.println("<h1>" + request.getAttribute("message") + "</h1>");
}
%>

<form method="get" action="sayhello">
<label for="name">Enter your name</label>
<input type="text" name="name" id="name" />
<input type="submit" value="Submit">
</form>
</body>
</html>

ServletDemo.java

package com.demo;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ServletDemo extends HttpServlet{

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if(request.getParameter("name") != null && request.getParameter("name") != "") {
request.setAttribute("message", "Hello " + request.getParameter("name"));
}else {
request.setAttribute("message", "");
}

getServletContext().getRequestDispatcher("/index.jsp").forward(request, response);
}
}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<servlet>
<servlet-name>Servlet-JSP Communication Demo</servlet-name>
<servlet-class>com.demo.ServletDemo</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>Servlet-JSP Communication Demo</servlet-name>
<url-pattern>/sayhello</url-pattern>
</servlet-mapping>
</web-app>

目录结构

--tomcat
--webapps
--servlet
--WEB-INF
--classes
--com
--demo
--ServletDemo.class
--web.xml
--index.jsp

代码说明

这里我创建了一个简单的表单,它通过 GET 方法将表单数据发送到 ServletDemo servlet。另一方面,servlet 获取表单数据并回复一些消息。在 JSP 中显示消息。

关于java - 在 JSP 页面加载时与 servlet 进行通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32983079/

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