JavaWeb学习笔记之servlet

来源:互联网 发布:上海酒店式公寓知乎 编辑:程序博客网 时间:2024/04/27 10:26
1.Servlet的概念:
Servlet 可以运行在服务器上的一段小程序,可以利用程序向浏览器输出信息,他是用来开发动态web资源的
服务器想要认识这段小程序,就提出了Servlet这样的接口,我们像要编写Servlet程序的时候就要实现该接口。
2.Servlet开发过程:
2.1写一个java类去实现Servlet接口(或者继承Servlet的实现类:GenericServlet/HttpServlet)
2.2将写好的Servlet交给服务器管理:
(1)将Servlet拷到对应的WEB-INF/classes目录下
(2)web.xml文件中配置Servlet的对外访问路径
<servlet>
        <servlet-name>FirstServlet</servlet-name>
        <servlet-class>cn.itheima.FirstServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>FirstServlet</servlet-name>
        <url-pattern>/FirstServlet</url-pattern>
    </servlet-mapping>
    
3.Servlet的调用过程和生命周期
3.1调用过程
(1)浏览器发送请求
(2)服务器从请求中解析出想要访问的主机名、web应用、web资源
  (3)服务器发现所要访问的资源在web.xml文件下有配置,于是找到对应的Servlet类
  (4)服务器查看内存中是否已经有该Servlet类的实例,如果有就用,如果没有就创建
  (5)服务器将请求封装成Request对象(代表请求),并准备一个空的Response对象(带表响应)
  (6)调用该Servlet的service方法,并传入创建出来的Request和Response
  (7)service方法执行,有可能会有像浏览器发送的数据,保存到Response中
  (8)service方法返回后,服务器查看Response中是否有需要发送给浏览器的数据
  (9)将获得的数据组织称HTTP响应发给浏览器
  (10)浏览器解析响应,显示出来
 
  3.2生命周期:一件事物什么时候生,什么时候死,以及在他存活期间必然会触发的时间,统称为该事物的生命周期。
  Servlet声明周期:在第一次被访问的时候创建,创建的时候调用init()方法,他会一直驻留在内存中,处理后续的请求。对于每一次请求都会导致service方法被执行。直到服务器关闭的时候内存清空,servlet死亡,在servlet销毁之前会调用destory()方法


4.如何利用Myeclipse开发Servlet
4.1如何在Myeclipse下配置一个tomcat服务器--》window/preference/servers/tomcat/tomcatX
注意:(1)配置的时候要把该服务器设为Enable才能使用
(2)最好指定一下该tomcat使用的jdk
4.2如何在Myeclipse下创建一个web工程
file-》new web projcet--》
*projcetname为工程名 ,context root url配置的是开发的web应用的虚拟路径名,通常这两个是一样的,但是可以改成不一样的。
*如果一个web工程已经创建好以后想改变他的对应的虚拟路径,右键工程-》properties--》Myeclipse--》web--》web Contextroot修改
4.3如何将开发好的web工程发布到指定的服务器上
点部署按钮,选一下要发布的工程和,要发布到的的服务器,点deploy就可以了
*myeclipse会将WebRoot目录下的所有内容拷到tomcat的webapp下,并指定文件夹名为虚拟路径。
4.4如何用Myeclipse开发一个Servlet
创建类的时候不要选创建class而是选择创建Servlet。这种方式创建会帮你配置web.xml文件。


5.Servlet接口及他的实现类
5.1Servlet接口
void destroy() ;servlet销毁的时候调用的方法
void init(ServletConfig config) servlet创建的时候调用的方法
void service(ServletRequest req, ServletResponse res) 处理请求的方法,其中的参数requset代表HTTP请求,response代表一个HTTP响应
5.2默认实现类GenericServlet
对Servlet接口的一个默认实现,对Servlet接口定义的方法进行了简单的实现,我们可以直接继承GenericServlet从而只关注我们想要关注的service方法
5.3HttpServlet,针对HTTP协议进行优化过的Servlet
其中实现的service方法,会判断请求的方式,如果是get方式就掉用doGet()方法,如果是post方式就调用doPost()方法。我们可以继承HttpServlet,直接覆盖其中的doGet和doPost分别处理两种请求方式。


 
 
原创粉丝点击