J2EE总结(二)——与servlet从相识到相知

话说这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方法示例:

 

Import javax.servlet.*;
Import javax.servlet.http.*;
Import java.io.*;

Public class MyServlet extends HttpServlet{
	Public void service(HttpServletRequest req,HttpServletResponse res) throws ServletException,IOException{
		//process request,generate response
	}
}

 

4、servletContext

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

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

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

5/servlet是线程不安全的

    多个线程会同时执行servlet的service方法,如果servlet中声明了实例变量或者静态变量,则会造成线程不安全问题

三、小结

本文主要从servlet的功能和其中的方法来进行介绍,但是servlet中包含的知识远不止于此,如:servlet过滤器,之前总结过在MVC中的过滤器,servlet中的过滤器与其原理也应该万变不离其宗。剩下的就靠我们自己在实践中去慢慢探索了!

 

 

 

 

 

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值