(JavaWeb)Servlet-01

概念

运行在服务器端的小程序
在这里插入图片描述
* servlat是一个接口就是规则,定义了Java类别浏览器访问到(Tomcat识别)的规则
* 自定义一个类,实现Servlat接扣,复写方法–>这就是serclat

入门

  • 创建Java EE项目
    • 已经创建好
    • 在这里插入图片描述
  • 定义类,实现Servlat接口
    • 在src下创建一个包
    • 在这里插入图片描述
    • 在这里插入图片描述
  • 实现接口中的抽象方法
package cn.zcx.web.servlet;

import javax.servlet.*;
import java.io.IOException;

public class ServletDemo1 implements Servlet {
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }
    // 提供服务方法
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("你好。servlet");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {

    }
}

  • 配置servlet
    • 在WEB-INF中
    • 在这里插入图片描述
    • 1为虚拟名称
    • 2为实际路径
  • 做映射
    • 在这里插入图片描述
    • 1为撒还能一步配的
    • 2为上一个配置访问路径
    • demo01代表上一个的路径
    • /demo01为通过浏览器访问地路径
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

    <!-- 配置Servlet-->
    <servlet>
        <servlet-name>demo01</servlet-name>
        <servlet-class>cn.zcx.web.servlet.ServletDemo1</servlet-class>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>demo01</servlet-name>
        <url-pattern>/demo01</url-pattern>
    </servlet-mapping>
            
</web-app>

访问

在这里插入图片描述

  • 访问/demo01 service方法被调用输出在控制台

执行原理

  1. 服务器接收请求后,解析请求URL,获取访问的Servlet资源路径
  2. 查找web.xml文件,是否有标签体内容
  3. 查找到后超找全类名
  4. Tomcat将字节码文件加载进内存并且创建对象
  5. 调用方法
    在这里插入图片描述

servlet中方法

三个重要方法(生命周期)

  1. init方法:
    在servlet被创建时执行,只执行一次。
    - 创建时间:默认第一次访问时Servlet被创建
    - 特殊创建时间:可以指定Servlet创建时机–在web.xml中编辑
    - 1. 在添加标签默认负数-1为在第一次被访问时创建
    - 2. 标签默认正数0/1为在创建服务器时创建
<!-- 配置Servlet-->
    <servlet>
        <servlet-name>demo02</servlet-name>
        <servlet-class>cn.zcx.web.servlet.ServletDemo02</servlet-class>
        // 在<servlet>添加<load-on-startup>标签默认负数-1为在第一次被访问时chuangjian 
		// <load-on-startup>标签默认正数0/1为在创建服务器时创建
        <load-on-startup>0</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>demo02</servlet-name>
        <url-pattern>/demo02</url-pattern>
    </servlet-mapping>

在这里插入图片描述
- 当多用户同时访问会出现线程安全问题—解决:尽量不要定义成员变量。定义成员变量不要对其修改值。
2. servlet方法
每一次Servlet被访问时执行
3. destroy方法
当服务器正常关闭时执行一次。
在Servlet被销毁之前执行用于释放资源

package cn.zcx.web.servlet;

import javax.servlet.*;
import java.io.IOException;

public class ServletDemo02 implements Servlet {
//    INIT方法当Servlet被创建时执行一次
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("init......");
    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }
//  servlet方法每次被访问时执行一次
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("servlet......");
    }

    @Override
    public String getServletInfo() {
        return null;
    }
//  destroy方法,当服务器正常关闭时执行一次。
    @Override
    public void destroy() {
        System.out.println("destroy......");
    }
}

在这里插入图片描述
两个方法

  1. ServletConfig方法
    Servlet的配置对象,需要自己实现
  2. getServletInfo方法
    获取Servlet信息。几乎不用。

Servlet3.0(为WEB.xml简化)

  • 好处:
    • 支持注解配置(可以不需要web.xml)
  • 步骤:
    1. 创建项目选择Servlet3.0以上版本,可以不创建WEB.XML
    2. 定义类实现Servlet接口
    3. 复写方法
    4. 在类上使用@WebServlet注解进行配置
      在这里插入图片描述
      @WebServlet(urlPatterns = “资源路径”)
      /@WebServlet(value= “资源路径”)
      /@WebServlet(“资源路径”)
      都可以

idea与tomcat相关配置

  • IDEA会为每一个tomcat部署的项目单独创立一份配置
    1. 在控制台Using CATALINA_BASE: “C:\Users\17567.IntelliJIdea2019.2\system\tomcat\Tomcat_8_5_50_JavaWeb”
    2. 就是配置文件路径
  • 一个项目有两个地方存储, 工作空间 和 tomcat部署的web项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值