本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
paulwong - fantaxy025025
- johnsmith9th
- xiangjie88
- zysnba
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- gengyun12
- jickcai
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sam123456gz
- sichunli_030
- tanling8334
- arpenker
- gaojingsong
- xpenxpen
- kaizi1992
- jh108020
- wiseboyloves
- ganxueyun
- xyuma
- xiangjie88
- wangchen.ily
- Jameslyy
- 龙儿筝
- luxurioust
- mengjichen
- lemonhandsome
- jbosscn
- zxq_2017
- nychen2000
- lzyfn123
- forestqqqq
- wjianwei666
- ajinn
- siemens800
- zhanjia
- Xeden
- hanbaohong
- java-007
- 喧嚣求静
- kingwell.leng
企业架构专栏最新文章
Servlet3.1规范翻译——部署描述文件
部署描述文件
本章指定的Java™Servlet规范3.0版要求Web容器支持部署描述文件。部署描述文件表达了应用开发人员、应用集成人员和Web应用部署人员之间的元素和配置信息。
对于Java Servlet 2.4和以后的版本,部署描述文件在XML模式文档中定义。
为了向后兼容到2.2版本的API编写的应用程序,Web容器也需要支持2.2版本的部署描述文件。为了向后兼 ...
Servlet3.1规范翻译——安全
安全
应用开发人员创建Web应用,他给、销售或其他方式转入应用给部署人员,部署人员覆盖安装到运行时环境。应用开发人员与部署人员沟通部署系统的安全需求。该信息可以通过应用部署描述符声明传达,或者通过在应用代码中使用注解。
本质描述了Servlet容器安全机制、接口、部署描述符和基于注解机制用于传达应用安全需求。
13.1 介绍
web应用包含的资源可以被多个用户访问。这些资源常常不受保护的遍历 ...
基于Netty实现CometStreaming方式的聊天室
这段时间在研究web服务器消息推送,除了html5的websocket,comet是一项很好的方案。comet不是一项专门的技术,更像是一个解决方案。说来也简单,服务端需要能把connection hold,浏览器也需要特殊的支持保持从服务端获取数据,幸好用xmlhttprequest,ajax的实现也是靠它。comet一般有两种方式long poll和streaming。长轮询是cl ...
context:component-scan扫描使用上的容易忽略的use-default-filters
问题
如下方式可以成功扫描到@Controller注解的Bean,不会扫描@Service/@Repository的Bean。正确
<context:component-scan base-package="org.bdp.system.test.controller">
<context:include-filter type=&q ...
Servlet3.1规范翻译——映射请求到Servlet
《Servlet3.1规范》翻译目录
映射请求到Servlet
Web容器需要本章描述的映射技术去映射客户端请求到Servlet(该规范2.5以前的版本,使用这些映射技术是作为一个建议而不是要求,允许servlet容器各有其不同的schema用于映射客户端请求到servlet)。
12.1 使用URL路径
在收到客户端请求时,web容器确定转发到哪一个Web应用。选择的Web应用必 ...
Servlet3.1规范翻译——应用生命周期事件
应用生命周期事件
11.1 介绍
应用事件设施给Web应用开发人员更好地控制ServletContext、HttpSession和ServletRequest的生命周期,可以更好地代码分解,并在管理Web应用使用的资源上提高了效率。
11.2 事件监听器
应用事件监听器是实现一个或多个Servlet事件监听器接口的类。它们是在部署Web应用时,实例化并注册到Web容器中。它们由开 ...
Servlet3.1规范翻译——Web应用
Web应用
一个Web应用是由许多servlet、HTML页面、类和其他资源组成的集合,这些资源组成了一个运行在Web服务器上的完整应用程序。Web应用程序能够捆绑和运行在来自不同提供商的不同容器上。
10.1 Web服务器中的Web应用程序
在Web服务器中Web应用程序的根目录是一个特定的路径。例如,一个catalog应用,可以位于http://www.mycorp.com/catalog ...
Servlet3.1规范翻译——转发请求
转发请求
构建Web应用时,把请求转发给另一个servlet处理、或在response中包含另一个servlet的输出通常是很有用的。RequestDispatcher接口提供了一种机制来实现这种功能。
当请求启用异步处理时,AsyncContext允许用户将这个请求转发到servlet容器。
9.1 获得一个RequestDispatcher
实现了RequestDisp ...
Servlet3.1规范翻译——注解和可插拔性
注解和可插拔性
本章讨论Servlet
3.0规范定义的注解和使web应用内使用的框架和库能够可插拔的增强。
8.1 注解和可插拔性
在web应用中,使用注解的类仅当它们位于WEB-INF/classes目录中,或它们被打包到位于应用的WEB-INF/lib中的jar文件中时它们的注解才将被处理。
Web应用部署描述符的web-app元素包含一个新的“metadata- ...
Servlet3.1规范翻译——Session
会话
超文本传输协议(HTTP)被设计为一种无状态协议。为构建有效的Web应用,必须与来自一个特定的客户端的请求彼此是相互关联。随时间的推移,演变了许多会话跟踪机制,这些机制直接使用对程序员而言是困难或麻烦的。
该规范定义了一个简单的HttpSession接口,允许servlet容器使用几种方法来跟踪用户会话,而不会使应用开发人员陷入到这些方法的细节中。
7.1 会话跟踪机制
...
Netty笔记:ReplayingDecoder中buffer使用的一点小陷阱
ReplayingDecoder的原理是阻塞IO,当没有读到足够的数据时,会抛出RelayError,进入以后的LOOP中不断check是否有足够的数据。因此每次读取时我们倒要check一下buffer的数据。为此Netty提供了ReplayingDecoderBuffer这样一个代理类封装原有的buffer。以readInt为例,首先要检查是否有4个字节可读。不满足抛出ReplayError ...
Netty笔记:ReplayingDecoder
为什么需要ReplayingDecoder,它和FrameDecoder有什么不同呢?ReplayingDecoder是一种特殊FrameDecoder,它能实现在IO阻塞的情况下实现无阻塞的解码。听起来比较拗口而且不好理解,举个例子来说,假设你在用netty设计一个文件传输的模块,采用的Header-Content的协议,在Header中说明文件的长度,我们用一个int来容纳长度,Conten ...
Servlet3.1规范翻译——Request
Request
请求对象封装了客户端请求的所有信息。在HTTP协议中,这些信息是从客户端发送到服务器请求的HTTP头部和消息体。
3.1 HTTP协议参数
servlet的请参数以字符串的形式作为请求的一部分从客户端发送到servlet容器。当请求是一个HttpServletRequest对象,且符合第24页中“参数可用时”描述的条件时,容器从URI查询字符串和POST数据 ...
Servlet3.1规范翻译——过滤器
过滤器
过滤器(Filter)是Java组件,允许运行过程中改变进入资源的请求和资源返回的响应中的有效负载和header信息。
本章描述了Java
Servlet v3.0 API类和方法,它们提供了一种轻量级的框架用于过滤动态和静态内容。还描述了如何在Web应用配置Filter,它们实现的约定和语义。
网上提供了Servlet 过滤器的API文档。过滤器的配置语法在第14 ...
Nio框架需要注意的两个问题(2)
书接上回,上次说到了selector的register和select会有锁冲突,这次再来考虑write的问题。
1. channel.write(Bytebuffer)是不是总是可写,当socket的writeBuffer满的时候会返回0,说明不能再写进任何字节。假设要写入一个很大的ByteBuffer,有可能需要分多次写。
2. channel上执行write操作需要获得锁保证同步,如 ...
Servlet3.1规范翻译——Response
Response
响应(response)对象封装了从服务器返回到客户端的所有信息。在HTTP协议中,从服务器传输到客户端的信息通过HTTP头信息或响应的消息体。
5.1 缓冲区
Servlet容器允许但不必为了提高效率而缓冲到客户端的输出。典型的服务器默认都是缓冲的,但允许servlet指定缓冲参数。
ServletResponse接口的如下方法允许servlet访问和 ...
Nio框架需要注意的两个问题(1)
研究了一段时间Nio框架,有Netty和Tomcat的Nio Connector总结了一些共性的问题的解决方案。
1. Selector的register和select有锁冲突,例如tomcat的Nio Connector,他采用的Acceptor和Poller的模式,Acceptor只负责接收socket,Poller是负责读写的IO线程,这种模式不用于nginx,Poller( ...
Servlet3.1规范翻译——Servlet Context
4.1 ServletContext接口介绍
ServletContext(Servlet上下文)接口定义了servlet运行在的Web应用的视图。容器供应商负责提供Servlet容器的ServletContext接口的实 ...
企业架构热门文章
博客专栏评论
只有@AspectJ支持命名切入点,而Schema风格不支持命名切入点。有一个问题不太明白Schema ...
dagger9527 评论了 【第六章】 AOP 之 6.5 AspectJ切入点语法 ...
dagger9527 评论了 【第六章】 AOP 之 6.5 AspectJ切入点语法 ...