Java Maven、Servlet、Filter

一,Maven的简单使用

1.1 Maven的概念

不使用Maven引入依赖存在的问题:

  1. jar 包的重复引入

  2. jar 包版本的统一不方便

  3. jar 包版本的升级

使用Maven的好处:

  1. 对依赖进行了统一的管理

  2. 对项目进行了管理

Maven所存储的依赖在两种不同的仓库中:

  1. 本地库

    1. 当前计算机

  2. 远程库

    1. 伺服(额外配置)

    2. 公共库(额外配置)

    3. 中央库(默认配置)

项目中获取依赖的流程:

在项目的pom.xml文件中写上依赖的gav后,idea会从本地库中查找是否有指定的依赖,如果有则使用,如果没有则看是否配置了公共库,如果配置了公共库,就从公共库中将这个依赖下载到本地库中,如果没有配置公共库或者公共库中没有该依赖,则去中央库中下载到本地。

1.2 Maven的安装和配置

  1. 准备工作

    1. apache-maven-3.5.0-bin.zip:Maven软件

    2. maven_repository.zip:Maven的本地仓库

    3. 将它们解压到指定目录中

  2. 打开maven下conf目录下的settings.xml

  3. 修改settings.xml中的localRepository标签体内的内容为本地仓库的根目录

  4. 配置Maven的环境变量

    1. 变量名:MAVEN_HOME

    2. 变量值:C:\mine\Java\maven\apache-maven-3.5.0,Maven软件的根目录

    3. 在path中配置 %MAVEN_HOME%\bin

    4. 在cmd中输入 mvn -v来校验maven的安装和配置是否成功

1.3 在idea中配置maven

 

1.4 在idea中创建maven工程

 

 

1.5 maven工程的项目结构

 

  1. src\main\java:存放源代码

  2. src\main\resources:存放配置文件

  3. src\test\java:存放测试代码

  4. pom.xml:project object model,它是maven工程的核心文件,它管理依赖,定义了项目的构建方式,以及项目的结构

二,服务器

2.1 服务器的概念

服务器:安装了服务器软件的计算机

web服务器软件:

作用:接收用户的请求,作出响应

常见的web服务器:

  1. tomcat:Apache的中小型JavaEE服务器

  2. WebLogin:Oracle公司的大型JavaEE服务器

  3. WebSphere:IBM公司的大型JavaEE服务器

2.2 tomcat服务器

tomcat服务器:

  1. 下载:Apache Tomcat® - Welcome!

  2. 安装:解压

  3. 目录结构

     

    1. bin:包含可执行文件,例如:startup.bat、shutdown.bat
    2. conf:包含配置文件,例如:web.xml、server.xml
    3. lib:包含tomcat所依赖的jar包
    4. logs:包含日志文件
    5. temp:临时文件
    6. webapps:存放web工程
    7. work:包含项目在运行时产生的文件,例如:jsp编译后的文件

启动服务器:运行bin目录下的startup.bat

注:服务器不能重复开启,服务器的默认端口号是8080,开启了一次服务器后,端口号就被占用了,所以不能重复开启

服务器启动失败的情况:

  1. 报错:原因是重复开启了,端口号冲突

  2. 一闪而过:原因是没有正确的配置Java的环境变量

关闭服务器:

  1. 点x,关闭窗口

  2. 运行shutdown.bat

  3. ctrl+c

访问服务器

在浏览器中输入:http://localhost:8080

注:如果在server.xml中将默认的端口号从8080改成80,那么访问服务器时就不需要输入端口号了

2.3 在idea中搭建tomcat

web.xml的配置

<?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">
</web-app>
​
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns="http://java.sun.com/xml/ns/javaee"
      xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
</web-app>

三,Servlet

3.1 概念和基本使用

Servlet的全称Server Applet,运行在服务器的程序,用于接收客户端的请求,并对客户端作出响应

Servlet本质是一个接口,它定义了Java类能被服务器访问到的规则

准备工作:

引入Servlet的依赖,在pom.xml中引入:

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

使用步骤:

  1. 定义类,实现Servlet接口

  2. 重写方法

  3. 在web.xml中注册Servlet

    <servlet>
        <servlet-name>TestServlet</servlet-name>
        <servlet-class>com.qf.servlet.TestServlet</servlet-class>
    </servlet>
    ​
    <servlet-mapping>
        <servlet-name>TestServlet</servlet-name>
        <url-pattern>/test</url-pattern>
    </servlet-mapping>

