UDN-企业互联网技术人气社区

板块导航

浏览  : 1240
回复  : 0

[框架] 与servlet从相识到相知

[复制链接]
burning的头像 楼主
发表于 2015-6-9 22:21:00 | 显示全部楼层 |阅读模式

话说这J2EE视频看的本身每天活蹦乱跳的我是天天都像得了重病似的,怎么也犯不过劲儿来。里面接触了大量关于Java的专业词汇,如JNDI,ANT,servlet,Java Bean等等。让人一时难以消化。

但在这里,还是强烈建议大家,无论如何要本着不抛弃,不放弃的精神坚持下去。看到后面也许因为你的不甘心,或者老天同情你的遭遇,忽然你就开窍儿了呢。其实慢慢的听的多了,也就跟原来的知识逐渐的联系上了,这样也就没有原来那样费劲儿了。

一、与servlet相识1、一个类

首先不能被它陌生的名字吓到,它其实就是一个Java类。如果只说它是一个Java类,那么跟平时学到的如C#中的类就一样了,没什么区别,所以它就不陌生了。

2、功能

接收客户的请求

响应客户端

3、联想

根据servlet的功能,我们能联想到些什么呢?

     其实我们很早就开始接触servlet了,之前我们学习牛腩的时候,用到过handler,一般处理程序,它的功能和它类似,当时是为了解决ajax异步操作。

     其次,在学习ajax时,利用Java语言编写服务端时,就已经用到了servlet这个类,在这个类里,我们对从客户端发来的请求进行处理或者说将请求传递给服务器,同时,将服务器给出的处理回应给客户端。


这样想来,其实它并不陌生啊。


二、与servlet相知

认识了servlet后,我们需要再了解在servlet类中是通过哪些方法来处理客户端请求并进行回应的。

1、类

继承自HttpServlet,存在于服务端

2、生命周期

在了解servlet生命周期前,我们必须清楚的知道,servlet类存在于服务器端。而一切关于servlet的创建,使用和销毁其实幕后操作的黑手都是server。

server创建一个servlet对象——利用init方法进行初始化——客户端发出请求——server创建一个请求(request)和响应(response)对象——激活servlet中的service方法——service方法进行处理获取资源后回应客户端

以上是关于servlet在执行时一个大致流程。

3、方法

1、service()在客户请求时,server会通过service方法来进行处理和响应,在调用service方法时,会传入两个参数,一个是HttpServletRequest来接收客户的请求,另一个是HttpServletResponse来将服务器对客户的响应信息传递给客户端。

2、在客户端请求时,有两种方式get和post请求,为了区分这两种请求,把service方法分为处理两种不同请求的doGet()和doPost(),同时两个参数都不可少!

service方法示例:

  1. Import javax.servlet.*;  
  2. Import javax.servlet.http.*;  
  3. Import java.io.*;  
  4.   
  5. Public class MyServlet extends HttpServlet{  
  6.     Public void service(HttpServletRequest req,HttpServletResponse res) throws ServletException,IOException{  
  7.         //process request,generate response  
  8.     }  
  9. }  
复制代码

4、servletContext

对此,与servletConfig相结合理解的并不是特别清楚,只是了解到servletContext用来在servlet之间进行通信,它存储着公共变量和静态变量。任何servlet和JSP都可以访问到它。

通过getServletContext来获取,同时可以通过setAttribute()来设置公共变量,同时还可以通过removeAttribute来移除变量。

ServletContext,是一个全局的储存信息的空间,所以,为了节省空间,提高效率,ServletContext中,要放必须的、重要的、所有用户需要共享的线程又是安全的一些信息。



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部