日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

从零开始写javaweb框架 pdf_大学写的一个 Java Web 框架

發布時間:2024/9/30 java 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从零开始写javaweb框架 pdf_大学写的一个 Java Web 框架 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介

today-web是一個基于Servlet的高性能輕量級Web框架。

安裝

<dependency><groupId>cn.taketoday</groupId><artifactId>today-web</artifactId><version>2.3.6.RELEASE</version> </dependency>Maven Central today-web?search.maven.org

快速入門

  • 第一步:新建項目

選擇Maven項目

選擇類型

設置坐標

項目結構
  • 第二步:引入依賴
<dependency><groupId>cn.taketoday</groupId><artifactId>today-web</artifactId><version>2.3.6.RELEASE</version> </dependency><dependency><groupId>cn.taketoday</groupId><artifactId>today-context</artifactId><version>2.1.5.RELEASE</version> </dependency><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.28</version> </dependency>

到此項目建立完畢,并不需要去管 web.xml 文件

  • 第三步:配置控制器
/*** @author TODAY <br>* 2018-12-02 22:30*/ @RestController @RequestMapping("index") public class IndexController {@GET("{key}")public String index(@PathVariable String key) {return key;}@GET@ResponseBody(false)public String index() {return "index";} }

使用模板引擎渲染頁面

Freemarker模板
  • 第四步:部署

部署到Tomcat

@GET({key})

@GET

案例

TAKETODAY/today-web-demo?github.com

使用說明

  • 通過 @Controller @RestController 配置控制器
//@Controller @RestController @RequestMapping("/users") public class IndexController {}
  • 配置請求
@GET("index") @POST("post") @PUT("articles/{id}") ...... @RequestMapping("/users/{id}") @RequestMapping(value = "/users/**", method = {RequestMethod.GET}) @RequestMapping(value = "/users/*.html", method = {RequestMethod.GET}) @RequestMapping(value = {"/index.action", "/index.do", "/index"}, method = RequestMethod.GET) @Interceptor({LoginInterceptor.class, ...}) public (String|List<?>|Set<?>|Map<?>|void|File|Image|...) w+ (request, request, session,servletContext, str, int, long ,byte, short, boolean, @Session("loginUser"),@Header("User-Agent"), @Cookie("JSESSIONID"), @PathVariable("id"), @RequestBody("users"), @Multipart("uploadFiles") MultipartFile[]) {service...return </>; }
  • 自定義參數轉換器
@ParameterConverter public class DateConverter implements Converter<String, Date> {@Overridepublic Date doConvert(String source) throws ConversionException {...} }

可以通過xml文件配置簡單視圖,靜態資源,自定義視圖解析器,文件上傳解析器,異常處理器,參數解析器

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE Web-Configuration PUBLIC "-//TODAY BLOG//Web - Configuration DTD 2.0//CN""https://taketoday.cn/framework/web/dtd/web-configuration-2.3.3.dtd"><Web-Configuration><controller prefix="/error/"><action resource="400" name="BadRequest" status="400" /><action resource="403" name="Forbidden" status="403" /><action resource="404" name="NotFound" status="404" /><action resource="500" name="ServerIsBusy" status="500" /><action resource="405" name="MethodNotAllowed" status="405" /></controller><controller><action resource="redirect:http://pipe.b3log.org/blogs/Today" name="today-blog-pipe" /><action resource="redirect:https://taketoday.cn" name="today" /><action resource="redirect:https://github.com" name="github" /><action resource="redirect:/login" name="login.do" /></controller><controller class="cn.taketoday.web.demo.controller.XMLController" name="xmlController" prefix="/xml/"><action name="obj" method="obj" /><action name="test" resource="test" method="test"/></controller></Web-Configuration>
  • 文件下載,支持直接返回給瀏覽器圖片
@RequestMapping(value = {"/download"}, method = RequestMethod.GET) public File download(String path) {return new File(path); } @GET("/display") public final BufferedImage display(HttpServletResponse response) throws IOException {response.setContentType("image/jpeg");return ImageIO.read(new File("D:/taketoday.cn/webapps/upload/logo.png")); }@GET("captcha") public final BufferedImage captcha(HttpServletRequest request) throws IOException {BufferedImage image = new BufferedImage(IMG_WIDTH, IMG_HEIGHT, BufferedImage.TYPE_INT_RGB);Graphics graphics = image.getGraphics();graphics.setColor(Color.WHITE);graphics.fillRect(0, 0, IMG_WIDTH, IMG_HEIGHT);Graphics2D graphics2d = (Graphics2D) graphics;drawRandomNum(graphics2d, request);return image; }
  • 文件上傳,支持多文件