3.2 Servlet的执行原理

  1. 当客户端向服务器发起请求时,tomcat服务器会解析请求的地址

  2. 在web.xml中查找,是否有某一个 url-pattern 标签体中的内容与请求的地址相同

    1. 如果没有,则发生404(资源找不到)

    2. 如果有,会继续查找该url-pattern所在的servlet-mapping标签中的servlet-name标签体中的值是否与某一个servlet标签中的servlet-name标签中的值相同,如果没有则报错;如果有就由这个servlet标签下的servlet-class中的java类来接收

3.3 Servlet的注解

我们可以直接通过注解@WebServlet("表单提交的路径")来完成Servlet的映射配置

@WebServlet("/save")
public class SaveServlet implements Servlet{
}

注:servlet的版本至少是3及以上

3.4 Servlet的生命周期

  1. init():初始化Servlet时执行,第一次访问时执行,只执行一次

  2. service():提供服务,每次访问时都会执行,该方法中提供了tomcat所封装好的请求对象和响应对象

  3. destroy():销毁servlet,只有正常关闭服务器时才执行

3.5 Servlet的体系结构

HttpServlet 继承 GenericServlet 实现 Servlet

HttpServlet的使用步骤:

  1. 定义类,继承HttpServlet

  2. 重写doGet()、doPost()

注:

  1. doGet()、doPost()这两个方法专门针对不同提交方法进行处理;如果提交方式是post,由doPost()方法来处理,如果提交方式是get,由doGet()方法来处理

  2. 如果指定的提交方式没有对应的doXxx(),会发生405,Method Not Allowed

3.6 url-pattern的配置

  1. 完全匹配:/xxx

    例如:url-pattern配置的值是/t,那么访问时必须访问/t

  2. 扩展名匹配:*.xxx

    例如:url-pattern配置的值是*.jsp,那么访问时只要扩展名是.jsp的文件都由指定的Servlet来处理

  3. 目录匹配:/xxx/*

    例如:url-pattern配置的值是/abc/*,那么访问的只要是abc目录下的任何一个资源时都由这个Servlet来处理

  4. 匹配所有:/*

    如果访问的是Servlet,并且已经有了自己的url-pattern,那么访问的就是该Servlet;除此以外,访问的都是配置了/*的Servlet

注:目录匹配和扩展名匹配不能混合使用

2.7 欢迎页面(首页)的配置

<welcome-file-list>
 <welcome-file>index.html</welcome-file>
 <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

注:

  1. 如果自己的项目中,没有配置welcome-file-list,那么会根据tomcat默认配置的welcome-file-list来设置首页;如果自己手动配置了,那么项目的首页就只遵循自己配置的

  2. welcome-file-list中,系统会从上到下依次查找是否存在该页面,如果存在就将该页面设置成主页,然后不再继续查找;如果没有找到任何一个页面在welcome-file-list配置中则404

作用:配置默认的首页,在访问首页时,不需要明确首页的路径就能直接访问

四,Filter

1.1 概念

生活中的过滤器:空气净化器、纱窗

web工程中的过滤器:当访问服务器的某些资源时,过滤器可以把请求拦截下来,完成一些特定的功能

过滤器的作用:统一的编码设置,登录验证

1.2 使用步骤

  1. 定义类实现Filter接口

  2. 重写方法

  3. 在web.xml中配置要过滤的资源

<filter>
    <filter-name>TestFilter</filter-name>
    <filter-class>com.qf.filter.TestFilter</filter-class>
</filter>
​
<filter-mapping>
    <filter-name>TestFilter</filter-name>
    <url-pattern>/t</url-pattern>
</filter-mapping>
  1. 放行,在doFilter()方法中,使用

1.3 过滤器的执行流程

  1. 启动服务器,执行init()初始化过滤器

  2. 当访问配置了要拦截的路径时,该访问动作会被指定的过滤器拦截下来,执行doFilter()

    注:每次访问指定的要拦截的资源时,都会执行doFilter()

  3. 执行功能的增强

  4. 执行放行:chain.doFilter(req,resp)

  5. 访问到目标资源

  6. 执行放行后的语句

1.4 过滤器链

一个资源被多个过滤器过滤

执行顺序:

过滤器1 -> 过滤器2 -> 目标资源 -> 过滤器2 -> 过滤器1

1.5 过滤路径的配置

  1. 过滤指定资源:/资源名

  2. 过滤指定目录下的资源:/目录名/*

  3. 过滤指定扩展名的资源:*.扩展名

  4. 过滤所有资源:/*

过滤器也可以使用注解@WebFilter来配置过滤的路径

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值