TODAY WEB 轻量级 Web 框架开源项目

我要开发同款
匿名用户2019年11月25日
75阅读

技术信息

开源地址
https://gitee.com/I-TAKE-TODAY/today-web
授权协议
GPL

作品详情

TODAYWEB是一个轻量级Web框架

安装<depedecy><groupId>c.taketoday</groupId><artifactId>today-web</artifactId><versio>2.3.6.RELEASE</versio></depedecy>MaveCetral案例DEMO文档Wiki使用说明

通过 @Cotroller @RestCotroller 配置控制器

//@Cotroller@RestCotroller@RequestMappig("/users")publicclassIdexCotroller{}

配置请求

@GET("idex")@POST("post")@PUT("articles/{id}")......@RequestMappig("/users/{id}")@RequestMappig(value="/users/**",method={RequestMethod.GET})@RequestMappig(value="/users/*.html",method={RequestMethod.GET})@RequestMappig(value={"/idex.actio","/idex.do","/idex"},method=RequestMethod.GET)@Iterceptor({LogiIterceptor.class,...})public(Strig|List<?>|Set<?>|Map<?>|void|File|Image|...)\\w+(request,request,sessio,servletCotext,str,it,log,byte,short,boolea,@Sessio("logiUser"),@Header("User-Aget"),@Cookie("JSESSIONID"),@PathVariable("id"),@RequestBody("users"),@Multipart("uploadFiles")MultipartFile[]){service...retur</>;}

自定义参数转换器

@ParameterCoverterpublicclassDateCoverterimplemetsCoverter<Strig,Date>{@OverridepublicDatedoCovert(Strigsource)throwsCoversioExceptio{...}}

也可以通过xml文件配置简单视图,静态资源,自定义视图解析器,文件上传解析器,异常处理器,参数解析器

<?xmlversio="1.0"ecodig="UTF-8"?><!DOCTYPEWeb-CofiguratioPUBLIC"-//TODAYBLOG//Web-CofiguratioDTD2.0//CN""https://taketoday.c/framework/web/dtd/web-cofiguratio-2.3.3.dtd"><Web-Cofiguratio><cotrollerprefix="/error/"><actioresource="400"ame="BadRequest"status="400"/><actioresource="403"ame="Forbidde"status="403"/><actioresource="404"ame="NotFoud"status="404"/><actioresource="500"ame="ServerIsBusy"status="500"/><actioresource="405"ame="MethodNotAllowed"status="405"/></cotroller><cotroller><actioresource="redirect:https://pipe.b3log.org/blogs/Today"ame="today-blog-pipe"/><actioresource="redirect:https://taketoday.c"ame="today"/><actioresource="redirect:https://github.com"ame="github"/><actioresource="redirect:/logi"ame="logi.do"/></cotroller><cotrollerclass="c.taketoday.web.demo.cotroller.XMLCotroller"ame="xmlCotroller"prefix="/xml/"><actioame="obj"method="obj"/><actioame="test"resource="test"method="test"/></cotroller></Web-Cofiguratio>

登录实例

@CotrollerpublicclassUserCotroller{/*<cotrollerprefix="/WEB-INF/view/"suffix=".ftl"><actioresource="logi"ame="logi"/><actioresource="register"ame="register"/></cotroller>*///@GET("logi")@RequestMappig(value="/logi",method=RequestMethod.GET)publicStriglogi(){retur"/logi/logi";//支持jsp,FreeMarker,Thymeleaf,自定义视图}@Logger("登录")//@POST("/logi")//@RequestMappig(value="/logi",method=RequestMethod.POST)@ActioMappig(value="/logi",method=RequestMethod.POST)publicStriglogi(HttpSessiosessio,RedirectModelredirectModel,@ValidUseruser,Errorserror){if(error.hasErrors()){System.err.pritl(error.getAllErrors());redirectModel.attribute("msg",error.getAllErrors().toStrig());retur"redirect:/logi";}Userlogi=userService.logi(user);if(logi==ull){redirectModel.attribute("userId",user.getUserId());redirectModel.attribute("msg","登录失败");retur"redirect:/logi";}redirectModel.attribute("msg","登录成功");sessio.setAttribute(USER_INFO,logi);retur"redirect:/user/ifo";}}

文件下载,支持直接返回给浏览器图片

@RequestMappig(value={"/dowload"},method=RequestMethod.GET)publicFiledowload(Strigpath){returewFile(path);}@GET("/display")publicfialBufferedImagedisplay(HttpServletResposerespose)throwsIOExceptio{respose.setCotetType("image/jpeg");returImageIO.read(ewFile("D:/taketoday.c/webapps/upload/logo.pg"));}@GET("captcha")publicfialBufferedImagecaptcha(HttpServletRequestrequest)throwsIOExceptio{BufferedImageimage=ewBufferedImage(IMG_WIDTH,IMG_HEIGHT,BufferedImage.TYPE_INT_RGB);Graphicsgraphics=image.getGraphics();graphics.setColor(Color.WHITE);graphics.fillRect(0,0,IMG_WIDTH,IMG_HEIGHT);Graphics2Dgraphics2d=(Graphics2D)graphics;drawRadomNum(graphics2d,request);returimage;}

文件上传,支持多文件

@RequestMappig(value={"/upload"},method=RequestMethod.POST)publicfialStrigupload(@MultipartMultipartFileuploadFile)throwsIOExceptio{Strigupload="D:/www.yhj.com/webapps/upload/";Strigpath=upload+uploadFile.getFileName();Filefile=ewFile(path);uploadFile.save(file);retur"/upload/"+uploadFile.getFileName();}@POST({"/upload/multi"})publicfialStrigmultiUpload(HttpServletResposerespose,@MultipartMultipartFile[]files)throwsIOExceptio{Strigupload="D:/www.yhj.com/webapps/upload/";for(MultipartFilemultipartFile:files){Strigpath=upload+multipartFile.getFileName();Filefile=ewFile(path);System.out.pritl(path);if(!multipartFile.save(file)){retur"<script>alert('uploaderror!')</script>";//respose.getWriter().prit("<script>alert('uploaderror!')</script>");}}//respose.getWriter().prit("<script>alert('uploadsuccess!')</script>");retur"<script>alert('uploadsuccess!')</script>";}

功能介绍

TODAY WEB 是一个轻量级 Web 框架 安装
<dependency>
<groupId>cn.taketoday</groupId>
<artifactId>t...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论