`
zhoushunlong
  • 浏览: 52200 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
阅读更多

index:
1,什么是Servlet
2,Servlet有什么作用
3,Servlet的生命周期
4,Servlet怎么处理一个请求
5,Servlet与JSP有什么区别
6,Servlet里的cookie技术
7,Servlet里的过滤器
8,Servlet里的监听器

 


一,什么是Servlet?


Servlet是一个Java编写的程序,此程序是基于Http协议的,在服务器端运行的(如tomcat),

 

是按照Servlet规范编写的一个Java类。



二,Servlet有什么作用?


主要是处理客户端的请求并将其结果发送到客户端。



三,Servlet的生命周期?


Servlet的生命周期是由Servlet的容器来控制的,它可以分为3个阶段;初始化,运行,销毁。

初始化阶段:


1,Servlet容器加载servlet类,把servlet类的.class文件中的数据读到内存中。


2,然后Servlet容器创建一个ServletConfig对象。ServletConfig对象包含了Servlet的初始化配置信息。


3,Servlet容器创建一个servlet对象。


4,Servlet容器调用servlet对象的init方法进行初始化。



运行阶段:


当servlet容器接收到一个请求时,servlet容器会针对这个请求创建servletRequest和servletResponse对象。

 

然后调用service方法。并把这两个参数传递给service方法。Service方法通过servletRequest对象获得请求的

 

信息。并处理该请求。再通过servletResponse对象生成这个请求的响应结果。然后销毁servletRequest和

 

servletResponse对象。我们不管这个请求是post提交的还是get提交的,最终这个请求都会由service方法来处理。

 


销毁阶段:


当Web应用被终止时,servlet容器会先调用servlet对象的destrory方法,然后再销毁servlet对象,

 

同时也会销毁与servlet对象相关联的servletConfig对象。我们可以在destroy方法的实现中,释放

 

servlet所占用的资源,如关闭数据库连接,关闭文件输入输出流等。



在这里该注意的地方:


在servlet生命周期中,servlet的初始化和和销毁阶段只会发生一次,而service方法执行的次数则取决于servlet被客户

 

端访问的次数

 

 


四,Servlet怎么处理一个请求?


当用户发送一个请求到某个Servlet的时候,Servlet容器会创建一个ServletRequst和ServletResponse对象。

 

在ServletRequst对象中封装了用户的请求信息,然后Servlet容器把ServletRequst和ServletResponse对象

 

传给用户所请求的Servlet,Servlet把处理好的结果写在ServletResponse中,然后Servlet容器把响应结果传

 

给用户。

 


五,Servlet与JSP有什么区别?


1,jsp经编译后就是servlet,也可以说jsp等于servlet。


2,jsp更擅长页面(表现)。servlet更擅长逻辑编辑。 (最核心的区别)。


3,在实际应用中采用Servlet来控制业务流程,而采用JSP来生成动态网页.在struts框架中,

 

JSP位于MVC设计模式的视图层,而Servlet位于控制层。

 


六,Servlet里的cookie技术?


cookies是一种WEB服务器通过浏览器在访问者的硬盘上存储信息的手段,是由Netscape公司开发出来的。


cookie技术的好处:


    1,Cookie有效期限未到时,Cookie能使用户在不键入密码和用户名的情况下进入曾经浏览过的一些站点。


    2,Cookie能使站点跟踪特定访问者的访问次数、最后访问时间和访问者进入站点的路径。
   
创建一个cookie

//里面的两个参数分别是cookie的名和cookie的值

response.addCookie(new Cookie("abc","10000000"));

 

使用cookie

Cookie[] cook =request.getCookies();//用一个Cookie数组来接收

for(int j=0;j<cook.length;j++){//通过循环来打印Cookie

        cook[j].getName()://取cookie的名  
        cook[j].getValue()://去cookie的值

}
 


七,Servlet里的过滤器?


过滤器的主要作用


1,任何系统或网站都要判断用户是否登录。


2,网络聊天系统或论坛,功能是过滤非法文字


3,统一解决编码


(2)怎么创建一个过滤器:

 

1,生成一个普通的class类,实现Filter接口(javax.servlet.Filter;)。


2,重写接口里面的三个方法:init,doFilter,destroy。


3,然后在web.xml配置过滤器。



八,Servlet里的监听器?


监听器的作用:自动执行一些操作。

三种servlet监听器:

 

对request的监听。对session的监听。对application的监听。

怎么创建一个session监听器:


1,生成一个普通的class类,如果是对session的监听,则实现HttpSessionListener。


2,然后重写里面的五个方法:

 

public void sessionCreated(HttpSessionEvent arg0) {} // 创建

public void sessionDestroyed(HttpSessionEvent arg0) {} // 销毁

public void attributeAdded(HttpSessionEvent arg0) {} // 增加

public void attributeRemoved(HttpSessionEvent arg0) {} // 删除

public void attributeReplaced(HttpSessionEvent arg0) {} // 替换
分享到:
评论
29 楼 Technoboy 2011-04-19  
我的博文里有servlet源码的分析
28 楼 lflei 2011-04-18  
总结的很好,支持一下!
27 楼 alanlhy 2011-03-30  
不错,但是有一点疑问,servlet一定是基于http协议的吗?
26 楼 tanwencan 2011-03-14  
jun0325 写道
很好,最近在复习以前的东西,对我很有帮助.

25 楼 kanny87929 2011-02-16  
这个基础很重要,不知道这些项目越做越大的时候,遇到的servlet会越来越多
24 楼 borglee 2010-12-13  
正好在学习servlet 很茫然 看了楼主的贴感觉能了解一些了 收藏后慢慢看吧
23 楼 andychen0927 2010-12-09  
要开始学JAVA EE了,给推荐下学习servlet和jsp好的教材呗
22 楼 Rocket076 2010-11-15  
之前笔试就被考了一下,了解不够深入啊~现在好好学
21 楼 msi110 2010-11-04  
总结得相当的不错啊,在找工作时相当的实用!
20 楼 东川々靖竹 2010-11-02  
不错 挺全的 
19 楼 大海lb 2010-11-02  
挺好,我喜欢,看了一下,回忆了一下!
18 楼 zhoushunlong 2010-09-20  
紫烟水晶 写道
    在servlet和jsp的区别中,其实servlet是jsp的前身,原来是没有jsp的,从界面到功能全都是由servlet来完成的,但是从难以程度上来说,servlet在界面的设计上很难,为了解决界面开发的难度才引入了jsp。jsp专门用于界面的现实和数据的收集,这样降低了网站的开发难度。

17 楼 紫烟水晶 2010-09-20  
    在servlet和jsp的区别中,其实servlet是jsp的前身,原来是没有jsp的,从界面到功能全都是由servlet来完成的,但是从难以程度上来说,servlet在界面的设计上很难,为了解决界面开发的难度才引入了jsp。jsp专门用于界面的现实和数据的收集,这样降低了网站的开发难度。
16 楼 zhoushunlong 2010-09-20  
Javakeith 写道
不错,很适合面试!

我这是平常在学习中总结的一些知识点,只是皮毛
15 楼 zhoushunlong 2010-09-20  
caowei3047 写道
LZ说的挺好,不过想纠正一点:Servlet并不是基于Http协议的,而是HTTP协议目前是Servlet应用的最多的协议。

恩,谢谢指教。
14 楼 zhoushunlong 2010-09-20  
恋曲2000 写道
感谢lz分享这么好的东西,学习了!!!

大家一起分享,才有进步。我是新人,还请各位前辈多多指教。
13 楼 恋曲2000 2010-09-20  
感谢lz分享这么好的东西,学习了!!!
12 楼 paoxiaowow 2010-09-20  
servlet 是很多框架的底层实现方式,必须掌握好
11 楼 zouwu85 2010-09-20  
good?
10 楼 caowei3047 2010-09-20  
Servlet确实重要。我觉得不熟悉Servlet容器就相当于还是J2EE尚未入门。

相关推荐

Global site tag (gtag.js) - Google Analytics