※ 引述《Killercat (杀人猫™)》之铭言:
: 其实我觉得要看你的用途
: 下面很多人说不推Servlet, 但是其实如果是写API的话
: 你要找到比Servlet还简单的有点难度
: 你说你至少学过一点点Java 所以Servlet我个人认为是首选
: 更不用讲Servlet可以几近无痛的直接执行System Call
: 但是如果你是要作“网页”的话,那真的珍惜生命远离jsp/servlet....
: 那东西维护起来会要人命的。API的话绝无问题也很好处理就是...
有关web framework的层级,我是这样看的
CGI层级:
Servlet - 可以map一个url到一个Servlet,很简单阳春的处理Get/Post
透过inputstream/outputstream来处理web request/response
Template层级
JSP (或ASP/PHP) - 通常是把程式内嵌在HTML中,处理简单的逻辑。但是
复杂的逻辑就会写得很丑。现在应该很少project是只用template了。
MVC层级
Struts, SpringMVC - Controller处理Business逻辑,产生Model到View(Template)
去呈现。当然你可以用Servlet/Jsp去兜,但是可能只有你自己懂得里面的魔法。
用Struts Spring有丰富的文件帮助你去兜比较大的架构。另外有人说的SSH
(Struts, Spring, Hibernate)也属于这种的应用之一。
MVC + Modules/Plugins
Django(Python), RoR(Ruby), Play! (Java/Scala), Grails (Java/Groovy)
除了定义MVC基本的架构外,还有定义很多设计惯例,方便模组化。而且
通常会搭配好用的模组安装工具,帮助你安装很多third party的模组或外挂
让你很快速的开发堪用的production等级的东西。
Rest API Framework
Jersey - 写RestAPI时帮助你处理Url Pattern到Controller这段。通常是
要开发存rest api才会用这种技术,但是也可以做成MVC。
Web UI Component Framework
JSF, GWT, ZK, Vaadin - 类似写Desktop UI,但是是放在web上,你可以不用
写太多HTML/Javascript,Server端的component会render好,把结果送到前端。
通常会是event-driven的形式。
我比较推荐的是MVC+Modules/Plugins,并且前端透过template +
javascript的MVC framework去写。通常这类的framework把很多web常见的pattern
弄得好好,你就专心写你想要的逻辑就好了。你想要的功能也可能在plugins(modules)
找到,远比你自己开发来的快速且稳定。
另外写Java你可能要学会怎么包成war档,并且deploy到application server,
这有时候也是一个门槛。