【问题标题】:What web programming languages are capable of making this web app?哪些网络编程语言能够制作这个网络应用程序?
【发布时间】:2011-01-02 06:22:50
【问题描述】:

我正在探索许多技术,但我希望您能就哪个 Web 框架让这变得最简单/最有可能提供意见。我目前正在寻找 JSP/JSF/Primefaces,但我不确定这个应用程序是否支持。

以下是应用的基本描述:

  1. 用户使用他们的用户名和密码登录(也许我可以以某种方式合并 OPENID)?

  2. 通过非常漂亮的 UI,他们将看到特定类别的大量问题列表,例如“烹饪”。 (我将手动编译此列表并使其可用。)

  3. 当他们点击任何这些问题时,会在其下方打开一个小输入框,允许用户输入链接/URL。
  4. 如果他们输入的链接在 URL 指向的网页上存在相同的问题,他们将获得一分。该问题随后消失并被添加到包含所有正确链接问题列表的不同页面。
  5. 在屏幕的右侧,将有一个排行榜,上面有前十名的用户名。

这个想法相对简单 - 通过允许多人参与,能够针对特定问题编译指向外部网站的链接。

我知道我可以使用 Primefaces 轻松构建 UI。 [B]我不确定 JSP/JSF 是否能够在某个 URL 解析 HTML 以查看它是否包含单词。[/B] 我可以通过使用 urllib 轻松地用 python 做到这一点,但我可以' t 使用 python 构建 Web GUI(非常困难)。最好的方法是什么?

任何帮助将不胜感激!!!谢谢!

【问题讨论】:

  • 反问:哪种网络框架/语言组合不能解决上述问题?

标签: python web-applications jsf jsf-2 primefaces


【解决方案1】:

最好的方法是最适合你的。如果 Python 不是你的强项,而 Java 是,那么使用 Java。如果您是 Python 专家并且对 Java 知之甚少,请使用 Python。

互联网上有如此多的资源支持如此多的平台,因此决定真正归结为最适合您的。

【讨论】:

  • 那么,是否可以使用 JSP/JSF 和 PrimeFaces 做到这一点?如果是这样,我在哪里可以找到有关使用这些技术进行 URL 解析的文档?
  • 检查 Java 的 Javadocs。 URL 只是一个字符串,可以使用任何字符串解析函数进行解析。 download.oracle.com/javase/6/docs/api/java/lang/String.html
  • 谢谢,但我的意思是实际访问 URL 的网站,并解析该页面以找到与问题匹配的内容。例如,如果用户在我的应用程序中点击“什么网络编程语言...”这个问题并输入stackoverflow.com/questions/4577414/… 作为答案,那么网络应用程序应该能够进入 StackoverFlow,解析 HTML 以查看是否可以找到字符串“什么网络编程语言”并返回一个布尔值。很抱歉最初不清楚。
【解决方案2】:

对于初学者来说,忘记 JSP/JSF。这是一个有很多问题的旧组合。请考虑 Facelets/JSF。 Facelets 是当前 JSF 版本中的默认模板语言,而 JSP 仅用于向后兼容。

我不确定 JSP/JSF 是否能够解析特定 URL 的 HTML 以查看它是否包含单词。

是的,尽管实际获取数据和解析其内容将由纯 Java 代码完成。这本身与 JSF API 无关。

使用 JSF,您可以创建一个包含 UI(输入字段、按钮等)的 Facelet。然后仍然使用 JSF,将它绑定到所谓的支持 bean,它主要是一个普通的 Java 类,只有一个或两个 JSF 特定的注释应用于它(例如 @ManagedBean)。

当用户输入 URL 并按下某个按钮时,JSF 负责调用 Java 类(支持 bean)中的某些操作方法。在此操作方法中,您现在可以访问用户输入的 URL,然后从这里开始纯 Java 编码并结束 JSF 细节。您可以将获取 URL 并执行所需解析的代码放在单独的帮助程序类(关注点分离)中,或者直接放在支持 bean 中。选择权在你。

顺便说一句,我们办公室有一个非常初级的程序员使用 JSF 来完成与您在这里所要求的不同的事情,他在很短的时间内就成功地做到了。因此,这真的没那么难;)

【讨论】:

  • 这是一个很棒的答案!谢谢你这么有帮助!如果我有 15 个代表,我会赞成你的回答。你能指出一个用 Java 访问远程 URL 的例子吗?谢谢!
  • 没有准备好示例,但这并不难。基本上类似于 URL url = new URL("example.com"); UrlConnection connection = url.openConnection(); connection.connect(); InputStream input = connection.getInputStream(); 希望这足以让你开始。只是查找这些类的 Javadocs 并从那里开始工作。
【解决方案3】:

没有网络技术可以满足您的需求。解析在某些 url 上找到的文档超出了构建 Web 界面的范围。

但是,Java 的每一种 Web 技术都可以让您不受限制地访问在 JVM 上运行的丰富多样(如果不是太丰富也太多样化)的库和框架集。你可以肯定地说,如果有一个库可以做某事,就会有一个 Java 版本可用。下载和解析文档所需的内容不会超过标准库中可用的内容(除非您坚持注入依赖项或横切您的关注点),因此使用 JSP、JSF/Primefaces 或其他方式进行项目没有问题。

既然你声称已经了解 Python,而且无论如何你都必须添加一些 HTML/CSS,我建议你试试 Django。它非常简单,有一组 OpenID 插件可供选择,将免费为您提供管理界面(因此您可以使用第一组链接启动泵)。

【讨论】:

  • 谢谢!我来看看 Django。
猜你喜欢
  • 1970-01-01
  • 2014-08-30
  • 1970-01-01
  • 2010-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多