zoukankan      html  css  js  c++  java
  • 浅谈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的继承关系图如下

    在实际开发中,我们写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);
        }
    }
    
  • 相关阅读:
    internet连接共享被启用时 出现了一个错误 (null)
    mybatis01-1测试
    配置没有问题,虚拟机Ubuntu系统ifconfig没有网卡信息
    Ubuntu启动Apache
    VM虚拟机Linux系统eth0下面没有inet和inet6
    jQuery通过id和name获取值的区别
    1.4.3 ID遍历爬虫(每天一更)
    mysql中的SQL语句执行的顺序
    Mecanim动画系统丶
    html中常见的行内元素和块级元素,还有常见的行内块元素
  • 原文地址:https://www.cnblogs.com/lasnitch/p/11457045.html
Copyright © 2011-2022 走看看