2013-01-21 57 views
0

我有兴趣组织一个URL拍卖研究网站。它将按照标准[表示层< - >业务层< --->数据层]进行组织。这个网站将有一个index.html,允许用户输入他们感兴趣的url。然后,index.html将通过servlet调用doPost方法,然后反过来分析该网址是否出售的结果页面像这样:Java Web架构

的index.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> 

的Servlet:

@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给出了有关网址的实时评估。好的 - 这两页需要时间(非常松散地说我们会说2秒),因此我会向用户展示结果页面,然后我将在后台继续创建数据,并为每个页面创建数据两个结果页面。

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

回答

4

你真的想与Servlets这样的低级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时代:)

+0

谢谢,Play看起来和我在找的内容一样! – Chris

1

我觉得更现代化的层次感为四个层次:

View->Controller->Service->Persistence. 

您可以询问的Java EE应用服务器,以保持状态您选择无论是在通过在会话或有状态服务的Web层服务层。

+0

谢谢你的时间!你能帮我指点一个参考吗,就像我读过的一本关于如何实现这个的书?谢谢。 – Chris

+0

米尔科打它 - 我会推荐春天或播放。 – duffymo

+0

谢谢!播放看起来不错! – Chris