一个简单的web框架-beetlefly

xiaoxiao2026-06-08  2

设计思想:[url=/admin/blogs/393754]http://jander.iteye.com/admin/blogs/393754[/url] 项目主页:[url]http://code.google.com/p/beetlefly/[/url] 下载:[url]http://beetlefly.googlecode.com/files/beetlefly-eclipse-project-0.1.zip[/url] 欢迎各种意见。 简单介绍: 使用Beetlefly构建web程序,不用任何配置: Beetlefly在服务程序加载时,自动扫描各个Action,并将它们注入到Guice容器。 在客户端请求时,将request url 自动映射为Action的 method。 使用Beetlefly构建web程序,只需要简单几步: 1. 在web.xml中加入 <listener> <listener-class>org.beetlefly.example.blog.WebContextListener</listener-class> </listener> <servlet> <servlet-name>Beetle</servlet-name> <servlet-class>org.beetlefly.web.BeetleflyServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Beetle</servlet-name> <url-pattern>/page/*</url-pattern> </servlet-mapping> 其中org.beetlefly.example.blog.WebContextListener 进行Guice注入,需要使用者自己编写,格式如下: public class WebContextListener implements ServletContextListener { @Override public void contextDestroyed(ServletContextEvent event) { GuiceInjector.destory(); } @Override public void contextInitialized(ServletContextEvent event) { //Here,you can add your Gurice Modules. //在"org.beetlefly.example"的Package下,扫描Action. GuiceInjector.createInjector("org.beetlefly.example",new AbstractModule(){ @Override protected void configure() { bind(Service.class).to(ServiceImpl.class).asEagerSingleton(); //如果想控制Exception的话 //bind(ExceptionHandler.class).to(MyExceptionHandler.class).asEagerSingleton(); } }); }} BeetleflyServlet,作为Beetlefly的分配器,将客户端发送给各个Action,上面的配置,说明 BeetleflyServlet?将作用于http://hostname/rootname/page/下的url。 2. 编写自己的Action文件。所有Action类,都implements Action接口,Action接口是一个标记接口,其中不含任何方法。每个Action都要进行一个标记,用于BeetleflyServlet从容器中查找它。 //对Action进行标记@ActionAnnotation("blog")public class BlogAction implements Action { private Service service; @Inject public BlogAction(Service service) { super(); this.service = service; } //这个方法的url: http://hostname/rootname/page/blog/list public View list(HttpServletRequest req, HttpServletResponse resp){ Map<String,Object> map=new HashMap<String,Object>(); map.put("blogs", service.findAllBlogs()); return new JstlView("/blog/list.jsp",map); } //这个方法的url: http://hostname/rootname/page/blog/creat public View create(HttpServletRequest req, HttpServletResponse resp){ String title=req.getParameter("title"); String content=req.getParameter("content"); Blog blog=new Blog(service.nextKey(),title,content); service.create(blog); return new RedirectView("/page/blog/list"); }} 3. 第三步,没有了,你可以执行你的程序了,是不是很简单。
转载请注明原文地址: https://www.6miu.com/read-5049803.html

最新回复(0)