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

news2025/7/12 15:01:41

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_repos</localRepository>

设置云端中央仓库镜像:

<mirror>
    <id>aliyunmaven</id>
    <mirrorOf>central</mirrorOf>
    <name>阿里云公共仓库</name>
    <url>https://maven.aliyun.com/repository/public</url>
</mirror>

设置JDK相关信息:

<profile>     
    <id>JDK-1.8</id>       

    <activation>       
        <activeByDefault>true</activeByDefault>       
        <jdk>1.8</jdk>       
    </activation>       
   
 </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中已有内容:

<dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
</dependency>

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

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

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

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

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

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

<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.0.1</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>
    <dependency>
      <groupId>taglibs</groupId>
      <artifactId>standard</artifactId>
      <version>1.1.2</version>
    </dependency>
  </dependencies>

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

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

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

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

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

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

首页显示正常:

但是/test是发生了问题:

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

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

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
</web-app>

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

<?xml version="1.0" encoding="UTF-8"?>
<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">

  <display-name>Archetype Created Web Application</display-name>
</web-app>

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

至此配置完毕。 

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

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

<?xml version="1.0" encoding="utf-8"?>
<web-app version="3.0"
        xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
        http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

  <display-name>Archetype Created Web Application</display-name>
</web-app>

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/38530.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

力扣(LeetCode)84. 柱状图中最大的矩形 (C++)

朴素思想 朴素思想&#xff0c;找左右边界&#xff0c;依次乘以区间内最小上边界&#xff0c;取最大值。这个做法需要遍历左边界&#xff0c;对于每个左边界遍历右边界。因此需要 O(n2)O(n^2)O(n2) 的时间复杂度。 转换思路&#xff0c;确定上边界&#xff0c;找左右边界。这…

数据结构--循环链表

目录 1.为什么要有循环链表 2.定义 3.循环链表和单链表的图示对比 4.循环链表和单链表的代码对比 5.循环链表的操作 1.clist.h 2.clist.cpp 1.初始化plist 2.往plist中头部插入数字val 3.往plist中的尾部插入数字val 4.在plist中查找val值,找到返回该节点地址,失败返…

SpringAOP(2)-spring源码详解(七)

上篇文章说了spring的aop&#xff0c;在启动类加一个启动注解&#xff0c;注解点进源码可以看到注册了bean定义的后置处理器。每个切入点都会生成一个adviosr&#xff0c;他们会排序好依次注册。 他的顺序是before、after、afterRturning、afterThrowing 原创 SpringAOP&…

Mac解决鼠标滚轮反方向移动逻辑--Mos(又免费又好用哦~)

目录&#xff1a;&#x1f335;&#x1f335;&#x1f335;前言什么&#xff1f;Mac竟然需要鼠标&#xff1f;Mos &#xff0c;让你的鼠标丝般顺滑&#xff5e;❤️❤️❤️忙碌的敲代码也不要忘了浪漫鸭&#xff01;&#x1f335;&#x1f335;&#x1f335;前言 ✨你好啊&…

PHP连接外部服务器的MySQL参考教程

PHP连接AWS服务器 云服务器上安装MySQL参考教程 linux-安装MySQL&#xff1a;https://blog.csdn.net/xhmico/article/details/125197747云端服务器(linux版)部署mysql&#xff1a;https://blog.csdn.net/m0_51406695/article/details/123886966linux云服务器从零开始安装mysq…

你不能错过的【Python爬虫】测试2(完整源代码+架构+结果)

目录 一、关键工具包的环境以及版本二、架构展示三、各部分code3.1 yjs.py3.2 items.py3.3 middlewares.py3.4 pipelines.py3.5 settings.py四、结果4.1 控制台输出结果4.2 结果截图一、关键工具包的环境以及版本 scrapy:2.7.1版本(这里主要用到的工具包) 二、架构展示 三…

HyperLynx(三十二)高速串行总线仿真(四)

高速串行总线仿真&#xff08;四&#xff09; 在上节的基础上 1.通过导出到LineSim验证一个串行通道 2.快速眼图仿真 1.通过导出到LineSim验证一个串行通道 接下来&#xff0c;将导出网络到LineSim&#xff0c;并为电容分配SPICE模型。然后&#xff0c;将添加封装和串行电容…

WENO格式自动推导

简介 WENO格式是CFD中的一种高精度的数值格式。如果函数光滑&#xff0c;使用rrr个模板可以在空间上达到2r−12r-12r−1。如果出现间断&#xff0c;那么WENO格式退化为ENO格式。 理论上WENO可达任意阶精度&#xff0c;但是推导过程比较繁琐。本文使用Mathematica软件完成WENO…

