Servlet 简介

Servlet是JavaWeb的三大组件之一,它属于动态资源。Servlet的作用是处理请求,服务器会把接收到的请求交给Servlet来处理,在Servlet中通常需要:
     接收请求数据
     处理请求
     完成响应

 

实现Servlet有三种方式:
     实现javax.servlet.Servlet接口
     继承javax.servlet.GenericServlet类
     继承javax.servlet.http.HttpServlet类

 

实现步骤:
1.编写servlet类继承HttpServlet类
2.在web.xml中配置servlet

<servlet>
    <servlet-name>hello</servlet-name>
    <servlet-class>cn.itcast.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/helloworld</url-pattern>
</servlet-mapping>

在web.xml中配置Servlet的目的其实只有一个,就是把访问路径与一个Servlet绑定到一起,上面配置是把访问路径:“/helloworld”与“cn.itcast.servlet.HelloServlet”绑定到一起

 

Servlet的生命周期方法
所谓xxx的生命周期,就是说xxx的出生、服务,以及死亡。Servlet生命周期也是如此!与Servlet的生命周期相关的方法有:
    void init(ServletConfig)
    void service(ServletRequest,ServletResponse)
    void destroy()
 

ServletConfig对象是由服务器创建的,然后传递给Servlet的init()方法,你可以在init()方法中使用它!
ServletConfig对象的常用方法:
    String getServletName():获取Servlet在web.xml文件中的配置名称,即<servlet-name>指定的名称;
    ServletContext getServletContext():用来获取ServletContext对象,ServletContext会在后面讲解;
    String getInitParameter(String name):用来获取在web.xml中配置的初始化参数,通过参数名来获取参数值;
    Enumeration getInitParameterNames():用来获取在web.xml中配置的所有初始化参数名称

<servlet>
    <servlet-name>One</servlet-name>
    <servlet-class>cn.itcast.servlet.OneServlet</servlet-class>
    <init-param>
      	<param-name>paramName1</param-name>
    	<param-value>paramValue1</param-value>
    </init-param>
    <init-param>
    	<param-name>paramName2</param-name>
    	<param-value>paramValue2</param-value>
    </init-param>
</servlet>

Servlet与线程安全

Servlet是线程不安全的,不要在Servlet中创建成员,创建局部变量即可!
可以创建无状态成员!
可以创建有状态的成员,但状态必须为只读的!

 

Servlet中的<url-pattern> 
<url-pattern>是<servlet-mapping>的子元素,用来指定Servlet的访问路径,即URL。它必须是以“/”开头!
1)    可以在<servlet-mapping>中给出多个<url-pattern>,例如:
<servlet-mapping>
    <servlet-name>AServlet</servlet-name>
    <url-pattern>/AServlet</url-pattern>
    <url-pattern>/BServlet</url-pattern>
</servlet-mapping> 
那么这说明一个Servlet绑定了两个URL,无论访问/AServlet还是/BServlet,访问的都是AServlet。


2)    还可以在<url-pattern>中使用通配符,所谓通配符就是星号“*”,星号可以匹配任何URL前缀或后缀,使用通配符可以命名一个Servlet绑定一组URL,例如:
    <url-pattern>/servlet/*<url-patter>:/servlet/a、/servlet/b,都匹配/servlet/*;
    <url-pattern>*.do</url-pattern>:/abc/def/ghi.do、/a.do,都匹配*.do;
    <url-pattern>/*<url-pattern>:匹配所有URL;

请注意,通配符要么为前缀,要么为后缀,不能出现在URL中间位置,也不能只有通配符。例如:/*.do就是错误的,因为星号出现在URL的中间位置上了;*.*也是不对的,因为一个URL中最多只能出现一个通配符。
注意,通配符是一种模糊匹配URL的方式,如果存在更具体的<url-pattern>,那么访问路径会去匹配具体的<url-pattern>

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值