1. Maven项目架构管理工具

  • Maven作用:自动导入和配置jar包
  • 核心思想:约定大于配置
  • Maven会规定好该如何编写Java代码,必须按照这个规范来写

2. 下载和安装

image.png

  • 下载后解压即可

3. 配置环境变量

  • 配置
    • M2_HOME maven目录下的bin目录
    • MAVEN_HOME maven的目录
    • 在系统的path中配置 %MAVEN_HOME%\bin
  • 测试
    • 在命令行中输入mvn —version

4. 阿里云镜像-加速下载

  • 打开maven目录-conf目录-settings.xml
  • 用如下代码替换
    1. <mirror>
    2. <id>alimaven</id>
    3. <mirrorOf>central</mirrorOf>
    4. <name>aliyun maven</name>
    5. <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    6. </mirror>

5. 本地仓库

  • 建立一个本地仓库:localRepository
    • 在maven目录下新建一个名为maven-repo的空文件夹

image.png

  • 将该文件夹所在目录放在settings.xml的<!— interactiveMode之前,并加上localRepository标签
    1. <localRepository>D:\JAVA\Maven\apache-maven-3.8.3\maven-repo</localRepository>

6. 在IDEA中使用maven

6.1 在IDEA中用maven模板创建MavenWeb项目

image.png
image.pngimage.png
image.png
image.png

6.2 不使用模板来创建Maven项目

image.png
image.png

  • 在6.1中用了Maven的webapp模板创建,因此项目中有webapp文件夹

image.png

6.3 添加java和resources两个文件夹

  • 参照干净Maven项目untitled2的文件夹,为模板创建的项目添加java和resources两个文件夹
  • main文件夹上右键-New-Directory

image.png
image.png

6.4 在IDEA中配置Tomcat

image.png
image.png
image.png
image.png

6.5 启动与关闭Tomcat

image.png
image.png
image.png

6.6 查看Maven项目

image.png

