Java 如何将对象从servlet传递到调用JSP

Java 如何将对象从servlet传递到调用JSP,java,jsp,servlets,Java,Jsp,Servlets,如何将对象从servlet传递到调用JSP 我有一个JSP调用servlet。在这个servlet中,我设置viewBean的属性。 现在,我想从JSP页面上的Servlet获取这个属性值集 如何使此ViewBean对象从Servlet在JSP上可用。类似的方法应该可以工作 request.setParameter("nameOfmyObjectParam",MyObject); //or request.setAttribute String yourJSP = "/WEB-INF/pages

如何将对象从servlet传递到调用JSP

我有一个JSP调用servlet。在这个servlet中,我设置viewBean的属性。 现在,我想从JSP页面上的Servlet获取这个属性值集


如何使此ViewBean对象从Servlet在JSP上可用。

类似的方法应该可以工作

request.setParameter("nameOfmyObjectParam",MyObject); //or request.setAttribute
String yourJSP = "/WEB-INF/pages/yourJSP.jsp";

        RequestDispatcher rd = getServletContext().getRequestDispatcher(yourJSP);
        rd.forward(request, response);

将对象放入servlet中的会话或请求中,如:

String shared = "shared";
request.setAttribute("sharedId", shared); // add to request
request.getSession().setAttribute("sharedId", shared); // add to session
this.getServletConfig().getServletContext().setAttribute("sharedId", shared); // add to application context
您可以在jsp中阅读它,如:

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<body>
<cut value= "${shared}"/>
<cut value= "${requestScope.shared}"/>
<cut value= "${requestScope.request.shared}"/>
${shared} 

${shared}
或者使用scriptlet和以下代码阅读:

<%
 String shared = (String)request.getAttribute("sharedId");
 String shared1 = (String)request.getSession().getAttribute("sharedId");
 String shared2 = (String)this.getServletConfig().getServletContext().getAttribute("sharedId");
%>

使用servlet API在servlet中将bean设置为请求属性,如下所示-

request.setAttribute("viewBean", viewBean);
${requestScope.viewBean}
并使用EL在JSP中检索(使用)它,如下所示-

request.setAttribute("viewBean", viewBean);
${requestScope.viewBean}

首先,您需要设置值,以便可以从页面访问它,例如:

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

public class MyServlet extends HttpServlet {
  public void doGet(HttpServletRequest request, HttpServletResponse response) {
    // Do some work.
    Person value = new Person("Matthew", "Abbott";

    request.setAttribute("person", person);

    // Forward to to the JSP file.
    request.getRequestDispatcher("showValue.jsp").forward(request, response);
  }
}
接下来,您可以使用表达式语言访问值的属性:

<!DOCTYPE html>
<html>
  <head>
    <title>${person.forename} ${person.surname}</title>
  </head>
  <body>
    <h1>Hello ${person.forename}!!!</h2>
  </body>
</html>

${person.forename}${person.names}
你好${person.forename}!!!

在servlet的会话属性中添加ViewBean对象。并在jsp中获取该变量

在servlet中

ViewBean viewbwanObject=新的ViewBean() session.setAttribyte(“obj”,vi)

在jsp中

<%

看一看,我对使用Java servlet进行web开发还比较陌生。然而,我想提请注意第二个代码块。我相信这里有一个错误。您不能直接调用在Javaservlet中定义的变量,在本例中为“shared”。这是因为servlet依赖反射来查找其关联的变量/值。再说一次,我的分析可能是错误的,但我不相信这会起作用。