图源:简书 (jianshu.com) Resource 接口 Spring中的资源被抽象为一个Resource接口: public interface Resource extends InputStreamSource { boolean exists(); boolean isReadable(); boolean isOpen(); boolean isFile(); URL getURL() throws IOException; URI get…
图源:简书 (jianshu.com) Resource 接口 Spring中的资源被抽象为一个Resource接口: public interface Resource extends InputStreamSource { boolean exists(); boolean isReadable(); boolean isOpen(); boolean isFile(); URL getURL() throws IOException; URI get…
图源:简书 (jianshu.com) 自从开始学习和从事Spring Boot开发以来,一个一直让我很迷惑的问题是IoC和Bean到底是什么东西。这个问题一直到我翻阅完Spring开发文档Core Technologies (spring.io)后才真正得到解惑。 虽然中文互联网上关于IoC的文章很多,但很少有和官方文档那样从零开始讲解并且非常全面的文章。所以学习Spring及相关技术的最好途径依然是官方文档。缺陷是篇幅很长... 关于IoC,Spring的官方文档已经介绍的相当全面了,但对从Spring Boo…
图源:Fotor懒设计 在上一篇文章Java编程笔记29:JSP - 红茶的个人站点 (icexmoon.cn)中,我们看到了如何结合Servlet和JSP实现简单的MVC思想。但这种做法存在一些问题: 用Servlet类来实现Controller(控制器)会让Controller显得复杂,因为Controller必须继承自HttpServlet类,意味着它包含了一些Servlet的功能,这不符合单一任务原则的设计思想。 在Servlet中加载JSP和附加信息的部分显得复杂,可以进一步封装。 为了解决上边的问题,我…
图源:Fotor懒设计 就像在上篇Java编程笔记28:Servlet II - 红茶的个人站点 (icexmoon.cn)中展示的那样,要向客户端输出一个页面,最简单的方式是直接用Java代码向输出流写入Html代码。这样的方式虽然简单直观,但存在很多隐患,而且很难用于编写复杂的Html代码。 此时我们就需要其他技术来输出Html页面,JSP就是早期的其中一种方式。 基础 JSP是Java Server Pages的缩写,是Java服务器用于“组装”和生成Html页面的技术。其写法和作用与其它语言中常见的模版语言…
图源:Fotor懒设计 在Java编程笔记27:Servlet - 红茶的个人站点 (icexmoon.cn)中介绍了如何编写和运行一个基于Servlet编写的Web应用,本篇文章将学习更多Servlet应用中如何使用常见的Web技术。 重定向和转发 页面重定向应该不会陌生,我们只需要在返回的HTTP响应报文中,将响应状态码设置为30X,并且通过报文头标签Location指定重定向后的目标URL即可。 类似之前的实现,先设置一个欢迎页面: package cn.icexmoon.java.note.ch28; //…
图源:Fotor懒设计 在之前的文章Java编程笔记26:HTTP - 红茶的个人站点 (icexmoon.cn)中,我们学习了如何“纯手工”用Java编写一个基于TCP/IP通信的Web服务端应用,可以实现最基本的接收HTTP请求和返回HTTP响应。 但显然,这种方式只适合学习最基本的Web服务实现原理,并不适合真正用于商业开发。因为我们要花费大量时间去处理最基本的报文解析和请求响应等功能,这些功能显然是“轮子”,已经有大量成熟方案可以使用。 Servlet技术就是这其中一个比较古早的轮子,虽然现代基本不会用到它…
图源: Fotor懒设计 HTTP协议实际上是基于TCP的应用层协议,规定了请求报文和响应报文等。参考HTTP协议的规定,我们可以实现一个简单的HTTP Server。 前文Java编程笔记25:TCP - 红茶的个人站点 (icexmoon.cn)中我介绍了如何实现简单的TCP服务端和客户端,本文将在之前示例的基础上实现一个简单的HTTP服务。 HTTP的基本概念推荐阅读图解HTTP (豆瓣) (douban.com),或者Web基础 - 廖雪峰的官方网站 (liaoxuefeng.com)。 请求报文 创建一个…
图源:Java Switch语句(用法详解)-java教程-PHP中文网 TCP和UDP通信可以说是网络应用的起点,原理方面的内容不在本文讨论范围内,这里直接展示如何用Java创建一个基于TCP的CS结构的网络应用。 Server package cn.icexmoon.java.note.ch25; // ... public class Main { public static void main(String[] args) throws IOException { ServerSocke…
图源:简书 (jianshu.com) 这篇文章是我早期学习AOP的理解,关于Spring AOP,在学习官方文档后,我写了一篇更全面深入的文章,感兴趣的可以阅读从零开始 Spring Boot 32:AOP II - 红茶的个人站点 (icexmoon.cn)。 AOP全称为Aspect Oriented Programming,即面向切面编程。 一次HTTP请求大概可以用下图表示: 如果用MVC的观点划分Spring Boot应用内的消息流转,大概可以用下图表示: 假设我们要在Spring Boot应用每次处理…
图源:简书 (jianshu.com) 在从零开始 Spring Boot 23:MyBatis - 红茶的个人站点 (icexmoon.cn)中我介绍了MyBatis的一些基本功能和用法,下文介绍遗漏的部分。 本文的示例代码都基于从零开始 Spring Boot 24:处理时间 - 红茶的个人站点 (icexmoon.cn)的最终示例修改而来,可以通过learn_spring_boot/ch24 (github.com)获取相应的代码。 TypeHandler 在之前的文章中,已经介绍过类型处理器(type ha…
魔芋红茶
加一点PHP,加一点Go,加一点Python......
COPYRIGHT © 2021 icexmoon.cn. ALL RIGHTS RESERVED.
本网站由提供CDN加速/云存储服务
Theme Kratos Made By Seaton Jiang