zoukankan      html  css  js  c++  java
  • 你知道可以通过网址访问的Servlet如何实现吗?


    如需要跟多资料请点击下方图片⬇(扫码加好友→备注66,不备注拒绝添加哦)
    image
      Servlet 是 Server Applet 的缩写,是服务端小程序的意思。使用 Java 语言编写的服务器端程序,主要功能在于交互式地浏览和生成数据,生成动态Web内容,Servlet 主要运行在服务器端,并由服务器调用执行,是一种按照 Servlet 标准来开发的类。 是 SUN 公司提供的一门用于开发动态 Web 资源的技术。(言外之意:要实现 web 开发,需要实现 Servlet 标准)

      Servlet 本质上也是 Java 类,但要遵循 Servlet 规范进行编写,没有 main() 方法,它的创建、使用、销毁都由 Servlet 容器进行管理(如 Tomcat)。(言外之意:写自己的类,不用写 main 方法,别人自动调用)

      Servlet 是和 HTTP 协议是紧密联系的,其可以处理 HTTP 协议相关的所有内容。这也是 Servlet 应用广泛的原因之一。

      提供了 Servlet 功能的服务器,叫做 Servlet 容器,其常见容器有很多,如 Tomcat, Jetty, WebLogic Server, WebSphere, JBoss 等等。

    Servlet实现方式

    • 创建动态 web 项目
    • 新建类
    • 实现 Servlet 规范
    • 重写 service 方法
    • 配置 web.xml
    • 发布项目
    • 启动项目
    • 访问并查看结果

    案例实操

    1)创建动态 web 项目

    2)新建类

    package com.xxx.web;
    
    public class HelloWeb {
    
    }
    

    3)实现 Servlet 规范

    实现 Servlet 规范,即继承 HttpServlet 类,并导入相应的包,该类中已经完成了通信的规则,我们只需要进行业务的实现即可。

    package com.xxx.web;
    
    import javax.servlet.http.HttpServlet;
    
    public class HelloWeb extends HttpServlet {
    
    }
    

    4)重写 service 方法

    满足 Servlet 规范只是让我们的类能够满足接收请求的要求,接收到请求后需要对请求进行分析,以及进行业务逻辑处理,计算出结果,则需要添加代码,在规范中有一个叫做 service 的方法,专门用来做请求处理的操作,业务代码则可以写在该方法中。

    package com.xxx.web;
    
    import java.io.IOException;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class HelloWeb extends HttpServlet {
    
    	@Override
    	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    		System.out.println("I received a request");
    		resp.getWriter().write("<h1>Hello World!</h1>");
    	}
    
    }
    

    5)配置 web.xml

    在完成好了一切代码的编写后,还需要向服务器说明,特定请求对应特定资源,此时通过一个名叫 web.xml 的配置文件完成。

    <!-- 配置servlet -->
    <servlet>
      <servlet-name>helloweb</servlet-name><!-- 给服务器看的 -->
      <servlet-class>com.xxx.web.HelloWeb</servlet-class><!-- servlet对应的资源路径 -->
    </servlet>
    <servlet-mapping>
      <servlet-name>helloweb</servlet-name><!-- 给服务器看的 -->
      <url-pattern>/helloweb</url-pattern><!-- 给浏览器看的,对外访问路径 -->
    </servlet-mapping>
    

    6)发布项目

    到此,需要编写和配置的地方已经完成,项目已经完整了,但是如果需要外界能够访问, 还需要将项目发布到服务器上并运行服务器。

    7)启动项目

    看到类似一长串信息表示启动成功,接下来就可以访问项目了

    8)访问并查看结果

    在项目正确发布到服务器上之后,用户即可通过浏览器访问该项目中的资源。注意 url 的格式正确,tomcat 的端口为 8080。http://localhost:8080/hw/helloweb,页面结果

    后台结果

    到这里我们的第一个 Servlet 就实现了!

    扩展

    工作原理

    执行过程

    客户端发出请求根据 web.xml 文件的配置,找到对应的 url-pattern 读取其中的值,找到对应的 servlet-name,找到指定的 class 并加载执行该 class,返回结果由 Web 服务器将结果响应给客户端

    B-1601199721812)]

    执行过程

    客户端发出请求根据 web.xml 文件的配置,找到对应的 url-pattern 读取其中的值,找到对应的 servlet-name,找到指定的 class 并加载执行该 class,返回结果由 Web 服务器将结果响应给客户端

  • 相关阅读:
    spark集群搭建(三台虚拟机)——kafka集群搭建(4)
    spark集群搭建(三台虚拟机)——zookeeper集群搭建(3)
    MySQL忘记密码
    [ERROR]Unable to locate package
    spark集群搭建(三台虚拟机)——hadoop集群搭建(2)
    spark集群搭建(三台虚拟机)——系统环境搭建(1)
    secureCRT连接虚拟机
    virtualBox里Ubuntu设置静态IP
    一文读懂JS中的原型和原型链(图解)
    完整原型链详细图解之JS构造函数、原型 原型链、实例化对象
  • 原文地址:https://www.cnblogs.com/lezijie/p/13740917.html
Copyright © 2011-2022 走看看