我使用Tomcat,Mysql和Servlets开发了一个应用程序。
用户可以选择的一个选项是在Web浏览器上查看数据库的某个表的信息。当用户选择此选项时,将使用servlet。此servlet打开与数据库的连接,并遍历行,显示信息。这没有问题。
为了在浏览器中显示这些信息,我使用了很多“out.println()”行。
虽然功能已实现,但我想知道是否有其他方法可以在浏览器上显示此信息。如果有人可以为方法命名或为我提供示例链接,那就太棒了。
非常感谢。
答案 0 :(得分:3)
创建一个Javabean类,它表示表的每个项目(行)。创建一个DAO类,它使用JDBC返回这些项的列表。然后在servlet中,使用HttpServletRequest#setAttribute()
将项目列表放在请求范围内,使用RequestDispatcher#forward()
将请求转发到JSP文件,并使用JSTL迭代项目列表(只是在/WEB-INF/lib
)jstl-1.2.jar代码中删除c:forEach
。
基本启动示例:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List<Item> items = itemDAO.list();
request.setAttribute("items", items); // It's now available as ${items} in EL.
request.getRequestDispatcher("/WEB-INF/result.jsp").forward(request, response);
}
其中result.jsp
如下所示:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
...
<table>
<c:forEach items="${items}" var="item">
<tr>
<td>${item.someProperty}</td>
<td>${item.anotherProperty}</td>
</tr>
</c:forEach>
</table>
有关更多提示和示例,您可能会发现this article是一个有用的起点。
你问这个是件好事。将表示逻辑放在Servlet类中是一种不好的做法。需要消除Servlet类中的任何out.println()
语句。它属于JSP文件。
为了更进一步,你还可以使用MVC框架,这样你基本上只得到一个Javabean类和一个JSP文件(即servlet的角色已被MVC框架接管)。
答案 1 :(得分:0)
尝试将Java Server Pages与JavaServer Pages Standard Tag Library一起使用。使用JSTL的JSP是一种使用类似html语法(xml)来创建动态Java网页的方法。 JSP在运行时转换为Servlet。
答案 2 :(得分:0)
只需在众多
中选择一个web framework即可答案 3 :(得分:0)
有许多不同的方法可以实现相同的目标(感谢网页框架的丰富工作) 列举几个:
Pure Servlets(正如您所做)
Servlet + JSP
Servlet + JSP(使用JSTL)
Struts框架工作涉及JSP和动作类
Spring webflows(涉及JSP)
Velocity,Tapestry,Cocoon,Stripes(都需要JSP知识)......而且它是无穷无尽的
理想的方法是将内容从Servlet中分离出来。 内容应该进入诸如JSP之类的页面。 Servlets的out.println是如此...... 90秒。 从那时起,Java Web技术已经走过了漫长的道路。 干杯!