springMVC之前,关于servlet

springMVC之前是看过两遍,但也都是跟着书上走配置,然后能跑起来,然后时间久了不用自然就忘了,现在工作上用的是struts2,springMVC有差不多一年的时间没有碰了,所以这次准备从原理上从新梳理一下,springMVC。重新梳理一遍springMVC首先就是把servlet透彻的了解一遍,所以这个写在springMVC之前,复习一下servlet的相关内容。

首先我觉得要搞清楚servlet是干什么的,我现在粗浅的理解,servlet最主要的作用就是把http请求转化为方便java程序识别和利用的东西,以及可以把经过java处理后的东西包装成响应回复给客户端,前者我们称为httpServletRequest,后者便是httpServletResponse。这是servlet最核心的功能,其他的相关类都是为这个功能服务的。

其次要把servlet和servlet容器区分开,我因为一开始接触java就是自己看书,所以对servlet的认知一直很模糊,就是按照书上配一遍,跑起来了,over。随着工作的深入和最近看了一下相关的代码,有了进一步的了解。我认为的servlet就是指javax.servlet包下面的类,接口,配置文件等相关内容,包含servlet,filter,listener接口以及其相关接口。而servlet容器则是一个包含main方法的类似桌面应用程序的东西,我们可以在tomcat的org.apache.catalina.startup包下看到一个bootstrap类,里边包含了一个启动时用的main方法。tomcat启动后就开始不间断的接收定向到当前服务器的绑定端口的请求了。

最后做web项目应该去了解的最主要的部分还是servlet而不是servlet容器,毕竟web项目最主要的是处理用户请求,在没有很深厚的功力的情况下,我们不应该也基本上不必要去修改tomcat的源代码。servlet有三大件,servlet本身,过滤器,监听器(因为平时工作开发基本上都用的是H5+js+ajax所以相关jsp的内容我基本上都跳过了)。监听器比较好理解也比较好实现,但是在我学servlet至始至终没有搞清楚过滤器和servlet实现类的本质上的区别。有些博主在博客中会讲到过滤器不能处理请求,也不能对客户端生成相应。但是过滤器接口中传入了ServletRequest和ServletResponse两个参数,理论上讲可以在filter内对这两个参数做任何处理,为此我试了试各种过滤器处理请求,生成响应,甚至不调用servlet来直接生成响应,都没有问题。所以不能处理请求,也不能对客户端生成相应至少在表述上是有歧义的,表述成不应该更恰当,过滤器可以做到,但是出于代码分层以及封装的考虑,不建议在过滤器内处理业务逻辑相关内容。

本来《Spring in Action》书中高级装配过来是面向切面,但是我觉得现在看面向切面基本上也是走马观花,所以先看springMVC,因为最近在搞一个安卓的小东西,等到了具体的业务逻辑上用到了面向切面在做复习。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值