对Servlet的一些理解

Servlet

书上的原话:Servlet是指运行在Web服务器端的Java应用程序,可以生成动态的web页面,属于客户与服务器相应的中间层。
也就是说Servlet就是一个程序,是什么程序呢,是运行在web服务器端的程序。

我要的理解

但我觉得那不是我想要的答案。或者说,Servlet应该还有另一种含义。最后我找到了我要的答案:

Servlet是J2EE规范中的一种,它的作用就是为java程序提供一个统一的web应用的规范,方便程序员统一的使用这种规范来编写程序,应用容器可以使用提供的规范来实现自己的特性。比如tomcat的代码和jetty的代码就不一样,但作为程序员只需要了解servlet规范就可以从request中取值、就明白返回的数据要写到response中。——from知乎用户“谢照东”

也就是说Servlet是接口规范,而tomcat和jetty是具体的实现。

书上的例子

在《JavaEE程序设计与应用开发》这本书的第6章——Servlet基础编程中有一个例子,建立了一个最简单的servlet项目,该servlet的作用是:访问这个Servlet,显示一句欢迎信息。

操作步骤如下:
1.创建项目;
2.创建一个叫做WelcomeServlet的类,让它继承HttpServlet,在类中重写doGet方法,调用了out.println("欢迎来到本系统")
3.配置Servlet,即创建web.xml文件,配置并关联WelcomeServlet;
4.部署Servlet,即部署整个项目;

最后进行测试,启动tomcat,在浏览器上输入http://localhost:8080/prj/servlets/WelcomeServlet,然后浏览器就会显示出“欢迎来到本系统”。

我的一些收获与理解

以前实操时,使用的是MyEclipse,因为很多问题被简化了,比如servlet-api.jar包是自动导入的。

这次的实操中,根据上面的步骤,创建项目后,我定义了一个WelcomeServlet,让它继承HttpServlet,但却发现,没有HttpServlet。才意识到需要自己导入servlet jar包,我该去哪找?
这时才明白为什么说tomcat是servlet容器。因为tomcat提供了servlet接口规范的实现啊,也就是说servlet-api.jar存在于tomcat中。只要是Servlet容器,就会提供servlet接口规范的实现。比如说tomcat,比如说jetty。

那为什么在浏览器上输入http://localhost:8080/prj/servlets/WelcomeServlet,浏览器就会显示出“欢迎来到本系统”的字样呢。
我的理解如下:Tomcat是Servlet容器,我们导入的servlet-api.jar包正是tomcat提供的。正是因为我们导入了tomcat提供的这个servlet jar包,我们写的WelcomeServlet类才能继承HttpServlet类,正是因为继承了HttpServlet类,WelcomeServlet类才能处理Http请求。而正是Tomcat中的web.xml配置文件,使得在浏览器访问http://localhost:8080/prj/servlets/WelcomeServlet时,可以找到与之相关联的WelcomeServlet类对请求进行处理。

Tomcat容器的作用:
一是提供Servlet相关的jar包;
二是装载我们的项目;
三是提供web.xml配置文件,将请求url与我们定义的HttpServlet实现类相关联。

解读“servlet可以生成动态的Web页面”:
在以前,网页都是静态的,只能通过超链接的形式进行页面的跳转。而后来,页面可以是动态生成的,即页面的内容是可以变动的。而Java Web应用的动态页面就是通过servlet来实现的。服务器接收http请求并交由相应的servlet实现类处理,在doGet方法或doPost方法中会对请求参数进行解析处理,然后返回填充着相应数据的页面给用户,从而达到动态页面的效果。比方说这是一个登录请求,那么servlet实现类会判断请求参数中的账号密码是否正确,如果正确则返回主页信息,如果不正确则返回错误提示信息。

参考文章

http://blog.csdn.net/qq_39688352/article/details/76794973
https://www.zhihu.com/question/21416727

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值