gpt4 book ai didi

java - 从 servlet 显示 JSP 信息的问题

转载 作者:行者123 更新时间:2023-12-01 09:20:28 24 4
gpt4 key购买 nike

我在一项 uni 作业中遇到了一些麻烦,我试图通过 servlet 在 JSP 上显示来自 cassandra 数据库的数据。基本上,当我尝试在存储个人资料页面的用户信息的类上使用 get 方法时,我遇到了空指针异常。

下面的代码是 JSP 的一部分,它请求 servlet 发送一个保存当前用户详细信息的对象。在调试器中查看时,似乎它获取用户名没有任何问题,但对配置文件详细信息的请求返回一个空对象,而它应该由数据库中的信息填充。

 <%
String Username=null;

LoggedIn lg = (LoggedIn) session.getAttribute("LoggedIn");
Username = lg.getUsername();

ProfileDetails pd= new ProfileDetails();
pd = (ProfileDetails) request.getAttribute("Profile");


if (pd!=null)
{
String forename= pd.getForename();
String surname=pd.getSurname();
String email=pd.getEmail();


%>

下一段代码是 servlet 中的方法,它调用返回填充有用户详细信息的对象的方法。

  protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// processRequest(request, response);
HttpSession session=request.getSession();

LoggedIn lg = (LoggedIn)session.getAttribute("LoggedIn");
String username=lg.getUsername();

User us = new User();
us.setCluster(cluster);
ProfileDetails pd= new ProfileDetails();

pd = us.GetUserDetails(pd, username);
request.setAttribute("Profile", pd);

RequestDispatcher rd = request.getRequestDispatcher("Profile.jsp");
rd.forward(request, response);

}

我相当确定我遇到的问题是基于这两个代码块之一,但此刻我被难住了。因此,任何帮助将不胜感激。

如果有人真的热衷于在这里提供帮助,请点击我在 GitHub 上的克隆项目的链接 https://github.com/BrodieRoss/Instagrim.git

P.s.抱歉,如果我在这里的解释听起来有点像废话,我对网络开发还很陌生。

最佳答案

您必须采用 MVC 版本的网络应用程序。我看到您已经编写了一些 getter(void),但是如果您为此类编写一些 setter 方法,那就更好了。

那么您不必将 servlet 转发到您的 jsp,而是使用以下方法重定向它:

HttpServletResponse.sendRedirect(String Location)

HttpServletResponse.sendRedirect("/your/new/location.jsp")

在重定向之前,您必须为此对象设置所需的属性。为了访问这些属性,您可以使用在类上使用的相同变量。为了在 jsp 文件中显示它们,您必须使用 jSTL lib。在这里查看更多信息: https://www.tutorialspoint.com/jsp/jsp_standard_tag_library.htm

本教程可能会帮助您: https://docs.oracle.com/cd/E15919_01/wlp.1032/e14254/developuserprofiles.htm

关于java - 从 servlet 显示 JSP 信息的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40198744/

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