@RequestMapping(value = { "/upload" }, method = RequestMethod.POST) public final String upload(@Multipart MultipartFile uploadFile) throws IOException {String upload = "D:/www.yhj.com/webapps/upload/";String path = upload + uploadFile.getFileName();File file = new File(path);uploadFile.save(file);return "/upload/" + uploadFile.getFileName(); }@POST({"/upload/multi"}) public final String multiUpload(HttpServletResponse response, @Multipart MultipartFile[] files) throws IOException {String upload = "D:/www.yhj.com/webapps/upload/";for (MultipartFile multipartFile : files) {String path = upload + multipartFile.getFileName();File file = new File(path);System.out.println(path);if (!multipartFile.save(file)) {return "<script>alert('upload error !')</script>";//response.getWriter().print("<script>alert('upload error !')</script>");}}//response.getWriter().print("<script>alert('upload success !')</script>");return "<script>alert('upload success !')</script>"; }
  • 登錄實例
@Controller public class UserController {/* <controller prefix="/WEB-INF/view/" suffix=".ftl"><action resource="login" name="login" /><action resource="register" name="register" /></controller> */// @GET("login")@RequestMapping(value = "/login" , method = RequestMethod.GET)public String login() {return "/login/login";//支持jsp,FreeMarker,Thymeleaf,自定義視圖}// @POST("login")@ResponseBody@RequestMapping(value = "/login" , method = RequestMethod.POST)public String login(@RequestParam(required = true) String userId, @RequestParam(required = true) String passwd) {// service...if(userId.equals(passwd)) {return "{"msg":"登錄成功"}";}return "{"msg":"登錄失敗"}";//支持pojo轉json} }

開源

請查看

TAKETODAY/today-web?github.com

總結

以上是生活随笔為你收集整理的从零开始写javaweb框架 pdf_大学写的一个 Java Web 框架的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 夜色导航| 国产一区二区91 | xxx国产 | 国产午夜精品一区二区三区 | 熟妇人妻av无码一区二区三区 | 伊人狼人综合 | 天天搞天天干 | 日本在线| 亚洲精品国产一区二区 | 97热视频| 亚洲精品天堂在线 | 特级毛片在线观看 | 女优视频在线观看 | 91老司机在线 | 伊人情人综合 | 国产又粗又硬又黄的视频 | 成人激情综合网 | 日本美女黄色一级片 | 国产又大又粗又长 | 美女视频黄色在线观看 | 国产精品二区一区二区aⅴ 一卡二卡三卡在线观看 | 激情麻豆| 国产又粗又硬又长又爽的演员 | 日韩亚洲第一页 | 国产成人a亚洲精品 | 成人av软件| 又粗又大又硬又长又爽 | 男人天堂手机在线观看 | 你懂的网址在线观看 | 久久免费看少妇高潮 | 中文字幕日韩人妻在线视频 | 亚洲码无人客一区二区三区 | 蜜桃视频污 | 黑人极品ⅴideos精品欧美棵 | 国产精品久久久久久亚洲调教 | 粉嫩av一区二区三区天美传媒 | 国产精品大屁股白浆一区 | 奇米色在线 | 日本精品久久久久久久 | 国产激情在线播放 | 日韩国产在线播放 | 黑人操中国女人视频 | 果冻传媒av | 污视频免费在线观看网站 | 少妇av片 | 黄色日批视频 | 可以直接观看的av | 久久国产精品偷 | 午夜激情综合 | 中文字幕视频二区 | 欧美一区在线看 | 色欧洲 | 一区二区三区日韩精品 | www.一区二区 | 在线中文字幕一区 | 国产二区视频 | 影音先锋亚洲一区 | 91狠狠操 | 免费av在线播放网址 | 欧美激情一二三区 | 综合九九 | 怡红院成人网 | 99这里有精品视频 | 午夜av免费在线观看 | 亚洲国产高清视频 | 国产精品久久久久久久裸模 | 亚洲美免无码中文字幕在线 | 免费不卡av在线 | 欧美私人情侣网站 | 奇米精品一区二区三区四区 | 日韩欧美一区二区三区视频 | 欧美黄色一级片视频 | 免费荫蒂添的好舒服视频 | 男人的天堂avav | 午夜爽爽爽 | 男女啪动最猛动态图 | 免费高清黄色 | 成年人福利| 精品国自产拍在线观看 | 天天干夜夜草 | 少妇太紧太爽又黄又硬又爽 | 国产乱强伦一区二区三区 | 伊人网在线视频 | 免费看黄色大片 | 孕妇一级片| 日本久久精品视频 | 色婷婷综合久久 | 亚洲色图在线视频 | 久久.com| 午夜污| 看个毛片| 激情五月婷婷在线 | 中文字幕在线三区 | 五月天色站| 成人在线91 | 秋霞7777鲁丝伊人久久影院 | 黑丝啪啪 | 麻豆影音| 九九国产视频 |