gpt4 book ai didi

java - 无法将值从 servlet 传递到 JSP

转载 作者:行者123 更新时间:2023-11-30 11:54:45 29 4
gpt4 key购买 nike

使用 web.xml 和 Servlet 配置更新代码

我试图将一些值从我的 servlet 转发到 JSP,但是当我试图将该值访问到 JSP 时,没有输出。

这是我的表格:

<HTML>
<BODY>
<FORM METHOD=POST ACTION="servlet/NewServlet">
Enter Name: <Input type="text" name="name"/><br>
<P><INPUT TYPE=SUBMIT>
</FORM>

这是我用于 setter 和 getter 方法的 Bean:

package user;

public class CompileClass {
public String name;

public void setName(String n){
name=n;
}

public String getName(){
return name;
}
}

这是我的 servlet:

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

import user.CompileClass;

public class NewServlet extends HttpServlet{

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
String name1;

CompileClass c=new CompileClass();
name1=c.getName();
request.getSession().setAttribute("name1", name1);

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

}
}

最后是我的 JSP 页面:

<%@ page import="java.net.*"%>
<%@ page import="javax.servlet.*"%>
<%@ page import="java.util.ArrayList"%>

<jsp:useBean id="user" scope="request" class="user.CompileClass" />
<jsp:setProperty property="*" name="user"/>
<html>

<body>

Name:
<br/>

<% request.getSession().getAttribute("name1");%>


</body>
</html>

这是我的 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>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>NewServlet</servlet-name>
<servlet-class>NewServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>NewServlet</servlet-name>
<url-pattern>/servlet/NewServlet</url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

我觉得一切都很好。但是我的 JSP 页面上仍然没有得到任何输出。帮忙?

最佳答案

表单中的值如何进入您的 Bean?你正在做:

CompileClass c=new CompileClass();      //creates a new, empty instance
name1=c.getName(); //gets the name from the empty
//instance (will be null)
request.setAttribute("name1", name1); //sets 'name1' to null in the request

如果你这样做,你可能会有更好的运气:

CompileClass c=new CompileClass();      //creates a new, empty instance
c.setName(request.getParameter("name"));//get the param and set it in the bean
name1=c.getName(); //gets the name from the bean
request.setAttribute("name1", name1); //sets 'name1' in the request

虽然从您的代码结构来看,您似乎正在使用一些您希望使用请求中的数据自动为您填充 Bean 的 Web 框架。如果是这样,那么您可能需要查阅您的框架的配置和使用文档,以确保您已正确设置并正确使用它。

编辑:

此外,请不要做以下事情:

<% request.getSession().getAttribute("name1");%>

改用这个:

${name1}

编辑 2:

您没有在 web.xml 中部署您的 servlet .您需要通过添加如下内容来配置它:

<servlet>
<servlet-name>newServlet</servlet-name>
<servlet-class>user.NewServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>newServlet</servlet-name>
<url-pattern>/name/*</url-pattern>
</servlet-mapping>

然后您需要更新表单 HTML,以便表单发送到 servlet 而不是直接发送到 JSP。所以像这样:

<FORM METHOD=POST ACTION="name/submit">

关于java - 无法将值从 servlet 传递到 JSP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5441187/

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