• 手摸手利在idea中利用maven创建web项目


    1. 下载maven,目前最新版本是3.8.6。在环境变量中创建MAVEN_HOME变量,并在PATH中添加。maven的运行依赖于java环境,这意味着在配置MAVEN前,应该已经在环境变量中配置有JAVA_HOME和PATH中配置好了JAVA相关环境。

    2. 配置完毕后,在CMD窗口中输入mvn -version显示版本号证明安装成功。

    3.编辑maven的配置文件。配置文件位于maven安装目录的conf文件夹下的setting.xml

    4.编辑内容包括:设置MAVEN本地库,设置相关的JDK信息和网络上的MAVEN CENTREAL中心仓库。

     设置本地仓库位置:

    <localRepository>D:/maven_reposlocalRepository>

    设置云端中央仓库镜像:

    1. <mirror>
    2. <id>aliyunmavenid>
    3. <mirrorOf>centralmirrorOf>
    4. <name>阿里云公共仓库name>
    5. <url>https://maven.aliyun.com/repository/publicurl>
    6. mirror>

    设置JDK相关信息:

    1. <profile>
    2. <id>JDK-1.8id>
    3. <activation>
    4. <activeByDefault>trueactiveByDefault>
    5. <jdk>1.8jdk>
    6. activation>
    7. profile>

    settings.xml文件编辑完毕后,一定要复制一份到C:\users\管理员\.m2文件夹下。切记切记!

    5. 现在maven已经配置完毕,可以打开idea创建maven项目了

     另外注意看窗口底部,点开Advanced Settings设置一下项目的包名等信息。

    设置完毕后点击create创建maven项目。

    6.idea2022.2.3创建maven项目的第一步就是直奔C:\users\管理员\.m2文件夹,看看有settings.xml配置文件吗?如果有,就读取配置文件,按配置文件的来,将云端中央库(使用镜像)的必要jar文件下载到本地文件库中(D:/maven_repos)。但是,如果这里没有settings.xml,那么就会在.m2文件夹下新建一个repository文件夹,然后从标准的中央仓库将必须的jar文件下载到这个repository文件夹中。

    换句话说,只要.m2文件夹下没有settings.xml文件,那么所有设置对idea来说都是无效的。

    7. 接下来就是创建servlet、jsp和配置tomcat了。

     根据项目结构,在main下新建文件java,用来保存各种类等源代码文件。

    这个java文件夹会被maven视为源代码文件夹。同理,另一个已经被建立好的resource文件夹作为maven项目资源文件夹。 

     8.书写servlet和jsp至少需要三个jar,我们不再利用导入库。而是编写pom.xml文件,让idea从maven下载并自动依赖问题。

    观察pom.xml中已有内容:

    1. <dependency>
    2. <groupId>junitgroupId>
    3. <artifactId>junitartifactId>
    4. <version>3.8.1version>
    5. <scope>testscope>
    6. dependency>

    通过使用标签,从本地库或云端中央库找到了需要的junit3.81版本的JAR文件。

    我们需要的三个文件该如何通过书写来获得呢?

    打开mvnrepository.com,在输入框中输入servlet,根据搜索结果选择合适的版本:

    选择的标准就是哪个用的人多就选哪个,比如选择4.0.1版本。那么随机就会出现各种仓库配置的写法:

     将这段复制到pom.xml中,然后会出现一个刷新maven的小图标,点击刷新后,该jar第一次会被从中央仓库下载到本地仓库并引用到项目中。以后再用时,直接会从本地仓库加载。

    用同样的方式搞定与jsp书写相关的两个jar文件standard.jar和jstl.jar,确定要添加的各自标签后,复制到pom.xml中:

    1. <dependencies>
    2. <dependency>
    3. <groupId>junitgroupId>
    4. <artifactId>junitartifactId>
    5. <version>3.8.1version>
    6. <scope>testscope>
    7. dependency>
    8. <dependency>
    9. <groupId>javax.servletgroupId>
    10. <artifactId>javax.servlet-apiartifactId>
    11. <version>4.0.1version>
    12. <scope>providedscope>
    13. dependency>
    14. <dependency>
    15. <groupId>javax.servletgroupId>
    16. <artifactId>jstlartifactId>
    17. <version>1.2version>
    18. dependency>
    19. <dependency>
    20. <groupId>taglibsgroupId>
    21. <artifactId>standardartifactId>
    22. <version>1.1.2version>
    23. dependency>
    24. dependencies>

     9. 在java源代码文件夹中创建servelt

    新建的servlet类名是MyTestServlet,映射模式是/test 

    10.复制index.jsp创建test.jsp 

    1. <%@ page contentType="text/html; UTF-8" language="java" %>
    2. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    3. <html>
    4. <body>
    5. <h2>hello <c:out value="${words}"/>h2>
    6. body>
    7. html>

    11.配置Tomcatt服务器,方式与之前一样,要设置server和deployment两个选项卡中的内容。

    12.配置完毕后启动项目。

    首页显示正常:

    但是/test是发生了问题:

     虽然控制台输出了内容,但是显然从MyTestServlet中传递过来的关于words的内容并没有被正常解析。

    造成的原因是,打开web.xml文件可以看到:

    1. web-app PUBLIC
    2. "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    3. "http://java.sun.com/dtd/web-app_2_3.dtd" >
    4. <web-app>
    5. <display-name>Archetype Created Web Applicationdisplay-name>
    6. web-app>

    这是按照2.3版本的动态web模块配置的web-app框架,此时要改写web.xml将动态web模块升级为2.5版本:

    1. "1.0" encoding="UTF-8"?>
    2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    3. xmlns="http://java.sun.com/xml/ns/javaee"
    4. xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    5. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    6. id="WebApp_ID" version="2.5">
    7. <display-name>Archetype Created Web Applicationdisplay-name>
    8. web-app>

    改写完毕,重启服务器,再次进入localhost:8080/test路径,可以正常接受并显示words参数内容:

    至此配置完毕。 

    ---------------------------------------------------------------------------------------------------------------------------------

    因为项目中使用的tomcat是9版本,所以将动态web模块改写为了3.0的形式:

    1. "1.0" encoding="utf-8"?>
    2. <web-app version="3.0"
    3. xmlns="http://java.sun.com/xml/ns/javaee"
    4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    5. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    6. http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    7. <display-name>Archetype Created Web Applicationdisplay-name>
    8. web-app>

    测试后发现也没有任何问题。看来2.5和3.0版本都是可以解决传参的显示与识别问题的。

  • 相关阅读:
    2022亚马逊云科技全球云计算风向标级峰会来袭
    服务器免密登录设置
    idea设置某个文件修改后所在父文件夹变蓝色
    react-router-dom v6版本实现Tabs路由缓存切换
    如何全面提升架构设计的质量
    OpenGL基础教程
    Python基础语法
    整套数字化招采平台安全防御体系
    ag-Grid Enterprise v28.2.1 企业版注册版
    Spring Bean生命周期,好像人的一生。。
  • 原文地址:https://blog.csdn.net/piglite/article/details/128047080