文章目录
Jetty 服务的安装与配置调试:
Jetty 服务的安装
Mac版Jetty 服务器下载地址:传送门
点击DWONLOAD 即可下载!
Jetty 服务的设置
0、修改成一个能使用的端口号:(这里我为了不跟Tomcat的默认端口8080冲突,自己手动改了另一个端口号),修改Jeety安装根目录下的 start.ini 文件
,修改操作如下:
1、创建一个新的工程:(注意:这里要选择你安装Jeety服务的根路径)
2、在工程中创建一个servlet文件:
3 、给servlet 文件命名:
4、servlet 创建成功界面:
5、设置Jetty服务器:
6、详细设置:
Jetty 服务的调试
1、设置index.jsp 默认访问文件
2、启动Jetty 服务器:
3、输入地址查看访问结果:
Tomcat 服务的安装与配置调试:
Tomcat 服务的安装
下载地址:传送门
点击下载即可!
Tomcat 服务的设置
注意:
- Tomcat 的设置和Jetty服务的设置基本相同,出了启动的Web容器不一样外,几乎没有任务不同。
- 唯一要注意的就是:他们两个的端口号不同
Tomcat 的配置文件在:Tomcat 安装目录/conf/server.xml
修改端口号操作如下:
Tomcat 服务的调试
这里也与Jetty 服务器的调试过程没什么区别,只是启动的Web容器不同而已!
Maven 系列:
Maven 的作用:
我为什么要学习这个Maven?
-
在Javaweb开发中,需要使用大量的jar包,我们手动去导入;
-
如何能够让一个东西自动帮我导入和配置这个jar包。
由此,Maven诞生了!
核心功能:
- 帮我们自动导入jar包,需要我们在pom.xml文件中写明相关的依赖。巨大的优势在于:你不用自己下载jar包了,只要在Maven 仓库搜索你需要使用的Jar包,并将其依赖写入pom.xml文件即可。
- 并且会自动导入(目标Jar包)Jar包所依赖的其他jar包(连锁下载)
- 总结来说:优化jar包的下载与导入机制。
Maven的核心思想:约定大于配置
- 有约束,不要去违反。
- Maven会规定好你该如何去编写我们的Java代码,必须要按照这个规范来;
Maven 安装:
为何要设置M2_HOME以及 (MAVEN_HOME:Maven的安装路径)
- 这个只是为了有一个快捷的启动路径,相当于IDEA或者Spring等工具或系统可以根据这个环境变量帮我们快速找到一些东西(不用我们手工一项项去找)。
- 同时也方便了我们进行测试软件是否安装成功(执行一些脚本之类的)!
Maven 设置:
Maven 如何设置?(参考狂神的笔记)
1、配置阿里云镜像:(我们所使用的jar包都来自于Maven自动从仓库镜像中下载出来的,设置国内的下载源可以加速下载)
在Maven安装目录/conf/settings.xml:(做如下修改)
<mirrors>
<!-- mirror
| Specifies a repository mirror site to use instead of a given repository. The repository that
| this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
|
<mirror>
<id>mirrorId</id>
<mirrorOf>repositoryId</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://my.repository.com/repo/path</url>
</mirror>
-->
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*,!jeecg,!jeecg-snapshots</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
2、建立一个本地仓库(Maven默认会在user.home 下创建一个.m2的目录,在下面创建本地仓库,我们统一放在一个地方比较合理)
在Maven安装目录/conf/settings.xml:(做如下修改)
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
<localRepository>/Users/zhengjiaxiang/Library/maven/maven-repo</localRepository>
3、修改IDEA中Maven的默认设置(对所有新建的Maven项目都有效)
4、创建一个Maven项目:
5、填写相关信息:
6、选择Maven的相关信息(这里如果在Maven的默认设置中已经设置好的话,这里就直接已经设置好了,检查一下即可!)
7、设置Maven项目名称以及项目存储位置等信息:
8、自动下载jar包:
Maven 调试:
问题:利用模板创建出来的目录不全怎么办?缺少java 和 test 等目录(参考狂神的笔记)
1、我们首先要知道,一个标准的Maven项目长这个样纸:
2、但我们现在的文件结构是这样的:
3、我们需要建立几个新的文件达到标准目录的结构(这里之所以为什么没有自动创建这些目录,估计是Maven版本的问题,为了保险起见,我用的Maven是3.5.4,但依然还有问题!)
注意:按照上述方法操作,使得其达到标准Maven-web 的目录结构即可!
4、由于maven默认web项目中的web.xml版本过低,我们使用最新标准的xml文件进行配置:
我们将其内容设置为:(替换为webapp4.0版本和tomcat一致)
<?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_4_0.xsd"
version="4.0"
metadata-complete="true">
</web-app>
5、设置pom.xml文件中的属性,修改如下部分:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
问题:如果 在IDEA中的Maven项目中,在Java文件夹下 new 不出来一个 servlet的时候,该如何创建servlet?
回答:其实就是创建一个 java.class 文件,然后在该网站webapp目录中的 web.xml 中进行相应的配置即可!
假设:要写的class 文件名为:helloServlet,则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_4_0.xsd"
version="4.0"
metadata-complete="false">
<servlet>
<servlet-name>ServletTest</servlet-name>
<servlet-class>ServletTest</servlet-class>
</servlet>
<!--如果要在xml中设置servlet对应的访问路径,就按如下设置:(网站访问 http:9000/MavenDemo/hello即可)-->
<!--<servlet-mapping>-->
<!--<servlet-name>ServletTest</servlet-name>-->
<!--<url-pattern>/hello</url-pattern>-->
<!--</servlet-mapping>-->
</web-app>
注意:如果能够直接在IDEA中创建出:servlet 文件,则xml中对应映射部分的配置文件写法默认就是那样(但是注意:如果想使用注解的方式来设置项目访问路径,必须更改一下xml文件,参考上面问题所述!)
问题:Maven创建webapp骨架无法使用@WebServlet来实现注解配置访问路径的解决方案
回答:参考
注意:一旦采用参考答案配置以后,我们就只能在注解和xml中两选一进行设置,两者同时设置时,只有xml文件中的定义有效(xml作用的优先级更高),@WebServlet的设置失效。
pom.xml 文件有啥用?
定位:pom.xml 是Maven的核心配置文件(Maven工具程序通过读取pom.xml来进行工作,一旦改动pom.xml内容则自动发生同步反应)
pom.xml 文件解析:(注意看注释)
<?xml version="1.0" encoding="UTF-8"?>
<!--Maven版本和头文件-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!--这里就是我们刚才配置的GAV-->
<groupId>com.kuang</groupId>
<artifactId>javaweb-01-maven</artifactId>
<version>1.0-SNAPSHOT</version>
<!--Package:项目的打包方式
jar:java应用
war:JavaWeb应用
-->
<packaging>war</packaging>
<!--配置-->
<properties>
<!--项目的默认构建编码-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!--编码版本-->
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<!--项目依赖-->
<dependencies>
<!--具体依赖的jar包配置文件-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
</dependencies>
<!--项目构建用的东西-->
<build>
<finalName>javaweb-01-maven</finalName>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
maven由于他的约定大于配置,我们之后可以能遇到我们写的配置文件,无法被导出或者生效的问题,解决方案:
解决方法:在build中配置resources,来防止我们资源导出失败的问题
<!--在build中配置resources,来防止我们资源导出失败的问题-->
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
在一个父级 IDEA Project 文件中,如何创建多个子Web工程,它们之间的Maven 有什么特点?
Maven仓库的使用:
仓库地址:https://mvnrepository.com/
最后: 将刚才复制的 dependency 依赖复制到 pom.xml 文件中的相应位置即可!