Java Web 成神之路
文章平均质量分 96
本专栏全面记录了Java Web开发相关知识,不但包括对http, servlet,session等基础知识的讲解,还包括对流行框架(SSM,SpringMVC等)、中间件(Redis等)等进阶知识的深入分析。笔者将持续跟进最新Web技术,期望对大家能够起到抛砖引玉的效果。
书呆子Rico
不着急,慢慢来。
展开
-
RPC框架原理简述:从实现一个简易RPCFramework说起
摘要: 本文阐述了RPC框架与远程调用的产生背景,介绍了RPC的基本概念和使用背景,之后手动实现了简易的RPC框架并佐以实例进行演示,以便让各位看官对RPC有一个感性、清晰和完整的认识,最后讨论了RPC框架几个较为重要问题。总之,RPC框架的精髓在于动态代理和反射,通过它们使得远程调用“本地化”,对用户透明且友好。版权声明:本文原创作者:书呆子Rico 作者博客地址:http:...原创 2018-03-05 00:57:35 · 10837 阅读 · 11 评论 -
Java web Filter, Strurs2 Interceptor 和 SpringMVC Interceptor 三者之间的联系与区别
无论是Filter、Strurs2 Interceptor还是SpringMVC Interceptor,它们都是AOP理念的实现,本文结合源码详细解剖了三者在具体实现上的异同。转载 2017-07-11 15:58:23 · 2659 阅读 · 0 评论 -
简述Spring容器与SpringMVC的容器的联系与区别
摘要: 在Spring整体框架的核心概念中,容器的核心思想是管理Bean的整个生命周期。但在一个项目中,Spring容器往往不止一个,最常见的场景就是在一个项目中引入Spring和SpringMVC这两个框架,其本质就是两个容器:Spring是根容器,SpringMVC是其子容器。关于这两个容器的创建、联系及区别也正是本文所关注的问题。版权声明: 本文原创作者:书呆子Rico原创 2017-07-04 10:55:07 · 18967 阅读 · 24 评论 -
Spring 事务管理机制概述
用户的每次请求都对应一个业务逻辑方法,而一个业务逻辑方法往往包括一系列数据库原子访问操作,并且这些操作应绑定成一个事务来执行。使用传统事务编程策略时,程序代码必然和具体的事务操作代码耦合,而Spring事务管理策略可以避免这种尴尬。Spring提供了两种事务管理方式:编程式事务管理和声明式事务管理,本文在对Spring事务管理API分析的基础上,详细地阐述了Spring编程式事务管理和声明式事务管理的原理、本质和使用原创 2017-06-26 10:55:09 · 33980 阅读 · 10 评论 -
理解RESTful架构
越来越多的人开始意识到,网站即软件,而且是一种新型的软件。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使得这两个领域开始融合,而RESTful架构就是目前最流行的一种互联网软件架构。转载 2017-06-23 08:38:40 · 5053 阅读 · 1 评论 -
Spring 核心技术概览(一)
Spring是一个分层的Java SE/EE应用一站式的轻量级开源框架,其从持久层、业务层到表现层都拥有相应的支持,几乎为企业应用提供了所需的一切。本文首先概述了Spring容器的IoC控制反转和DI依赖注入两大概念,然后详述了Spring的IoC容器BeanFactory、Spring容器ApplicationContext和Spring的Web容器WebApplicationContext,并介绍了三者的异同。转载 2017-06-12 21:14:53 · 10965 阅读 · 3 评论 -
Spring MVC 简述:从MVC框架普遍关注的问题说起
任何一个完备的MVC框架都需要解决Web开发过程中的一些共性的问题,比如请求的收集与分发、数据前后台流转与转换,当前最流行的SpringMVC和Struts2也不例外。本文首先概述MVC模式的分层思想与MVC框架普遍关注的问题,并以此为契机结合SpringMVC的入门级案例简要地从原理、架构角度介绍了它对这些问题的处理。最后,本文对SpringMVC和Struts2作了进一步对比,以便加强对MVC框架的理解与认知。原创 2017-06-01 22:19:16 · 8472 阅读 · 16 评论 -
简述数据库事务并发机制
事务是最小的逻辑执行单元,也是数据库并发控制的基本单位,其执行的结果必须使数据库从一种一致性状态变到另一种一致性状态。事务具有四个重要特征,即原子性、一致性、隔离性和持久性。本文首先叙述了数据库中事务的本质及其四大特性(ACID)的内涵,然后重点介绍了事务隔离性的动机和内涵,并介绍了事务隔离级别及其内涵。特别地,介于并发安全与效率的平衡,我们一般会结合事务隔离级别和乐观锁/悲观锁机制来保证事务并发安全性。原创 2017-04-21 11:17:34 · 20191 阅读 · 12 评论 -
计算机网络体系结构综述(下)
摘要: 我们知道TCP/IP与OSI最大的不同在于OSI是一个理论上的网络通信模型,而TCP/IP则是实际上的网络通信标准。在上篇《计算机网络体系结构综述(上)》的基础上,本文着重概述了两种典型的层次化网络体系机构 —— OSI七层参考体系结构和TCP/IP四层协议结构,并对每种体系结构中的各层就任务、功能、协议及与其他相似层的区别等几方面做了进一步得介绍,力求还原这些典型的网络体系结构的全...原创 2017-04-07 18:59:17 · 16871 阅读 · 13 评论 -
计算机网络体系结构综述(上)
计算机网络体系结构标准的制定使得两台计算机能够像两个知心朋友那样能够互相准确理解对方的意思并做出优雅的回应。本文首先概述了计算机网络体系结构的提出动机,并结合日常生活中的邮政系统介绍了设计的理念,并给出了相关的基本概念和标准。进一步地,我们着重概述了计算机网络体系结构的分层原理及其最重要的组成部分——协议,使得读者能够对计算网路体系结构有一个全新的、系统的认识。原创 2017-04-07 18:54:58 · 28595 阅读 · 18 评论 -
Struts1与Struts2的区别和对比(深度好文)
本文介绍了Struts2的起源,详细对比了Struts2和Struts1.x的差异,并穿插概述了Struts2框架和请求流程。本文详细介绍了Struts1.x和Struts2两者之间在Action方面、对 Servlet 的依赖方面、输入捕获方面和表达式语言等十几个方面的差别,同时指出Struts2对拦截器与IoC的支持,而在Struts1.x中这些特性是很难想象的。原创 2017-04-05 22:31:10 · 16609 阅读 · 0 评论 -
再述 OGNL:在Struts2中的应用
MVC框架的分层结构提高了程序的可维护性、可移植性、可扩展性与可重用性,降低了程序的开发难度,但是也引来了一些新的问题,比如不同层次间的数据流转问题。OGNL的出现填平了这条沟壑,成为字符串与Java对象之间沟通的桥梁。本文首先概述了Struts2为何要集成WebWork的OGNL,并给出了Struts2官方对OGNL的描述,并就OGNL在Struts2中的进一步应用进行了详述,包括数据访问、控制标签等。原创 2017-04-03 16:19:48 · 3671 阅读 · 4 评论 -
与MVC框架解耦的OGNL:前世今生及其基本用法
虽然我们通过MVC框架而结缘OGNL,但它并未与MVC框架耦合在一起,而是一个以独立的库文件出现的功能强大的表达式语言,是字符串与Java对象之间沟通的桥梁。它通过简单一致的语法,可以存取Java对象树中的任意属性、调用Java对象树的方法,并自动实现必要的类型转化。本文首先概述了Ognl的前世今生,介绍了对Java对象属性的访问,静态、实例和构造方法的调用,容器的访问以及集合操作等内容,奠定学习OGNL的基础。原创 2017-04-03 08:11:17 · 7042 阅读 · 2 评论 -
Java Web 基础 --- Filter 综述
伴随J2EE一起发布的Servlet规范中还包括一个重要的组件——过滤器,其主要用于对用户请求进的预处理以及对服务器响应的后处理,是个典型的处理链,并且Servlet规范使用了三个接口Filter,FilterChain和FilterConfig对过滤器机制进行了抽象。本文概述了Filter的提出动机、工作原理、使用流程和应用实例,并指出Java Web中Filter机制是AOP与CoR融合的最佳实践。原创 2017-03-31 10:09:15 · 3690 阅读 · 2 评论 -
Struts2 实战:从 登录Demo 看 Struts2 应用开发
作为 Struts2 的首篇文章,本文首先以登录Demo为例介绍了创建一个简单的 Struts2 应用的一般步骤和流程,紧接着以该 Demo 为出发点概述了 Struts2 的运行机制,揭示了 Struts2 的本质:将请求与视图相分离。最后,针对该Demo所涉及到的知识点Namespace进行了深入探究,并总结出Struts2的请求路由规则。原创 2017-02-12 16:19:19 · 2281 阅读 · 1 评论 -
领域驱动设计系列文章(1)——通过现实例子显示领域驱动设计的威力
在本文中,将会拿出一个显示的例子,先用传统的面向过程方式,使用贫血模型进行设计,然后再逐步加入需求变更,让读者发现,随着系统的不断变更,基于贫血模型的设计将会让系统慢慢陷入泥潭,越来越难于维护,然后再用基于面向对象的领域驱动设计重新上述过程,通过对比展示领域驱动设计对于复杂的业务系统的威力。转载 2016-10-30 13:07:59 · 4762 阅读 · 1 评论 -
Java Web基础 --- Jsp 综述(上)
Servlet/Jsp是J2EE规范的一部分,是Tomcat的主要实现部分。当用户发送请求时,Servlet利用输出流动态生成HTML,这导致其开发效率极为低下。JSP技术通过实现普通静态HTML和动态部分混合编码,使得逻辑与外观相分离,简化了表示层的实现。本文以JSP的本质是Servlet为主线,结合其转译后的Servlet,探讨了JSP的原理、执行过程、脚本元素、编译指令和动作指令,并给出了JSP使用的注意事项。原创 2017-02-19 22:14:25 · 7013 阅读 · 13 评论 -
JSP中文乱码问题终极解决方案(下)
本文首先从四个方面给出了在使用JSP过程中可能出现中文乱码的情形,具体包括JSP页面中文乱码、JSP源文件中文乱码、GET 请求的请求参数为中文乱码 和 POST 请求的请求参数为中文乱码四种情形,并针对每种情形给出了相应的终极解决方案。原创 2017-02-19 22:42:23 · 99666 阅读 · 17 评论 -
Java Web基础 --- Jsp 综述(下)
JSP脚本中包含九个内置对象,它们都是Servlet-API接口的实例,并且JSP规范对它们进行了默认初始化。本文首先通过一个JSP实例来认识JSP内置对象的实质,紧接着以基于请求/响应架构应用的运行机制为介绍背景,引出JSP/Servlet的通信方式与内置对象的作用域,并对每个内置对象的常见用法进行深入介绍和总结。原创 2017-02-25 23:13:32 · 5321 阅读 · 11 评论 -
使用 URLDecoder 和 URLEncoder 对中文字符进行编码和解码
摘要: URLDecoder 和 URLEncoder 用于完成普通字符串 和 application/x-www-form-urlencoded MIME 字符串之间的相互转换。在本文中,我们以使用URLDecoder解决GET请求中文乱码问题为场景说明 URLDecoder/URLEncoder 的用法,并给出了 application/x-www-form-urlencoded MIM...原创 2017-02-25 23:17:02 · 95310 阅读 · 9 评论 -
JSP中文乱码问题终极解决方案(上)
本文首先介绍了一个JSP的源文件执行过程,即需要经过三个阶段,两次编码,才能完成一次完整的输出。特别需要注意的是,在这个过程中,编码问题贯穿始终。在JSP/Servlet中,主要有以下四种方式可以设置编码,即pageEncoding、contentType、request.setCharacterEncoding和response.setCharacterEncoding,在本文中,我们就这四种方式进行介绍和总结。原创 2017-02-27 12:03:23 · 17684 阅读 · 3 评论 -
Java Web基础 --- Servlet 综述(实践篇)
摘要: 伴随 J2EE 6一起发布的Servlet 3.0规范是Servlet规范历史上最重要的变革之一,它的许多新的特性都极大的简化了 Java Web 应用的开发。本文从一个简单的 Servlet 例子开始,说明了如何开发、配置一个 Servlet。此外,还重点叙述了Servlet的一些新特性,包括Servlet 异步处理、Servlet 非阻塞IO 以及 Servlet 文件上传等内容,以便原创 2017-03-09 18:00:12 · 3446 阅读 · 0 评论 -
Java Web基础 --- Servlet 综述(理论篇)
Web 技术成为当今主流的互联网Web应用技术之一,而Servlet是Java Web技术的核心基础。本文首先从请求/响应架构应用的大背景谈起Servlet的由来,明确Servlet的产生动机,揭示了Servlet的本质。紧接着讲述了Servlet族的继承结构,Servlet的生命周期、Servlet执行流程,Servlet与并发的联系,Servlet与 MVC 的联系等,使我们对Servlet有一个更深刻的认识。原创 2017-03-09 18:09:17 · 7552 阅读 · 6 评论