0

我有兴趣建立一个 URL 拍卖研究网站。它将被构造为标准的[Presentation Layer <-->Business Layer <--->Data Layer]。该站点将有一个 index.html 允许用户输入他们感兴趣的 url。该 index.html 然后将通过 servlet 调用 doPost 方法,该方法反过来会输出一个结果页面,说明该 URL 是否出售像这样:

索引.html

<html>
<head>
<title>URL Auction Search Page</title>
</head>
<body>
<CENTER>
 <FORM ACTION="/ResultServlet/Results" METHOD=GET>
   <INPUT TYPE=TEXT NAME="st">
   <INPUT TYPE=SUBMIT VALUE=Submit>
  </FORM>
</CENTER>
</body>
</html>

小服务程序:

@WebServlet("/Results")
public class Results extends HttpServlet {
    private static final long serialVersionUID = 1L;
       public static String str="";

    private String businessLogic(String q){
        try {
            str = new compute.URL.GetAvailURI( "https://www.registerdomains.com/auctionAPI/Key:a05u3***1F2r6Z&urlSearch="+q);
            /*more boring number crunching */
            return str;
            }
/*
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
    }
*/
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Results r = new Results();
        String st = request.getParameter("st");
        response.sendRedirect("results/resultActionURL.html?st="+r.businessLogic(st)");

    }

}

但是,我需要处理来自结果页面的其他 2 个链接。即,一个名为 WhoOwnsThis.html 的链接获取 whois 数据并将此信息地理映射到 Google 地图上。此外,AppraiseResult.html 可以对相关 URL 进行实时评估。好的 - 这 2 个页面需要时间(非常松散地说,我们会说 2 秒。EA。)所以我向用户展示结果页面,然后我在后台继续并为每个其他页面创建数据两个结果页面。

问题 - 我如何处理这三个结果页面的状态性?我的第一个想法是每次创建两个附加结果页面(WhoOwnsThis 和 AppraiseResult)时创建一个唯一目录。然后我可以将唯一的目录名称作为参数嵌入到结果页面 url 中,这样当他们单击指向其他 2 个结果页面的链接时,目录名称将从结果页面 url 中作为 .js var 提取并插入到获取正确的页面。但是,我也在阅读 REST 并想知道这是否是处理此事务状态的更好方法。在这种情况下,行业标准会推荐什么?

4

2 回答 2

4

您真的想使用像 Servlet 这样的低级 API 吗?如果您心胸开阔,请查看 Play Framework 2.0 并获得与其他平台上的每个人一样的体验。如果没有,Spring MVC 是一个不错的选择。如果您更喜欢只有 JavaScript 前端,那么 JAX-RS 是一个不错的选择。

请注意,Play Framework 2.0 包含它自己的类重载机制,但您也可以在其他框架中使用 JRebel 获得相同的体验。

一般来说,状态最好保存在数据库中,因此很容易扩展。Java EE 6 Web Profile 还为您提供有状态会话 bean。Spring MVC 具有会话范围的 bean。他们每个人都以自己的方式进行操作,但是由于这是一个基本概念,因此他们的网站上有很多文档,我不打算将其粘贴在这里。

玩得开心,欢迎来到简单的 Java 时代 :)

于 2013-01-21T19:24:05.367 回答
1

我认为更现代的分层是四层:

View->Controller->Service->Persistence.

您可以选择要求 Java EE 应用程序服务器通过会话在 Web 层中为您维护状态,或者作为服务层中的有状态服务。

于 2013-01-21T19:23:53.833 回答