一个简单的HTML网页(千与千寻电影) 大二学生网页设计与制作 电影主题网页制作

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置&#xff0c;有div的样式格局&#xff0c;这个实例比较全面&#xff0c;有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 文章目录一、网页介绍一…

C++ 多态之虚函数表

虚函数表概述 C 的多态&#xff0c;使用动态绑定的技术,技术的核心是虚函数表&#xff08;简称虚表&#xff09;&#xff0c;每个包含了虚函数的类都包含一个虚表&#xff0c;虚表是属于类的&#xff0c;而不是属于某个具体的对象&#xff0c;一个类只需要一个虚表即可。同一个…

猴子也能学会的jQuery第十期——jQuery元素操作(下)

&#x1f4da;系列文章—目录&#x1f525; 猴子也能学会的jQuery第一期——什么是jQuery 猴子也能学会的jQuery第二期——引用jQuery 猴子也能学会的jQuery第三期——使用jQuery 猴子也能学会的jQuery第四期——jQuery选择器大全 猴子也能学会的jQuery第五期——jQuery样式操作…

树莓派系统安装,使用SSD/U盘启动centos

树莓派系统安装&#xff0c;使用SSD/U盘启动centos argon m2 外壳厂家资料 https://www.waveshare.net/wiki/PI4-CASE-ARGON-ONE-M.2 TF卡安装系统 如果是使用TF卡安装&#xff0c;则参考官方文档按步骤安装即可&#xff1a; https://www.waveshare.net/wiki/Raspberry_Pi_Do…

FAlphaBlend——Unreal中的插值助手

游戏开发中经常要进行插值处理&#xff0c;这个东西处理虽然不复杂&#xff0c;但如果自己重新做&#xff0c;还是要写额外的代码&#xff0c;好消息是&#xff0c;Unreal已经为我们提供了插值助手——FAlphaBlend。 我们以一个非常简单的应用场景来说明FAlphaBlend的用处&…

matplotlib详细教学

Matplotlib初相识 认识matplotlib Matplotlib是一个Python 2D绘图库&#xff0c;能够以多种硬拷贝格式和跨平台的交互式环境生成出版物质量的图形&#xff0c;用来绘制各种静态&#xff0c;动态&#xff0c;交互式的图表 一个最简单的绘图例子 matplotlib的图像都是画在对应…

Spring事务与事务传播机制

目录 1.事务的基本概念 2.Spring事务的实现 3.事务隔离级别 4.事务传播机制 1.事务的基本概念 关于事务的一些基础概念我已经在MYSQL中讲解过了&#xff0c;有不了解的可以移步至此篇文章&#xff1a;MySQL基础——数据库索引与事务_invictusQAQ的博客-CSDN博客 2.Spring…

基于AlexNet卷积神经网络的手写体数字倾斜校正系统研究-附Matlab代码

⭕⭕ 目 录 ⭕⭕✳️ 一、引言✳️ 二、AlexNet 网络✳️ 三、实验验证✳️ 3.1 实验数据集✳️ 3.2 数据训练✳️ 3.3 手写体倾斜数字校正结果✳️ 四、参考文献✳️ 五、Matlab代码获取✳️ 一、引言 手写体数字识别是光学字符识别(Optical Character&#xff32;ecognition…

破圈的《张朝阳的物理课》,开启“知识突围”的搜狐视频

在互联网耕耘二十多年的搜狐&#xff0c;正在焕发出新的活力。 从搜狐最近公布的2022年第三季度财报来看&#xff0c;营收1.85亿美元&#xff0c;其中在线游戏业务实现收入1.49亿美元&#xff0c;广告收入环比增长3%达到2600万美元。同时&#xff0c;净亏损好于此前预期。 对…

Junit执行源码分析,junit是怎么跑起来的(二)

接上一篇【Junit执行源码分析&#xff0c;junit是怎么跑起来的】 https://blog.csdn.net/Aqu415/article/details/127494898 这里我们接着分析 org.junit.runner.JUnitCore#run(org.junit.runner.Runner) 这个方法 public Result run(Runner runner) {Result result new Resu…

智慧监狱解决方案-最新全套文件

智慧监狱解决方案-最新全套文件一、建设背景二、思路架构三、建设方案四、获取 - 智慧监狱全套最新解决方案合集一、建设背景 “智慧监狱”是“数字法治、智慧司法”信息系统建设的重要组成部分&#xff0c;其主要内容是在现有监狱信息建设的基础上&#xff0c;充分利用大数据…

【机器学习】拉格朗日对偶性

有任何的书写错误、排版错误、概念错误等&#xff0c;希望大家包含指正。 拉格朗日对偶性 在求解最优化问题中&#xff0c;拉格朗日乘数法&#xff08;Lagrange Multiplier&#xff09;和 KKT&#xff08;Karush Kuhn Tucker&#xff0c;三个人名&#xff09;条件是两种最常用…