zoukankan      html  css  js  c++  java
  • Java之 Servlet

    0x01、服务器安装

    ​ 我所使用的:jdk8、mysql5、tomcat8

    (一)、tomcat下载

    1、先去官网下载:http://tomcat.apache.org/,选择tomcat8版本(红框所示)

    选择要下载的文件(红框所示):

    tar.gz 文件 是linux操作系统下的安装版本

    exe文件是window操作系统下的安装版本

    zip文件是window操作系统下压缩版本(我们选择zip文件)

    (二)、tomcat安装

    1. 直接解压当前这个tomcat压缩包:(不要有中文,不要有空格)

    2. 配置环境变量:

      tomcat运行依赖于java环境

    (三)、启动与关闭tomcat服务器

    1. 启动tomcat服务器

      查找tomcat目录下bin目录,查找其中的startup.bat命令,双击启动服务器:

    2. 关闭tomcat服务器

    (四)、Tomcat部署WEB项目

    2.2.1 方式一:直接发布

    ​ 只要将准备好的web资源直接复制到tomcat/webapps文件夹下,就可以通过浏览器使用http协议访问获取

    2.2.2方式二: 虚拟路径的方式发布项目
    1. 第一步:在tomcat/conf目录下新建一个Catalina目录(如果已经存在无需创建)

    1. 第二步:在Catalina目录下创建localhost目录(如果已经存在无需创建)

    1. 第三步:在localhost中创建xml配置文件,名称为:second(注:这个名称是浏览器访问路径)

    1. 第四步:添加second.xml文件的内容为: docBase就是你需要作为虚拟路径的项目的路径

      <?xml version = "1.0" encoding = "utf-8"?>
      <Context docBase="G:/myApp" />
      

    2. 第五步:直接访问(通过写配置文件的路径来访问):

      http://localhost:8080/second/a.html (second就是配置文件的名字, 映射成了myApp)

    0x02、Servlet

    Servlet作用:

    1. 用来接收、处理客户端请求、响应给浏览器的动态资源。

    2. 但servlet的实质就是java代码,通过java的API动态的向客户端输出内容

    (一)、配置文件方式实现

    • 在web.xml 中配置(该文件在web/WEB-INF 文件夹下
    <web-app>
      <display-name>Archetype Created Web Application</display-name>
      <servlet>
        <!--servlet-name: 名字 随便取; 一般就是类名-->
        <servlet-name>ServletDemo01</servlet-name>
        <!--servlet-class:Servlet这个类的全限定名-->
        <servlet-class>com.itheima.day01.ServletDemo01</servlet-class>
      </servlet>
      <servlet-mapping>
        <!--servlet-name: 必须和servlet标签里面的servlet-name一样-->
        <servlet-name>ServletDemo01</servlet-name>
        <!--url-pattern: 配置访问的路径-->
        <url-pattern>/demo01</url-pattern>
    </web-app>
    
    url-pattern配置方式共有三种: 
    
    1、完全路径匹配:  以 ‘/’ 开始      注: 访问的路径不能多一个字母也不能少一个
    
    例如: 配置了/demo01  请求的时候必须是: /demo01  
    
    
    2、目录匹配 ‘以 / 开始需要以 * 结束’.    注: Servlet里面用的 不多, 但是过滤器里面通常就使用目录匹配 
    
    例如:  配置/* 访问/a, /aa, /aaa; 配置 /aa/*  访问 /aa/b , /aa/cc
    
    
    3、扩展名匹配 ‘不能以 / 开始, 以 * 开始的 ’
    
    ​```
    例如:  *.action;  访问: aa.action, bb.action, c.action;   错误写法: /*.do, 不可以写*.jsp,*.html
    ​```
    
    

    最后我们在doGet中输出执行,这样的话,只要我们访问这个Servlet就会在服务器输出执行,来证明

    注意的地方:

    • 一个路径只能对应一个servlet, 但是一个servlet可以有多个路径
    • tomcat获得匹配路径时,优先级顺序:完全路径匹配> 目录匹配 > 扩展名匹配

    (二)、注解方式实现

    最后使用@WebServlet注解配置即可

    @WebServlet("/demo01")
    

    在我们的项目路径下访问demo01

    (三)、Servlet 执行原理

    通过上述流程图我们重点需要掌握如下几个点:

    • Servlet对象是由服务器创建(反射)
    • request与response对象也是由tomcat服务器创建
    • service()方法也是服务器调用的

    Servlet生命周期方法

    servlet从创建到销毁的过程

    • 出生:(初始化)用户第一次访问时执行。

    • 活着:(服务)应用活着。每次访问都会执行。

    • 死亡:(销毁)应用卸载。

    serrvlet生命周期方法:

    init(ServletConfig config)
    
    service(ServletRequest req, ServletResponse res)
    
    destroy()
    

    默认情况下, 来了第一次请求, 会调用init()方法进行初始化【调用一次】

    任何一次请求 都会调用service()方法处理这个请求

    服务器正常关闭或者项目从服务器移除, 调用destory()方法进行销毁【调用一次】

  • 相关阅读:
    安全测试全面总结3基于OWASPZAP进行接口安全测试
    wiki还是复利的思想,不断的更新迭代,需要学习并实践
    redis竟然还有哨兵模式,所以更加不能再扩展了,必须要在已有的基础上进行深挖!!!
    什么是SonarQube?
    安全测试全面总结1OWASP服务端安全测试体系
    jmeter全面总结4压测结果分析
    安全测试全面总结7 XSS漏洞
    jmeter全面总结5jmeter分布式
    jmeter全面总结1介绍和安装
    pytest的inifile文件配置
  • 原文地址:https://www.cnblogs.com/0x7e/p/14328518.html
Copyright © 2011-2022 走看看