在处理数据库时JSP,Servlet,DAO之间的通信

时间:2012-05-10 10:56:25

标签: java jsp servlets jdbc dao

在学习JSP,Servlets和DAO的过程中,我遵循了 this 教程,并希望了解一下使用JSP / Servlet编辑SQL Server表的正确方法。

无论如何,我有:

  • POJO.java
  • DAO.java
  • SERVLET.java
  • PAGE.jsp

如何实现另一个显示数据行的JSP页面?是否有可能创建一个JSP页面来调用DAO / Servlet进行数据提取,然后在自身上显示数据(JSP)?

打开网站时,我正在调用Servlet,过程如下:Servlet -> DAO -> JSP。我是否需要另一个Servlet + JSP文件,或者我是否可以添加使用当前Servlet来填充页面的JSP文件?

我的问题可能应该转到本教程的作者,但我希望从不同的角度来看一些建议。

2 个答案:

答案 0 :(得分:1)

如果我理解你想要什么,你已经拥有了你想要的所有东西。 DAO有一个名为list()的方法,它将查询db并返回一个雇员对象的arraylist,这样你就可以很好。但是,需要更改servlet和jsp页面以使其工作,但是将相关代码添加到servlet以使用DAO来获取员工列表。 在try块添加之前添加

ArrayList<employee> employeeList = null;

将此代码添加到servlet的process()方法中的现有代码中。

else if (StringUtils.equals(actionContext, "list")) {
    employeeList = dao.list();
    request.setAttribute("employeeList", employeeList);
  }

jsp上的javascript必须进行更改才能实现这一点,因为javascript正在驱动传递给servlet的内容,你必须在jsp中添加一个按钮来调用与此类似的javascript函数。

<input type='button' value='List Employees' onclick="submitForm('list')" />

这应该指向正确的方向,并允许您仍然使用教程中的代码稍作修改。希望有所帮助。

答案 1 :(得分:0)

如果我理解你的问题,我可以高兴你做下一个:
1.将您的数据附加到reguest(使用request.setAttribute(Name,Object));
2.使用jsp:import连接下一个JSP页面;
3.在这些servlet中,通过request.getAttribute(Name)提取数据,将其转换为您需要的类型并使用。

但是,我不确定这是否足够正确 - 正如我所知,你实际上并不会复制你的var,所以这不需要额外的时间或记忆,但我不能确定如果这是解决这个问题的最“充分”的方法......