一,Maven的简单使用
1.1 Maven的概念
不使用Maven引入依赖存在的问题:
jar 包的重复引入
jar 包版本的统一不方便
jar 包版本的升级
使用Maven的好处:
对依赖进行了统一的管理
对项目进行了管理
Maven所存储的依赖在两种不同的仓库中:
本地库
当前计算机
远程库
伺服(额外配置)
公共库(额外配置)
中央库(默认配置)
项目中获取依赖的流程:
在项目的pom.xml文件中写上依赖的gav后,idea会从本地库中查找是否有指定的依赖,如果有则使用,如果没有则看是否配置了公共库,如果配置了公共库,就从公共库中将这个依赖下载到本地库中,如果没有配置公共库或者公共库中没有该依赖,则去中央库中下载到本地。
1.2 Maven的安装和配置
准备工作
apache-maven-3.5.0-bin.zip:Maven软件
maven_repository.zip:Maven的本地仓库
将它们解压到指定目录中
打开maven下conf目录下的settings.xml
修改settings.xml中的localRepository标签体内的内容为本地仓库的根目录
配置Maven的环境变量
变量名:MAVEN_HOME
变量值:C:\mine\Java\maven\apache-maven-3.5.0,Maven软件的根目录
在path中配置 %MAVEN_HOME%\bin
在cmd中输入
mvn -v
来校验maven的安装和配置是否成功
1.3 在idea中配置maven
1.4 在idea中创建maven工程
1.5 maven工程的项目结构
src\main\java:存放源代码
src\main\resources:存放配置文件
src\test\java:存放测试代码
pom.xml:project object model,它是maven工程的核心文件,它管理依赖,定义了项目的构建方式,以及项目的结构
二,服务器
2.1 服务器的概念
服务器:安装了服务器软件的计算机
web服务器软件:
作用:接收用户的请求,作出响应
常见的web服务器:
tomcat:Apache的中小型JavaEE服务器
WebLogin:Oracle公司的大型JavaEE服务器
WebSphere:IBM公司的大型JavaEE服务器
2.2 tomcat服务器
tomcat服务器:
安装:解压
目录结构
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,开启了一次服务器后,端口号就被占用了,所以不能重复开启
服务器启动失败的情况:
报错:原因是重复开启了,端口号冲突
一闪而过:原因是没有正确的配置Java的环境变量
关闭服务器:
点x,关闭窗口
运行shutdown.bat
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>使用步骤:
定义类,实现Servlet接口
重写方法
在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的执行原理
当客户端向服务器发起请求时,tomcat服务器会解析请求的地址
在web.xml中查找,是否有某一个 url-pattern 标签体中的内容与请求的地址相同
如果没有,则发生404(资源找不到)
如果有,会继续查找该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的生命周期
init():初始化Servlet时执行,第一次访问时执行,只执行一次
service():提供服务,每次访问时都会执行,该方法中提供了tomcat所封装好的请求对象和响应对象
destroy():销毁servlet,只有正常关闭服务器时才执行
3.5 Servlet的体系结构
HttpServlet 继承 GenericServlet 实现 Servlet
HttpServlet的使用步骤:
定义类,继承HttpServlet
重写doGet()、doPost()
注:
doGet()、doPost()这两个方法专门针对不同提交方法进行处理;如果提交方式是post,由doPost()方法来处理,如果提交方式是get,由doGet()方法来处理
如果指定的提交方式没有对应的doXxx(),会发生405,Method Not Allowed
3.6 url-pattern的配置
完全匹配:
/xxx
例如:url-pattern配置的值是/t,那么访问时必须访问/t
扩展名匹配:
*.xxx
例如:url-pattern配置的值是*.jsp,那么访问时只要扩展名是.jsp的文件都由指定的Servlet来处理
目录匹配:
/xxx/*
例如:url-pattern配置的值是/abc/*,那么访问的只要是abc目录下的任何一个资源时都由这个Servlet来处理
匹配所有:
/*
如果访问的是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>注:
如果自己的项目中,没有配置
welcome-file-list
,那么会根据tomcat默认配置的welcome-file-list
来设置首页;如果自己手动配置了,那么项目的首页就只遵循自己配置的在
welcome-file-list
中,系统会从上到下依次查找是否存在该页面,如果存在就将该页面设置成主页,然后不再继续查找;如果没有找到任何一个页面在welcome-file-list
配置中则404作用:配置默认的首页,在访问首页时,不需要明确首页的路径就能直接访问
四,Filter
1.1 概念
生活中的过滤器:空气净化器、纱窗
web工程中的过滤器:当访问服务器的某些资源时,过滤器可以把请求拦截下来,完成一些特定的功能
过滤器的作用:统一的编码设置,登录验证
1.2 使用步骤
定义类实现Filter接口
重写方法
在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>
放行,在
doFilter()
方法中,使用
1.3 过滤器的执行流程
启动服务器,执行
init()
初始化过滤器当访问配置了要拦截的路径时,该访问动作会被指定的过滤器拦截下来,执行
doFilter()
注:每次访问指定的要拦截的资源时,都会执行
doFilter()
执行功能的增强
执行放行:
chain.doFilter(req,resp)
访问到目标资源
执行放行后的语句
1.4 过滤器链
一个资源被多个过滤器过滤
执行顺序:
过滤器1 -> 过滤器2 -> 目标资源 -> 过滤器2 -> 过滤器1
1.5 过滤路径的配置
过滤指定资源:/资源名
过滤指定目录下的资源:/目录名/*
过滤指定扩展名的资源:*.扩展名
过滤所有资源:/*
过滤器也可以使用注解
@WebFilter
来配置过滤的路径