Java基础 servlet

本文详细介绍了Servlet的基础知识,包括Servlet的概念、创建、生命周期、配置以及Servlet在Web开发中的应用。通过实例展示了如何创建Servlet,理解Servlet生命周期中的init、service、destroy方法,以及Servlet的配置和多种访问路径。同时,探讨了ServletContext对象的作用,如资源共享和获取全局初始化参数。还讲解了Request和Response对象在处理HTTP请求和响应中的作用,以及请求转发与重定向的区别。
摘要由CSDN通过智能技术生成
Servlet
Servlet介绍
       问题:servlet是什么,它有什么作用?
Servlet是运算在服务器上的一个java小程序,简单说,它就是一个java类。我们要使用servlet,需要导入javax.servlet的api.
Servlet它是一个资源,主要功能在于交互式的浏览和修改数据,它是一个动态资源    
       在tomcat/webapps下有一个examples工程,我们可以查看servlet示例
Servlet快速入门
              目的:明白怎样创建一个servlet,怎样让这个servlet执行,并理解它是一个资源。
              问题:怎样创建一个servlet?
              步骤:
1.      使用myeclipse创建一个web project
2.      在src下创建一个java类。HelloworldServlet,并让这个类继承HttpServlet
3.      重写了doGet方法
4.      在本工程的web.xml文件中对servlet进行配置
Servlet详解
       Servlet是一个资源,是一个java类,是运行在服务器上的。
       Sun对于servlet定义,它就是一个javax.servlet.Servlet接口。    
      
Servlet接口下有一个实现类叫GenericServlet,GenericServlet有一个子类HttpServlet.
在Servlet接口中定义了一个方法service,它的请要作用是处理来自浏览器的请求操作。
但是我们在创建Servlet时,是继承了HttpServlet,重写了一个doGet方法,问题:doGet方法与service方法有什么关系?
在service方法的重载的方法中,对请求方式进行判断,如果是GET就会调用doGet方法,如果是POST就会调用doPost方法。
总结:在Servlet接口中定义的service方法是用于处理请求的,而在其实现类HttpServlet中又进行细分,针对于POSt会执行doPost方法,如果是GET请求,执行的是doGet方法。
通过上述分析,我们知道要创建一个servlet其实可以有三种方式
1.      implements Servlet接口
2.      extends GenericServlet类
3.      extends HttpServlet类
在开发中,一般应用比较多的是使用extends HttpServlet,优点是它是与http协议相关的,简单说,它封装了http协议相关的操作。
 
Servlet生命周期
在javax.servlet.Servlet接口中定义了三个方法init service destroy它们就是servlet的生命周期方法
问题:什么是生命周期?
       简单理解成是servlet是什么时候创建的,它是什么时候销毁的。
演示servlet生命周期:
1.      创建一个LifeServlet
2.      在web.xml文件中配置
3.      启动服务器,并访问servlet, http://localhost/servletDemo/life
第一次访问结果:
第二次访问
以后每一次访问,只有service方法执行了。
当我们将tomcat服务器关闭
会发现destroy方法执行了。
Servlet生命周期总结:
1.      第一次访问servlet,servlet会被创建,并将servlet对象常驻内存,调用init方法进行初始化操作,init方法中执行一次。
2.      开启一个线程,调用service方法,用于处理来自浏览器端的请求,以后都是开启一个线程来处理浏览器端请求。
3.      当tomcat服务器正常关闭时,会调用destroy方法将servlet销毁。
注意:servlet是线程不安全的,也就是说,不建议在servlet中创建成员变量。
 
Servlet配置详解
       对于servlet,我们需要在web.xml文件中对其进行配置
下面这个是声明一个servlet
<servlet>
      <servlet-name>servlet名称</servlet-name>
      <servlet-class>servlet类全名</servlet-class>
</servlet>
 
下面这个是关于servlet映射
<servlet-mapping>
      <servlet-name>servlet名称</servlet-name>
      <url-pattern>资源路径</url-pattern>
</servlet-mapping>
 
url-pattern它就是用于确定访问servlet的一个路径。
问题:对于一个servlet我们是否可以有多条路径访问?
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值