浅谈Java Web 之Servlet

1.Servlet概述

(1)Serlet名字的由来?

Servlet 是Java Servlet 的简称,Servlet本身并不是一个英文单词,而是两个单词拼构而成的:Servlet = Service + Applet。与之类似的是Scriptlet,它也是由两个单词拼构而成的:Scriptlet = Script + Applet,它表示的是脚本小程序。由此可以看出,java的老东家sun的命名特点。

(2)Servlet是什么?用来干什么?

通俗的理解,Servlet是用java语言编写的一个小程序,这个小程序运行在服务器端。实际上,我们对于Servelet的理解可以分为两个层次:

  • 狭义的Servlet是指Java语言实现的一个接口。
  • 广义的Servlet是指任何实现了这个Servlet接口的类。

我们知道Java Web的资源分为动态资源和静态资源,其中动态资源的特征是具有逻辑性,而动态资源的逻辑性就是通过java代码呈现出来的,具体的实现就是运行在服务器端的java代码,也就是我们的Servlet类,因此我们通常是说的Servlet,实际上指的是广义Servlet。但是Servlet类与我们通常写的java类又有着不同之处。下面详细讲解。

(3)Servlet与通常的java程序的不同之处

  • 因为它运行在服务器端的Web服务器软件上,因此它要遵循一定的规则。它需要遵循的规则的具体体现就是,编写运行在服务器端的小程序的话,需要实现Servlet接口。实现这样接口的程序写出来以后,就叫Servlet程序。
  • 我们通常写的程序是我们主动去调用它,也就是在主方法中使用它。但是,运行在服务器端的小程序,也就是Servlet不需要我们主动去调用它,在需要执行的时候,我们的服务器软件就会去调用它。
  • 实际上说我们不会主动去调用它,也不完全正确。作为一个客户,当我们使用浏览器访问一些web资源时,实际上可能就发起了Servlet的调用。但是,这个请求中间经过了web服务器软件这一层,也就是我们先把请求给了web服务器软件,web服务器软件再去具体的执行某一个servlet。那web服务器软件怎么知道我们要执行哪个Servlet呢?它是怎么体现的呢?答案就是通过url体现出来的。也就是我们在浏览器中输入一个路径时,可能就是在请求执行一个(或多个)Servlet的。因此,我们需要给每一个Servlet配置一个url。

(4)Servlet的特点

Servlet自身不依赖于协议或者平台。它的主要功能在于交互式地浏览和生成数据,生成动态Web内容。通俗的说,它就是用来申请和生成web资源的,例如html页面。

2.Servlet的继承体系

Servlet的继承关系图如下

1505769-20190904105349063-1460831475.png

在实际开发中,我们写Servlet程序,一般继承自HttpServlet。

3.Servlet的访问路径配置

  • 通过配置文件配置
  • 通过注解配置

注意:一个Servlet程序可以配置多个访问路径。例如通过注解方式配置,可以这样写:@WebServlet({"/d4","/dd4","/ddd4"}),这样配置的话我们访问三个路径中的任何一个,都可以访问到该Servlet资源。

4. Servlet程序举例

(1)使用配置文件方式配置

 //使用配置文件方式配置Servlet,在web.xml中添加 下述信息即可:
 /*
            <!--配置Servlet -->
                    <!--(1).为Servlet类起一个别名, 例如:demo-->
            <servlet>
                <servlet-name>demo</servlet-name>
                <servlet-class>全类名</servlet-class>               
            </servlet>
            <!--(2). 为demo配置一个url-pattern ,例如:/demo1  这样,这个servlet类便可以通过/demo 这个资源路径访问到 -->
            <servlet-mapping>                                       
                <servlet-name>demo1</servlet-name>      
                <url-pattern>/demo1</url-pattern>               
            </servlet-mapping>
*/

(2)使用注解方式配置

@WebServlet("/demo")
public class ServletDemo4 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("demo4...");
        System.out.println(req);
    }
}

转载于:https://www.cnblogs.com/lasnitch/p/11457045.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值