哪些web编程语言能开发这个web应用?
我正在探索很多技术,但想听听你们的意见,哪个网页框架能让这个项目变得最简单、最可行。我现在在考虑JSP/JSF/Primefaces,但不确定这些技术是否适合这个应用。
这是这个应用的基本描述:
用户通过用户名和密码登录(也许我可以用OPENID?)
界面要很好看,用户会看到一个特定类别的大量问题列表,比如“烹饪”。(我会手动整理这个列表并提供给大家。)
- 当用户点击任何一个问题时,下面会弹出一个小输入框,允许用户输入一个链接/网址。
- 如果用户输入的链接指向的网页上包含这个问题,他们就会获得一分。这个问题会消失,并被添加到另一个页面,那里会列出所有正确链接的问题。
- 在屏幕的右侧,会有一个排行榜,显示得分前十的用户的用户名。
这个想法相对简单——通过让很多人参与,汇总特定问题的外部网站链接。
我知道用Primefaces可以很容易地构建用户界面。[B]我不确定的是,JSP/JSF是否能解析某个网址的HTML,看看里面是否包含特定的词汇。[/B] 我可以用Python很简单地通过urllib做到这一点,但用Python来构建网页界面很困难。那我该怎么做呢?
任何帮助都会很感激!!!谢谢!
3 个回答
没有任何网络技术能完全满足你的需求。解析某些网址上的文档并不是构建网页界面的范畴。
不过,Java的每种网络技术都能让你无限制地使用一大堆丰富多样的库和框架,这些都是在JVM上运行的。你可以放心地说,如果有某个功能的库,那么一定会有Java版本可用。下载和解析文档只需要用到标准库里的东西(除非你特别想要添加自己的依赖或处理其他问题),所以用JSP、JSF/Primefaces或者其他技术来做你的项目都没有问题。
既然你已经会Python了,而且你还得添加一些HTML/CSS,我建议你试试Django。它非常简单,还有一系列的OpenID插件可以选择,并且会免费提供一个管理界面(这样你可以先添加第一批链接)。
首先,先不考虑JSP/JSF。这是一种老旧的组合,存在很多问题。建议你考虑使用Facelets/JSF。Facelets是当前版本JSF的默认模板语言,而JSP只是为了兼容旧版本而保留的。
我不太确定JSP/JSF是否能解析某个网址的HTML,看看里面是否包含特定的词。
可以的,不过实际获取数据和解析内容的工作是通过普通的Java代码来完成的,这和JSF的API没有直接关系。
使用JSF时,你会创建一个Facelet来包含你的用户界面(比如输入框、按钮等)。然后,仍然使用JSF,你将这个界面绑定到一个叫做“后端bean”的东西上,这其实就是一个普通的Java类,只是上面加了一两个JSF特定的注解(比如@ManagedBean)。
当用户输入网址并按下某个按钮时,JSF会负责调用你Java类(后端bean)中的某个动作方法。在这个动作方法里,你可以访问用户输入的网址,从这里开始,你就可以用普通的Java代码进行操作,JSF的特定内容就结束了。你可以把获取网址和解析所需内容的代码放在一个单独的辅助类中(这样可以让不同的功能分开处理),或者直接放在后端bean里,具体选择权在你。
顺便提一下,我们办公室有一个非常初级的程序员,他用JSF做了类似你所要求的事情,并且很快就成功了。所以其实并没有那么难;)
最好的方法就是最适合你的方法。如果你不太擅长Python,但Java很拿手,那就用Java。如果你是Python高手,对Java了解不多,那就用Python。
网上有很多资源支持各种平台,所以最终的选择其实就是看哪个对你来说最有效。