在构建Java网站时,如何将标记与应用程序代码分离?

在构建Java网站时,如何将标记与应用程序代码分离?,java,netbeans,Java,Netbeans,我是一名.NET web开发人员,刚刚被要求使用NetBeans IDE 5.5制作一个小型演示网站。到目前为止,我还没有Java方面的经验 我已经学习了两个快速教程,一个只使用JSP文件,另一个使用servlet。在这个早期阶段,我所担心的是很难让应用程序代码远离标记 使用JSP文件看起来与传统ASP非常相似。另一方面,servlet看起来很有用,但似乎需要将大量标记写入输出流,我对此也不满意 是否有一种与ASP.NET代码隐藏模型等效的方法,或者有任何其他分离标记和代码的策略?有可能在JSP

我是一名.NET web开发人员,刚刚被要求使用NetBeans IDE 5.5制作一个小型演示网站。到目前为止,我还没有Java方面的经验

我已经学习了两个快速教程,一个只使用JSP文件,另一个使用servlet。在这个早期阶段,我所担心的是很难让应用程序代码远离标记

使用JSP文件看起来与传统ASP非常相似。另一方面,servlet看起来很有用,但似乎需要将大量标记写入输出流,我对此也不满意


是否有一种与ASP.NET代码隐藏模型等效的方法,或者有任何其他分离标记和代码的策略?有可能在JSP中保留标记,然后从JSP中使用servlet吗?

具有“适当的标记/逻辑分离”(正如他们所说)。

您可能想看看您不能使用纯Java EE技术对ASP.NET代码做类似的事情。您需要使用MVC框架,如SpringMVC或Struts。其思想是创建控制器(Java类)和JSP页面,并配置一个动作将JSP页面与控制器联系起来

它不像ASP.NET那样简单,因为它需要配置和外部框架


Netbeans嵌入了JSF框架。看看这一点。

对于一个简单的网站,我会使用Struts和Tiles,并利用它们提供的标记库使JSP看起来整洁和标记,并在控制器中将代码分离为操作-操作只是Struts servlet在完成其工作后调用的一块代码

了解Struts 2和Tiles的基本知识不需要很长时间,您可以在一天内轻松掌握

是的,servlet是编写此类系统的一个非常简单的级别,很容易在那里使用HTML生成器,正如您所说的,这显然是不对的。我认为您需要在请求和会话对象上添加更多的值,然后在JSP中格式化它们


这里的优势在于,您可以选择与应用程序规模相匹配的MVC框架,但如果您需要原始servlet来执行特定操作,您仍然可以访问它们(例如,我过去做的一件事是从数据库中的值生成并提供Excel文件).

关于Java的一点是,它并不像.NET那样与东西“捆绑”在一起。。。你通常去寻找货物

这使得在Java中启动web应用程序令人望而生畏,因为有太多的选项。其中许多都是基于JSP构建的,这是一个优势

如果你开始使用普通的JSP,你将不会玩得很开心。否则,我建议使用Wicket、Stripes或Spring MVC

条纹可能是三种条纹中最简单的一种(Spring有点复杂,Wicket在概念上与其他两种不同)。尽管如此,Spring MVC可能是这三种语言中使用最多的一种

所有条纹实际上都是JSP和ActionBeans。ActionBean是包含actions的Java类,actions是执行操作的方法。这些ActionBean类还包含当前页面的数据


有更多关于条纹的信息。

您可以使用并执行与在.NET中相同的操作!这是一个非常好的MVC框架。

如果您想快速发布一些东西(我注意到您正在制作一个演示),我可能会放弃Java web框架,而只使用servlet解决方案,并结合一个简单的模板解决方案

或将提供将标记与代码分离的功能。速度比自由标记简单。Freemarker比Velocity更强大


我并不反对提到的各种框架。只是如果你的时间很短,并且你很乐意为这个需求编写servlet接口,那么上面可能会提供最快/最脏的解决方案:-)

坦白地说,我拒绝认为代码隐藏模型代表分离。我更愿意在理想的世界中使用某种MVC框架,不过,现在我不想在走路之前跑步。谢谢你的建议,不过我宁愿使用IDE中内置的东西。当你说我可以在一天内轻松学会它时,这是否考虑到我直到今天才使用Java的事实?如果你使用C#,是的。您必须在Action类中编写方法体(验证输入、执行工作、设置输出字段)。当然,在后面写东西(数据库等)是另一件事。我把这个标记为答案,因为在我不得不评估不同选项的时候,条纹看起来是最容易挑选和使用的,并且提供了我想要的分离。