查找 bean 实例。请将清单 9 中的复制粘贴代码到 servlet。
清单 9. BookmarkSessionBean 的查询方法
private BookmarkSessionLocalHome bookmarkSessionLocalHome;
private BookmarkSessionLocal getBookmarkSession() {
if (null == bookmarkSessionLocalHome) {
try {
Context context = new InitialContext();
Object obj = context
.lookup("java:comp/env/ejb/BookmarkSession");
bookmarkSessionLocalHome =
(BookmarkSessionLocalHome) PortableRemoteObject
.narrow(obj, BookmarkSessionLocalHome.class);
} catch (NamingException e) {
e.printStackTrace();
}
}
try {
return bookmarkSessionLocalHome.create();
} catch (CreateException e) {
e.printStackTrace();
}
return null;
}
这个方法查询本地 home BookmarkSessionBean 对象,并返回实现 BookmarkSessionLocal 接口的对象。
完成 BookmarkController 的最后一步是实现它的 doPost() 方法。请粘贴清单 10 中的实现方法,然后运行 Edit > Organize Imports 添加必要的类导入。
清单 10. doPost() 实现
response.setContentType("text/plain");
PrintWriter out = response.getWriter();
if (request.getParameterMap().size() > 0) {
String url = request.getParameter("url");
String title = request.getParameter("title");
StringBuffer errors = new StringBuffer();
if (url == null || url.length() < 12) {
errors.append("The url must be at least 12 characters long.<br>");
}
if (title == null || title.length() < 5) {
errors.append("The title must be at least 5 characters long.<br>");
}
String redirectPage;
if (errors.length() > 0) {
request.setAttribute("errors", errors);
redirectPage = "/SaveBookmarkError.jsp";
} else {
getBookmarkSession().saveBookmark(new
BookmarkValueObject(url, title));
request.setAttribute("bookmarks",
getBookmarkSession().getBookmarks());
redirectPage = "/ShowAllBookmarks.jsp";
}
ServletContext sc = getServletContext();
RequestDispatcher rd =
sc.getRequestDispatcher(redirectPage);
rd.forward(request, response);
} else {
out.println("<html>Invalid Request</html>");
}
这段代码验证根据书签 URL 和标题所提供的值。如果发现错误,控制器就重定向到错误 JSP 视图。否则,就保存书签。控制器随后检索所有的书签,并重定向到显示书签的 JSP。
Eclipse Web工具平台V1.0简介(14)
时间:2011-02-09 IBM Scott F. Delap
创建视图 JSP
书签应用程序需要实现的最后一部分是视图。视图包含三个 JSP:
CreateNewBookmark.jsp
SaveBookmarkError.jsp
ShowAllBookmarks.jsp
用 WTP 向导创建 CreateNewBookmark.jsp
右击 BookmarkWeb 项目的 WebContent 文件夹,并选择 New > JSP。在新 |