首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSP与Servlet的关系

问JSP与Servlet的关系
EN

Stack Overflow用户
提问于 2010-07-08 04:52:16
回答 4查看 1.7K关注 0票数 5

关于如何将Servlets用作JSP,书中和互联网上都有很多示例。但我想知道使用它们的最好方法是什么,并着眼于良好的架构。

Servlet与JSP之间是否应该存在一对一的关系?表现得像ASP.NET的“代码隐藏”页面?

或者更像是ASP.NET MVC,使用单个Servlet控制多个操作,并转发到多个视图?

这是一个关于纯Java开发的问题。请不要简单地建议另一个框架。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-07-08 05:03:48

这个怎么样?这是我在学校的一个项目中做的:

alt text http://img576.imageshack.us/img576/3064/mvci.jpg

这是我基于对servlet和JSP的理解而做出的假设。我希望得到您的意见和想法来改进这一点。

票数 2
EN

Stack Overflow用户

发布于 2010-07-08 05:23:08

是否应该存在Servlets与JSP之间的一对一关系?表现得像ASP.NET的“代码隐藏”页面?

视情况而定。对于一个可能只有3~5个页面的小网站来说,这是负担得起的,但除此之外,它会生成许多样板代码,当你自己以一种明智的方式重构所有重复的代码时,你几乎会得到一个自己开发的MVC框架。

或更像ASP.NET MVC,使用单个Servlet控制多个操作,并转发到多个视图。

当有一个大小合适的web应用程序时,这是更值得推荐的。顺便说一句,Java的ASP.NET对应物是JSF (JavaServer Faces)。它是一个纯Java提供的基于组件的MVC框架,它提供了FacesServlet作为唯一的控制器,这样你就可以得到一个Javabean类作为模型,一个JSP (或者,最近) Facelets页面作为视图。Facelets?是的,从JSF2.0开始,老式的JSP已经被Facelets取代,成为默认的视图技术。Facelets是基于XHTML的。

如果您想自己开发一个控制器servlet,那么请检查front controller pattern。您可以在this answer中找到另一个基本的启动示例。

另请参阅:

票数 5
EN

Stack Overflow用户

发布于 2010-07-08 05:01:57

不,从Servlets到JSP的一对一关系并不是绝对必要的,因为它们是不同的东西。

我个人喜欢的是使用Servlets作为控制器,然后在处理HTTP请求之后,用一个或多个JSP页面呈现响应(HTML)。ASP.NET“代码隐藏”不适用,因为代码隐藏与其对应的ASPX文件是一对一的关系。AFAIK,你不能用不同的ASPX页面来呈现一个ASP.NET“代码背后”。

无论如何,这不是一个简单的问题,但根据我的经验,普通的老式Servlets+JSP方法通常比构建在它们之上的任何其他框架(Struts和许多其他框架)更干净、更简单、错误更少。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3198703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档