Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSP不显示从POST请求到Servlet的数据_Java_Html_Jsp_Servlets - Fatal编程技术网

Java JSP不显示从POST请求到Servlet的数据

Java JSP不显示从POST请求到Servlet的数据,java,html,jsp,servlets,Java,Html,Jsp,Servlets,我有一个index.jsp页面,其中包含名为refresh、forward和edit的按钮。如果单击refresh按钮,它将调用一个Servlet,值将显示在index.jsp页面上 当我单击forward按钮时,它调用另一个servlet并转到另一个页面forward\u call\u log.jsp。在这个页面中,当我单击forward按钮时,它调用另一个servlet,该servlet显示index.jsp页面。将显示index.jsp页面,但数据库中的值不可用 我如何解决这个问题 ind

我有一个index.jsp页面,其中包含名为refresh、forward和edit的按钮。如果单击refresh按钮,它将调用一个Servlet,值将显示在index.jsp页面上

当我单击forward按钮时,它调用另一个servlet并转到另一个页面forward\u call\u log.jsp。在这个页面中,当我单击forward按钮时,它调用另一个servlet,该servlet显示index.jsp页面。将显示index.jsp页面,但数据库中的值不可用

我如何解决这个问题

index.jsp

寻呼机示例-www.javaworkspace.com 复选框 问题ID 用户ID 单击刷新按钮后,调用Edit_call_servlet.java

导入database.problemdesc.Problem\u retrive\u类; 导入database.user\u master.user\u master; 导入java.sql.*; 公共类Edit_调用扩展了HttpServlet{ 私有静态最终长serialVersionUID=1L; 受保护的无效doPostHttpServletRequest请求、HttpServletResponse响应引发ServletException、IOException { response.setContentTypetext/html; HttpSession=request.getSessionRue; 结果集rs=null; 问题类prc=新问题类; int checkbox=Integer.parseIntrequest.getParametercheckbox; session.setAttributeproblem_id,复选框; String act=request.getParameteract; ifact.equalsEditCall { 尝试 { rs=prc。选中表格复选框; RequestDispatcher rd=request.getRequestDispatcheredit\u call\u log.jsp; request.setAttributers,rs; 请求、响应; } 卡奇 { e、 打印跟踪; } } 否则,我将继续前进 { System.out.printlnForward页面; 尝试 { 结果集rs1=null; 用户\主机um=新用户\主机; rs=prc。选中表格复选框; ifrs.next { 从PRC select_表检索System.out.printlnValue; rs1=um.select_tablers.getString7; System.out.printlnValue从PRC select_表格中检索+rs.getString7; RequestDispatcher rd=request.getRequestDispatcherforward\u call\u log.jsp; request.setAttributes1,rs1; request.setAttributeuser_type,rs.getString7; 请求、响应; } 其他的 { RequestDispatcher rd=request.getRequestDispatcherindex.jsp; 请求、响应; } } 卡奇 { } } } } 单击“转发”按钮后,调用Problem\u retrve\u servlet.java

导入database.problemdesc.Problem\u retrive\u类; 公共类问题检索扩展了HttpServlet{ 私有静态最终长serialVersionUID=1L; 受保护的无效doPostHttpServletRequest请求、HttpServletResponse响应引发ServletException、IOException { response.setContentTypetext/html; PrintWriter out=response.getWriter; 连接con=null; 结果集rs=null; 尝试 { 问题类prc=新问题类; DBBean db=新的DBBean; con=db.getDBConnection; rs=prc。选择_表; RequestDispatcher rd=request.getRequestDispatcherindex.jsp; 请求、响应; } 卡奇 { e、 打印跟踪; } } }
看起来您没有向请求对象附加任何数据,因此index.jsp没有显示任何内容。我假设这是问题发生时正在执行的代码

公共类Edit_调用扩展了HttpServlet{ 受保护的无效doPostHttpServletRequest请求、HttpServletResponse响应引发ServletException、IOException { ... 否则,我将继续前进 { 尝试 { ... { ... } 其他的 { RequestDispatcher rd=request.getRequestDispatcherindex.jsp; /***你的问题就在这里***/ 请求、响应; } [编辑]

根据您的问题,我假设JSP上的刷新按钮按预期工作,即数据库中的数据按预期显示

服务器上正在执行的方法是Problem\u retrve.doPost

基于此,我们需要了解在forward\u call\u log.jsp上单击forward按钮时执行的代码。您已经描述过,此forward按钮显示index.jsp,但不包括数据库中的数据。让我们假设其调用Edit\u call.doPost*

*我建议您在所有doPost方法中放置调试器断点以确认此假设,或者如果无法调试,请参考System.out.println语句

因此,当没有显示任何数据时,您需要比较Problem_retrive.doPost中发生的情况与Edit_call.doPost中未发生的情况。我怀疑您没有调用request.setAttribute

rs=prc。选择_表; RequestDispatcher rd=request.getRequestDispatcherindex.jsp; request.setAttributers,rs; 请求、响应; 关于良好设计的旁注


您可以阅读有关设计代码的更多信息。

@Prasanta。作为旁注,最好不要将JDBC相关对象传递给JSP,即ResultSet。您的控制器类应该从结果集中提取它需要的值,并创建某种类型的集合,例如ArrayList。您可以用一个示例来解释我吗……因为我是jsp servlet的新手……这对我非常有帮助…………您描述的问题是Forward\u call\u log.jsp上的一个名为Forward的按钮没有包含此代码。请定义单击此按钮时触发的类和方法?