Servlet学习笔记-上篇


前言

这一篇文章主要介绍了IDEA社区版和Tomcat的集成(利用maven),Servlet的介绍以及三种创建方式。


一、IDEA社区版和Tomcat的集成(借助maven)

1. 创建maven项目,模板选择如下图所示:
在这里插入图片描述
2. 创建完成后,在pom.xml中添加Tomcat插件:
(这里的tomcat选择的是7的版本,官方没有8的插件,但是maven的仓库里面有一个8的插件,有需要的可以去找一下,因为是学习阶段,所以使用了网上大多数人选择的7的版本)

<plugin>
	<groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.1</version>
    <configuration>
    	<port>8080</port>
    	<!--这里设置了path,访问的时候地址就是:http://localhost:8080/java_web_day01/xxx-->
    	<path>/java_web_day01</path>
    	<uriEncoding>UTF-8</uriEncoding>
    	<server>tomcat7</server>
    </configuration>
</plugin>

3. 在pom中添加servlet

<dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>
</dependency>

4. 配置Tomcat运行
点击这里的位置,没有添加过的话,应该是一个add。

添加Tomca运行,保存后,上图运行的位置就会出现Tomcat7了。
在这里插入图片描述

5. 然后还需要配置下web.xml,如下:
(这里因为我用的servlet3.1,所以这里的版本也写的3.1,关于这段配置,网上有一篇博客有详细的对应表,可以去查一下。如果这里不配置的话,会有报红的,虽然不知道有没有影响,但是还是习惯配置好。ps. 如果添加了配置报红的话,可以选中报红的第二个链接,然后在IDEA中点击那个小灯泡的提示,选择Fetch external resources,就没有报红了。)

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" 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 "
         metadata-complete="true">
    <display-name>Web Application</display-name>
</web-app>

到这里,配置基本上已经完成了,点击运行的部分,就可以在IDEA里面启动Tomcat的服务器了。

二、Servlet基础

1.Servlet的定义

运行在web服务器中的小型java程序。通常通过HTTP(超文本传输协议)接收和响应来自web客户端的请求。

2. servlet生命周期

实例化 --> 初始化 --> 服务 --> 销毁
(实例化由构造方法实现,初始化由init方法实现,服务是service方法,销毁是destroy方法)

3.Servlet的三种创建方式

方式一:实现servlet接口
(当服务器启动,实例化和初始化方法被调用,访问链接,调用服务方法,如果卸载应用,那么就调用destroy方法;关于卸载,需要在Tomcat的manager页面中去卸载,但是由于这里用的是maven集成的Tomcat,无法打开那个页面,但是可以通过maven打war包,放到本地的Tomcat服务器里面去启动,来卸载,并查看destroy的调用结果。)

public class ServletStudy implements Servlet {

    public ServletStudy(){
        //实例化
        System.out.println("==============实例化===============");
    }
    @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("hello servlet day01");
        System.out.println("==============服务方法===============");
    }
    @Override
    public String getServletInfo() {
        //允许servlet返回自身的基本信息,比如作者,版本和版权
        return null;
    }
    @Override
    public void destroy() {
        //销毁
        System.out.println("==============销毁了===============");
    }
}
}

方式二:继承GenericServlet类(适配器模式)

public class GenericServletStudy extends GenericServlet {
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("GenericServlet......");
    }
}

方式三:继承HttpServlet类(模板方法设计模式)
(在service方法中,会区分get,post等方法,继承的类重写doGet,doPost,最终会根据请求方式调用对应的重写的方法,这种方式也是最常用的方式)

public class HttpServletStudy extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("================get=============");
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("================post=============");
    }
}
4.web.xml的配置2

我们在配置web项目的时候,有配置过web.xml,现在的配置是为了让我们启动服务的时候,访问链接,可以找到对应的servlet。

 <!--创建一个Servlet实例-->
    <servlet>
        <servlet-name>servletStudy</servlet-name>
        <servlet-class>com.web.servlet.ServletStudy</servlet-class>
        <!--这里写的是对应的servlet的全类名-->
    </servlet>

    <!--给Servlet映射一个可供客户端访问的URI-->
    <servlet-mapping>
        <servlet-name>servletStudy</servlet-name>
        <url-pattern>/demo1</url-pattern>
    </servlet-mapping>
    <!--Servlet实例和URI的名字要一致,访问是根据URI的名字找到Servlet的实例的-->

总结

本篇文章讲解了如何在IDEA社区版集成Tomcat,主要是利用maven来实现的,也有从IDEA插件里面去下载一个Tomcat的插件实现的方法,也有很多博客写过,因为没有尝试,所以就不写啦。介绍了三种创建Servlet的方式,继承HttpServlet类是最常用的,因为它里面有区分get,post等请求方式,这和我们现在常见的Http请求的操作是最吻合的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值