6.7 pom文件

  • pom.xml是Maven的核心配置文件
  • 以下代码是pom.xml各段代码的解释和修改的配置 ```xml <?xml version=”1.0” encoding=”UTF-8”?>
4.0.0 org.example javaweb-02-maven 1.0-SNAPSHOT war javaweb-02-maven Maven Webapp http://www.example.com UTF-8 1.7 1.7 jakarta.servlet.jsp jakarta.servlet.jsp-api 3.0.0 jakarta.servlet jakarta.servlet-api 5.0.0 javaweb-02-maven maven-clean-plugin 3.1.0 maven-resources-plugin 3.0.2 maven-compiler-plugin 3.8.0 maven-surefire-plugin 2.22.1 maven-war-plugin 3.2.2 maven-install-plugin 2.5.2 maven-deploy-plugin 2.8.2 src/main/resources /*.properties /.xml true src/main/java **/.properties */.xml true
  1. ![image.png](https://cdn.nlark.com/yuque/0/2021/png/21978345/1634882762318-4d57bd8c-1c68-4120-9712-50b12fea72ed.png#clientId=u9661104c-f410-4&from=paste&id=u0aa45dad&margin=%5Bobject%20Object%5D&name=image.png&originHeight=965&originWidth=2547&originalType=binary&ratio=1&size=357713&status=done&style=none&taskId=ud1e49d63-1d08-4ff0-b8f5-f27ca30b13d)
  2. - 查看Mavenjar包联系关系图
  3. ![image.png](https://cdn.nlark.com/yuque/0/2021/png/21978345/1634882920722-8443786f-ccda-4efb-8b95-989d63d88c72.png#clientId=u9661104c-f410-4&from=paste&id=u09352e37&margin=%5Bobject%20Object%5D&name=image.png&originHeight=907&originWidth=848&originalType=binary&ratio=1&size=98676&status=done&style=none&taskId=ue7953eb6-8d2b-4e01-88f4-3f182b329e7)<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/21978345/1634882992914-437a720d-ba79-41b2-b258-95ee4f8ed76a.png#clientId=u9661104c-f410-4&from=paste&id=ud1e18d30&margin=%5Bobject%20Object%5D&name=image.png&originHeight=463&originWidth=954&originalType=binary&ratio=1&size=33560&status=done&style=none&taskId=ue3cfc7ba-b536-471b-9401-62af1d0acf7)
  4. <a name="uWlcP"></a>
  5. ### 6.8 修改Maven默认web项目中web.xml版本
  6. - 查看web项目中web.xml版本
  7. ![image.png](https://cdn.nlark.com/yuque/0/2021/png/21978345/1634883289431-9a1def91-4732-4486-8aaf-6af4079ac2e9.png#clientId=u9661104c-f410-4&from=paste&id=u39bb9772&margin=%5Bobject%20Object%5D&name=image.png&originHeight=693&originWidth=1682&originalType=binary&ratio=1&size=123741&status=done&style=none&taskId=u8dff8b0f-e115-4a56-a739-38119615d4f)
  8. - Tomcat->webapps->ROOT->WEB-INF中的web.xml文件中的代码复制到项目中的web.xml文件,保持Maven中的webapp版本与Tomcat中的一致
  9. ![image.png](https://cdn.nlark.com/yuque/0/2021/png/21978345/1634883571341-431c87de-4d97-4863-86cf-57678bc0b5eb.png#clientId=u9661104c-f410-4&from=paste&id=u5df9e681&margin=%5Bobject%20Object%5D&name=image.png&originHeight=905&originWidth=1470&originalType=binary&ratio=1&size=129713&status=done&style=none&taskId=ue0f119be-4b26-4d79-9069-04cffe240fe)<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/21978345/1634883658568-94b25157-a955-4343-9ea5-01d3e155b783.png#clientId=u9661104c-f410-4&from=paste&id=u00d0b39d&margin=%5Bobject%20Object%5D&name=image.png&originHeight=449&originWidth=1353&originalType=binary&ratio=1&size=82828&status=done&style=none&taskId=u270d4b60-cd19-4845-87cf-d3c8df1ce53)
  10. <a name="zRRpm"></a>
  11. ## 7. Maven仓库的使用
  12. - 地址:[https://mvnrepository.com/](https://mvnrepository.com/)
  13. ![image.png](https://cdn.nlark.com/yuque/0/2021/png/21978345/1634967968141-fc7a4178-f5ba-4d9a-8140-3b46363519b0.png#clientId=u19a0a216-7a83-4&from=paste&id=uca182598&margin=%5Bobject%20Object%5D&name=image.png&originHeight=1198&originWidth=1965&originalType=binary&ratio=1&size=316853&status=done&style=none&taskId=uc2ba310a-53d3-45d8-a67a-5f63d740164)<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/21978345/1634968126729-308d2292-40e3-4c7a-b50c-4def45d39cd4.png#clientId=u19a0a216-7a83-4&from=paste&height=616&id=ub22e15ed&margin=%5Bobject%20Object%5D&name=image.png&originHeight=1231&originWidth=1564&originalType=binary&ratio=1&size=205596&status=done&style=none&taskId=ue67f2103-3531-47d8-8a5d-30f2d67c0c7&width=782)<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/21978345/1634968264903-d2ecc63c-d07d-4057-88bf-e28c74ba61fa.png#clientId=u19a0a216-7a83-4&from=paste&id=u99fb1a30&margin=%5Bobject%20Object%5D&name=image.png&originHeight=1030&originWidth=1969&originalType=binary&ratio=1&size=274200&status=done&style=none&taskId=uabf94a07-655d-4dea-908b-6736cb4cae8)
  14. <a name="TpSYu"></a>
  15. ## 8. 创建Servlet栗子及配置(可不看)
  16. <a name="DBPuL"></a>
  17. ### 8.1 创建Servlet对象
  18. - src->main->java中创建package,再在package中创建MyServlet文件
  19. - 在文件中创建名为MyServletServlet对象
  20. ![image.png](https://cdn.nlark.com/yuque/0/2021/png/21978345/1634966437100-550b279b-0771-4b4b-96ce-ff98c8ceb3c7.png#clientId=u19a0a216-7a83-4&from=paste&id=ubb1c6a23&margin=%5Bobject%20Object%5D&name=image.png&originHeight=945&originWidth=2537&originalType=binary&ratio=1&size=290069&status=done&style=none&taskId=u45d79e11-ff33-4def-a936-8660a5efc29)
  21. ```java
  22. public class MyServlet extends HttpServlet {
  23. @Override
  24. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  25. //响应的类型:html
  26. response.setContentType("text/html");
  27. response.setCharacterEncoding("UTF-8");
  28. PrintWriter out = response.getWriter();
  29. out.println("<html>");
  30. out.println("<head>");
  31. out.println("<title>My first Servlet!</title>");
  32. out.println("</head>");
  33. out.println("<body>");
  34. out.println("<h1>My first Servlet!</h1>");
  35. out.println("</body>");
  36. out.println("</html>");
  37. }
  38. @Override
  39. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  40. }
  41. }

image.png

8.2 在web.xml中对MyServlet进行配置

image.png

  1. <!--Servlet配置-->
  2. <servlet>
  3. <servlet-name>MyServlet</servlet-name>
  4. <!--完整类名:包名.类名-->
  5. <servlet-class>com.luo.servlet.MyServlet</servlet-class>
  6. </servlet>
  7. <!--一个Servlet对应一个mapping映射-->
  8. <servlet-mapping>
  9. <servlet-name>MyServlet</servlet-name>
  10. <!--请求路径-->
  11. <url-pattern>/Hello</url-pattern>
  12. </servlet-mapping>

8.3 使用MyServlet对象对请求进行处理

image.png