<J2EE学习笔记>关于Servlet的讲义
题外话:接触java又是半年之前的事情了,当初好好学了java却把cpp给忘了,到现在又把手里发热的cpp给放下重新捡起来java,究竟这两种OOP语言我能不能清晰分开记住呢
以下全部课件来自于同济大学刘岩老师(EnterpriseJavaProgramming)
一.什么是Servlet?
这个问题是在我学了快一个月J2EE的时候忽然开始问自己的,是的我们的代码打完了,服务器也跑动了,可是Servlet的角色在MVC Pattern中是如何的呢?
通常所说的Servlet一般是指HTTPprotocol下的服务器程序,当然也就意味着有TCP/IP或者UDPprotocol的服务器程序。在Servlet类中我们可以Override的函数通常有doGet,doPost..这些doXX分别和HTML语言中的form标签的method属性相对应。这里也简单的说下get方法和post方法之间的差别的get方法是指把参数数据队列加到提交表单的action属性所制定的URL中,值与表单中的各个字段一一对应,在URL中是可以看到的。post方法是通过http协议的post机制,将表单中的各个字段及其内容放置在httpHeader内一直传输到action所指定的URL地址中。get方法安全性比较低,post方法的安全性比较高,所以建议在做数据的查询的时候使用get方法,而在数据的增删改的时候改用post方法会更加的贴切。
二.Request&Response Handling
根据web.xml中的值的定义,我们向不同的地址访问的话会根据web.xml中的url-pattern的定义会把不同的request和response交付给不同的Servlet来处理。
为了对request对象的本质有深一步的了解我们调用一次HttpServletRequest接口下的getContextPath等等函数如下
第一行getContextPath()是空的,因为我们并没有在Tomcat服务器的server.xml文件中配置context的path,也就是说虚拟的目录就是path=“”,所以第一行是是个空串
第二行getServletPath()返回的串指的的事我们在web.xml中配置的servlet-mapping中的url-pattern属性所提供的虚拟地址
第三行getContextInfo()是当我的url-pattern中映射了多个目录,而进入其中一个子目录的时候返回的便是子目录的path串“except(SQL)server的path串”。
三.关于ListenerInterface