跟随学习笔记(打卡第一天,试图尝试中)

本文详细介绍了如何在IntelliJIDEA中使用Maven创建Web项目,包括使用骨架和不使用骨架的方法,以及如何集成Tomcat和配置Servlet。还涉及了Servlet的基本概念和生命周期,以及Maven的Tomcat插件配置。
摘要由CSDN通过智能技术生成

 一.Idea中创建Maven Web项目

1.使用骨架创建项目

        点击files->new ->new project->出现页面如下

在左侧选择Maven

右侧选择Create from archetype->org.apache.maven.archetypes:maven-archetype-webapp

然后点击右下角的next

然后点击finish(名字随意)

然后会出现项目——如图示

点击左侧的pom.xml

其中在右侧的<packaging>war</packaging>其中<packaging>是打包方式打包方式有两种一种是jar:默认值;一种是war:Web项目打包用的

骨架创建之后会出现如下图所示界面(如果是第一次安装该界面下的src可能没有出现,需要等待idea安装相关的包)

其中的web.xml如下图所示

在这个骨架main文件夹里面缺少Java文件夹和resources文件夹

补充Java文件:点击main文件->鼠标右键->new->Driectory->选择图片下面的两个一个蓝色的java图标一个是resources资源包

以上就是使用骨架的方式

2.不使用骨架创建Maven Web项目

点击files->new ->new moudles->出现页面如下

直接next然后完成(名字随意)。

然后出现如下页面:

点击左侧的untitled16(我自己创建的名字)里的pom.xml并添加

<packaging>war</packaging>

<properties>
    <maven.compiler.source>8</maven.compiler.source>
    <maven.compiler.target>8</maven.compiler.target>
</properties>

点击file里面的Project Structure

 出现如下界面

选择左侧的Facets,观察是否出现如下三点

选择的Web是不是你所选择项目中的Web如果没有点击左上方的“+”号

选择的Web Resources Directory是否存在红色现象,如果存在红色现象点击右侧“+”号

请查看Deployment Descriptors里面是否有Web模块类型如下图,没有的话点击右边“+”号

最终发现没有红色->进行下一步

如果没有任何差错,就证明你完成啦!!!

二.idea中使用Tomcat

之前打包采用war包的方式,tomcat包从官网上面进行下载,然后解压到任意的目录文件下(只要你记得的话)(基于上面的无骨架安装Maven Web框架)

点击项目文件->右键->选择run maven ->选择package(因为之前打过包了)

在控制台会输出这样

如果出现意外,发现红点就单点file里的蓝色位置

查看右侧的两个Path是否一致,若不一致就点击“-”删除,再点击加号“+”进行添加(我本人采用无骨架的项目是untitled16有骨架的是untitled15)

要配置Tomcat点击右侧的配置项

绿色锤子旁边的Add Configuration

出现如下界面,点击“+”号,下拉

选择蓝色位置,然后配置Tomcat(是在系统环境变量配好的前提下)

第一个Application server中要记得选择Tomcat的版本右侧的Configuration是文件路径

然后点击Deployment选择“+”号,

然后选择蓝色位置

然后点击下方的apply(应用),之后点击OK

整个页面就是这样的

进行简单的尝试

进行简单的创建a.html

点击右侧的绿色三角形或者箭头之后进行测试

单独的话会是404 not found

因为路径错误

按照课程的说法是在上方的网址路径上添加对应的文件名即可成功,但是我的不太一样

我的这个项目的端口并不是8080,反而是这样的端口64332

三.tomcat的Maven插件

首先,要栽pom.xml中添加如下代码:(在<build>标签中)

<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <port>80</port>
        <path></path>
    </configuration>
</plugin>

然后点击项目右键的run maven 的tomcat7开头的选项,然后重启

记得关掉之前的端口(这个插件只支持tomcat7版本) 

四.Servlet

        Servlet是Java提供的一门动态Web资源开发技术。

        Servlet(Server Applet),全称Java Servlet,没有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。

         Servlet运行于支持Java的应用服务器中。从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

        Servlet是JavaEE规范之一,其实就是一个接口,我们需要定义Servlet类来实现Servlet接口

可以查看JavaEE的api文档

Servlet的快速入门

创建web项目,导入Servlet依赖坐标(pom.xml文件)

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

 创建:定义一个类,实现Servlet接口,并重写接口中所有方法,并在service方法中输入一句话

public class ServletDemo1 implements Servlet{
    public void service();
}

配置:在类上使用@WebServlet注解,配置该Servlet的访问路径

import javax.servlet.annotation.WebServlet;

@WebServlet("/demo1")
public class ServletDemo1 implements Servlet{
    public void service();
}

访问:启动Tomcat,浏览器输入URL访问该Servlet

http://localhost:8080/web-demo/demo1 

例子过程

在src->main->java->创建一个.class文件,文件名自定,我的叫做ServletDemo1.class

Servlet这个接口可以直接通过implements methods来进行一系列的书写,简化操作

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

@WebServlet("/demo1")
public class ServletDemo1 implements Servlet {


    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("servlet hello world");

    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {

    }

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

    @Override
    public void destroy() {

    }
}

然后点击整个项目的run maven->tomcat7开头的

因为我的Maven插件安装失败,所以无法给出运行正确的局面。

Servlet执行流程

 浏览器发出请求->服务器(端口号:接口名/.class文件)

request里面放的是请求的数据,response放的是响应的数据

Servlet由Web服务器创建,Servlet方法由Web服务器调用

Servlet必须调用Servlet接口并复写方法。

Servlet的生命周期

在Web服务器中,生命周期由容器来管理

加载和实例化:默认情况下,当Servlet第一次被访问时,由容器创造Servlet对象。

初始化:在Servlet实例化之后,容器将调用Servlet的init()方法初始化这个对象,完成一些初始化工作,只调用一次。

public void init(ServletConfig servletConfig) throws ServletException {

}

请求处理:每次请求Servlet时,sevlet容器都会调用Servlet的service()方法对请求进行处理,可以多次调用。

public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
    System.out.println("servlet hello world");
}

服务终止:当需要释放内存或者容器关闭时,容器就会调用Servlet实例的destroy()方法完成资源的释放。在该方法调用之后,容器就会释放这个Servlet实例,该实例随后会被Java的垃圾收集器所回收。

public void destroy() {

}

获取ServletConfig对象

public ServletConfig getServletConfig() {
}

获取Servlet信息

public String getServletInfo() {
    return null;
}

关于Servlet出现了部分错误,原因是tomcat里的Servlet-API并未配置 ,可以通过http://t.csdnimg.cn/hWRVZ

来进行解决 

错误图像:

Servlet体系结构 

Servlet-->Servlet体系根接口

GenericServlet-->Servlet抽象实现类

HttpServlet-->对HTTP协议封装的Servlet实现类

对于B/S架构的Web项目,都是针对HTTP协议,所以我们字定义Servlet,会继承HttpServlet

例如这样:

运行Tomcat

记得在打开的网页网址后缀加上自己起的@WebServlet("/demo")里的demo名字

在控制台下看到结果

为什么HttpServlet要有不同的方式调用请求?

要处理逻辑就是获取请求参数的,不同的请求方式请求的参数位置不一样,根据请求方式的不同进行分别的处理,请求方式需要借助ServletRequest对象。

HttpServlet使用步骤

1.继承HttpServlet

2.重写doGet和doPost方法

HttpServlet原理

获取请求方式,并根据不同的请求方式,调用不同的doXxx方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值