IDEA配置Web开发环境与Servlet基础

IDEA集成Tomcat
Servlet测试
web.xml配置与Servlet访问原理
Servlet生命周期与生命周期方法
Servlet注解配置省略web.xml
Servlet体系结构
url-pattern的三种配置方式
设置Tomcat资源更新方式

IDEA集成Tomcat

在这里插入图片描述
在这里插入图片描述
配置完之后再点configure是这样的
在这里插入图片描述
然后新建项目
在这里插入图片描述
在这里插入图片描述
然后右键运行
在这里插入图片描述
理论上来说每一次修改内容之后都需要重新启动Tomcat,为了更好的学习可以设置项目为热部署
在这里插入图片描述
在这里插入图片描述

Servlet测试

新建一个类实现Servlet接口

package Servlet.firstServlet;
import javax.servlet.*;
import java.io.IOException;
public class ServletTest 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("Hello Servlet");
    }
    @Override
    public String getServletInfo() {
        return null;
    }
    @Override
    public void destroy() {

    }
}

找到web.xml进行配置
在这里插入图片描述
然后重启Tomcat,在浏览器访问写好的Servlet
在这里插入图片描述
此时控制台就出现了我们的语句
在这里插入图片描述
并且你多刷新几次就会多出来几次
在这里插入图片描述
如果看这个路径不舒服也可以去修改一下
在这里插入图片描述
这样路径就变了
在这里插入图片描述

web.xml与Servlet访问的关系

在这里插入图片描述
访问Servlet的路径为 :
http://localhost:8080/XiongYunFan/ServletTest1
首先浏览器通过http://localhost:8080找到Tomcat,然后通过XiongYunFan,也就是我们配置的虚拟目录名找到对应的项目,在该项目下找ServletTest1.先去解析web.xml,这里对应的就是url-pattern的内容,然后再去找和它一组的servlet-name,然后根据servlet-name 的内容相同就能找到servlet里面的servlet-name,进而找到同一组的servlet-class,也就是我们所编写的Servlet的实现类。找到实现类之后将全类名对应的字节码通过反射(Class.forName)加载进内存,然后创建它的对象(cls.newInstance()),通过对象调用方法

Servlet生命周期与生命周期方法

Servlet的生命周期方法有三个,init()、serveice()、destroy()

1、被创建:执行init()方法,只执行一次。默认情况下,在第一次被访问的时候创建,也可以指定为在服务器启动的时候就创建
在这里插入图片描述
第一次被访问时才创建,值为负整数;在服务器启动时就创建,值为0或正整数。此外Servlet的init方法只执行一次,说明对象只创建一个,也就是说Servlet是单例模式的,多个用户同时访问时可能存在线程安全问题,所以尽量不要在Servlet中定义成员变量或者定义之后不要去修改值
2、服务中:执行service()方法,每次访问都会执行
3、关闭服务器:只有正常关闭服务器,才会执行destroy()方法。在Servlet销毁之前执行,一般用于释放资源

package Servlet.firstServlet;
import javax.servlet.*;
import java.io.IOException;
public class ServletLife implements Servlet {
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("初始化方法,只会执行一次");
    }
    @Override
    public ServletConfig getServletConfig() {
        return null;
    }
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("服务方法,每次访问都会执行");
    }
    @Override
    public String getServletInfo() {
        return null;
    }
    @Override
    public void destroy() {
        System.out.println("销毁方法,在服务器正常关闭的时候执行一次");
    }
}

在这里插入图片描述

Servlet注解配置省略web.xml

Servlet3.0版本之后可以不创建web.xml了,可以支持注解配置
而且我们只需要写一个url-parttern了
在这里插入图片描述
访问该Servlet
在这里插入图片描述
在这里插入图片描述

另外这个注解还可以简化,直接写内容
在这里插入图片描述

Servlet体系结构

Servlet是一个接口,下面有两个实现类,GenericServlet和HttpServlet,其中HttpServlet又继承了GenericServlet。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
使用HttpServlet或者GenericServlet只需要完成service方法,不必整出那么多的方法了。那是因为这两个类给定了默认的方法,也是空实现
在这里插入图片描述
只有service方法还是抽象的,需要我们实现
在这里插入图片描述

我们要使用的是HttpServlet,他就能够完成所有的业务需求。并且它的service()方法会根据请求方式的不同去调用对应的方法
在这里插入图片描述

url-pattern的三种配置方式

1、一个Servlet可以有多个别名
在这里插入图片描述
2、路径可以有多层,对应的访问时也需要访问对应的层级
在这里插入图片描述
3、使用通配符,则该路径下任意名字均指向该Servlet

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

每一次对项目中的文件做完改动都需要重启服务器十分麻烦,对于学习阶段来说也完全没必要,可以通过设置实现热部署
在这里插入图片描述
在这里插入图片描述
设置完要手动重启一下Tomcat服务器生效

发布了17 篇原创文章 · 获赞 5 · 访问量 3359

猜你喜欢

转载自blog.csdn.net/weixin_42992842/article/details/104169624