简单的Java Web服务器和MVC框架

9

有没有人知道一个简单的开源Java Web MVC框架和Web服务器?

这是为教程班级中的学生设计的一个简单的Web服务器和框架。

很重要的一点是,Web服务器和MVC框架都必须简单易懂,并且是开源的,这样学生们就可以轻松地了解其内部结构,导师也能够轻松地支持、学习和教授。

更新 避免单个jar文件问题的建议是一个好建议。我一定会采纳,并放宽对单个jar文件的要求。

9个回答

6
你可以看一下Stripes,它没有任何编译时依赖(除了它本身)并且在运行时只需要COSCommons Logging。它还非常轻量级且易于上手。

6
我非常 impressed with Play! Framework,我认为它符合你在 MVC 方面的大部分要求。它很像 Rails 等框架,并且支持基于注释的 Hibernate 持久性开箱即用。值得一提的是,它有三个“奇怪”的地方:
  1. 我认为它有自己内置的属性实现(使用反射和字节码修改)
  2. 它使用异常来进行流程控制
  3. 它的模板可能对某些要求来说有点基础,但总体上对于简单的东西来说还是可以的。
这些都不会阻止你快速创建一个好的网站,但如果你同时想教授 Java,那么第 1 和第 2 点可能会让你感到困扰。

Play! 框架似乎是 Java MVC 框架中最简单的一个。 - wm_eddie

5
如果单独的jar对你很重要,你可以将多个jar文件解压缩,然后重新组合成一个单独的jar文件(注意任何重复或文件冲突)。
这样做可能比为了单一jar的要求而妥协你的MVC选择更容易。

1
我认为满足单一的jar要求将比它所产生的任何节省更加困难。 - CurtainDog

2

如果您想教授MVC,为什么不使用Tomcat上的JSP和Servlet进行解释。如果您想使用一些框架进行教学,那么在我看来,Tomcat上的JSF是最容易的选择,因为不需要太多配置,后端代码也只是纯Java,没有特定于框架的API。


我认为JSP太过笨重,而且在我看来已经过时了。MVC是更好的模式。想听听您对MVC为什么不是一个好主意的看法。 - CVertex
2
我并没有说MVC是一个坏主意。我的意思是,如果不使用JSF,就应该使用普通的JSP和Servlet来教授MVC概念。所有的Java Web框架最终都依赖于核心的JSP和Servlet技术。 - Bhushan Bhangale

1

如果你要教别人修车,你可以从 Briggs & Stratton 割草机引擎开始,然后逐步提高。我建议从一些非常流行的东西开始,比如我们的隐喻中的 Honda Civic。

从一个非常流行的框架开始会产生更好的互联网资源,并且将有许多其他人遇到过相同的问题。此外,使用现实世界中使用的东西并出现在工作职位中也不是创造开发社区的有成效的成员的坏方法。

我建议使用 Spring MVC。如果您想隐藏 IoC,那么这也很容易做到。一个示例:

package samples;

public class SampleController extends AbstractController {

    public ModelAndView handleRequestInternal(
        HttpServletRequest request,
        HttpServletResponse response) throws Exception {

        ModelAndView mav = new ModelAndView("hello");
        mav.addObject("message", "Hello World!");
        return mav;        
    }
}

Spring确实太过于笨重了。我们正在将很多东西塞进这个主题中,而一个沉重的框架已经增加了他们必须忍受的巨大学习量。 - CVertex

1

你们觉得 Wicket 怎么样?


1

尝试使用基于Java的超级简单的Web MVC框架VRaptor 2。我的5岁的侄女能够编写一个简单的Web应用程序,并在7分钟内将其运行起来(当然需要一些指导)。不是开玩笑!


0
有没有人知道一个简单的开源 Web MVC 框架和 Web 服务器适用于 Java?请参阅HybridJava

-1

简单 MVC

 package app.controllers;
    import mvc.*;
    class mycontroller implements Controller {
        public View Controller() {
            return new View("myview");
        }
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接