Maven是什么+servlet跳转的极简Demo

文章结构

(本文使用win10)
Maven是什么;
怎么部署maven以及使用;
如何将原始web项目搭建在maven工程中;

对Maven的理解

(本文基于对maven主要功能的理解,并不全面)

在我们写一些基础的web项目的时候,我们需要导入tomcat包、mysql-connector-java包、serverlet包、beanutils包等等等各种jar包,而这可能只是实现了一个简单的用户登录界面。
那真的到实际应用的时候,每建新的一个项目,很多重复的jar包又要手动导一遍,还导成百上千个这也太过分了,一打包给别人,可能代码没占多少体积,jar包给塞满了。
这个时候!Maven出现了,它说这些导包的事情放着我来,你写代码就好了!这就是它的第一个核心功能:依赖管理,简单来说就是我们的项目是依赖jar包的,maven工程可以对jar包进行管理,且Maven开发的项目jar包是不会被打包的,节省了很多空间。

随后你开心地在写web项目的代码,半路突然发现你还要把你的项目打成war包,然后放到tomcat的root目录,要去bin目录下startup.sh启动tomcat,还得改一波web.xml??(虽然servlet3.0及以上版本支持注解就不用xml,idea运行tomcat也相对便捷一点)这个时候!Maven又来了,它说打包什么的放着我来!ok它的第二个核心功能:一键构建,简单的来说就是你点一点或者输入一行命令就能完成编译、测试、运行、打包、安装、部署等等等。

其实说到这里,差不多你对Maven有个大致的理解了,那我们把它的定义搬出来:Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。

进一步了解Maven

知道了maven是什么,以及它的两个核心功能,那我们简单了解一下它如果不把jar包和项目一起打包又怎么知道去哪找jar包呢?来了来了Maven仓库带着jar包来了!
顾名思义,Maven仓库(Maven Repository)就是用来存放jar包的地方,它一般可以分为三种:本地仓库,远程仓库(私服),中央仓库。本地仓库即你自己电脑里存放jar包的地方,不过你电脑里不可能装一万个jar包,但你的公司可以多装一点,所以一般公司都会自己配一个远程仓库给公司里一起做项目的人减少这个电脑里有这个jar包但那个人电脑里没有的情况。
但毕竟这不是全世界的jar包,你和你的公司可能还是会遇到没有的jar包,所有全世界都有共有一个中央仓库,大致示意图如下所示:请添加图片描述
本地仓库与远程仓库如果缺少jar包,他们的下载流程是这样的:
请添加图片描述
仓库那么大,maven又怎么知道哪个jar包在哪呢,所以需要maven坐标,也就是每一个jar包都有一个自己的坐标,类似现实的坐标系xyzt那样,但它是通过jar包的名称,开发jar包的公司,jar包的版本号,以及你想使用这个jar包的范围来确定你要使用什么jar包,该处具体的配置将在后文讲述。

如何使用Maven

2020版本的idea已经绑定了maven,但如果使用了其他ide的话就没那么开心了,所以这里讲自己如何配置maven。

maven下载与环境配置

Maven版本一直在更新,就不直接提供下载了,自己去http://archive.apache.org/dist/maven/maven-3/
下载也非常快,然后就是jdk和maven有个版本对应的关系可以注意一下http://maven.apache.org/docs/history.html
将maven压缩包解压到你所需要的路径下,然后里面有四个文件夹,主要的作用如下图所示:
在这里插入图片描述
同样我们也要像jdk一样配置它的环境变量,操作就合在一起讲了大家应该很熟悉了:
在这里插入图片描述
在这里插入图片描述
然后在cmd中敲入mvn -v如果出现了版本号等信息,那么就说明环境配置成功了:
在这里插入图片描述
如果都按照以上步骤配置却没有出现的话,可以尝试一下把Path中的路径修改成%SystemRoot%\system32;%MAVEN_HOME%\bin

maven配置文件修改

接着就是告知maven我们本地仓库的路径,好让它找到我们想用的jar包们。这里我给大家提供一个包含一些常用jar包的本地仓库:链接:https://pan.baidu.com/s/1cCtyMgJjBhC4mdUvGCX9Pg 提取码:jtno
把本地仓库放在你想放的路径下之后,打开刚解压完的maven文件夹,在conf文件夹下修改settings.xml文件中的第53行,也就是告诉maven我们的本地仓库在哪里,把绝对路径放进localRepository。
在这里插入图片描述
有的时候从中央仓库下载jar包会花费很长时间,有的人会选择国内阿里的镜像来进行下载,具体可参考:https://blog.csdn.net/qq_36090463/article/details/89049938(转载)

maven的使用(以超简单servlet跳转为例)

上面结束之后,我们打开idea看看到底咋用maven。新建一个Project,左侧选择Maven,若勾选了上面的框框则意味着可以选择maven帮你创建好的骨架,我们可以先选择webapp这一个骨架看一看:
在这里插入图片描述
下一步之后可以给自己的项目设置坐标,按照框下的提示设置就可:
在这里插入图片描述
再下一步,我们把idea自带的maven给拿走,选择我们自己刚解压开的maven,然后将下面两个框也设置成自带maven的setting.xml和本地仓库的位置。
在这里插入图片描述
第一次建项目的会可能会花的时间较长,但如果下载成功后,webapp骨架出来的文件夹会有这些:
在这里插入图片描述
我们还可以看一眼用quickstart骨架建出来的项目有哪些内容,它包含main下的java放核心 代码,以及test文件夹下放的测试代码:
在这里插入图片描述
但一般来说,一个maven项目的标准目录结构为:

  • src/main/java ----------- 核心代码部分
  • src/main/resources ----------- 配置文件部分
  • scr/test/java ----------- 测试代码部分
  • scr/test/resources ----------- 测试配置文件
  • src/main/webapp ----------- 页面资源

接着我们尝试在maven工程下创建一个servlet实现跳转到jsp的超级简陋的demo:
我们可以基于刚刚webapp出来的骨架填些文件夹,在main下面来一个java文件夹并右键选择Mark directory as --> Source Root,然后创建一个package,里面的java文件可以先不用创建,然后在webapp里面放一个hello.jsp随便写点东西:
在这里插入图片描述
然后要实现servlett跳转的话我们需要使用servlet-api,jsp-api,以及tomcat-servlet-api,如果不使用maven的话,这个时候我们就在导包了,但是使用maven的话!我们只要找到这个项目下的pom.xml!!
在这里插入图片描述
通过这个配置文件,我们把jar包坐标统统告诉它,内容如下所示:
在这里插入图片描述
其中补充一个知识点,就是scope中的内容代表什么,比如使用servelt-api时,由于maven自带的jar包中也有同名的,所以当运行时也使用的话可能会造成jar包冲突,导致maven不知道该使用哪一个:

类型编译时测试时运行时例如
compilespring-core
testJunit
providedservlet-api
runtimeJDBC
system本地除Maven仓库之外的类库

jar包坐标设置好之后我们就可以去java目录下创建一个servlet类,然后转发到我们的hello.jsp页面:
在这里插入图片描述
基本上代码内容就结束了,我们可以开始用maven的一键构建来运行一下。先找到idea边框上的maven:
在这里插入图片描述
然后看到了清晰的Lifecycle,知识点补充又来了,maven也是有生命周期的(啥玩意没生命周期呢),它还有仨生命周期:默认生命周期、清理生命周期、站点生命周期(不常用不说)。

  1. 默认生命周期包括:compile、test、package、install、deploy。
    • 使用compile可以把src中main下的java文件进行编译,放到了项目自动新增的target目录下;
    • test是在compile基础上还编译了test文件下的java,同样将结果放在target下;
    • package是在test的基础上,还将项目打包,打成什么类型的包的话需要在pom.xml中的packaging标签下指定打包类型;
    • install在package基础上,还把打包的文件放在了本地仓库里;
    • deploy是将打包的文件放入远程仓库,需要在maven的setting.xml中配置远程仓库的用户名和密码,还需要pom.xml做配置;
  2. 清理生命周期只有一个clean:一般在你接手别人的项目的时候,可能包含了别人的编译后的文件(也就是target目录),那如果你在原本就有编译文件的基础上再编译可能会造成一些版本所带来的问题,clean的话就帮你清除了这些文件,将项目干干净净地给你。

每个命令都对应着一个插件,可以在pom.xml中看到:
在这里插入图片描述
如果要使用这些命令的话,我们直接点击idea所提供的即可,也可以自己输入mvn 你的命令。
(知识点补充结束!)
那要运行servlet的话我们一定要运行tomcat,如果你的jdk是1.8版本的话需要使用tomcat7来运行,而maven自带的tomcat是6所以可能在你运行的时候会出错,这个时候你可以现在pom.xml里添加一个tomcat7的插件:
在这里插入图片描述
然后在前前张图中找到“m”的按钮,这样你可以输入新的命令,在里面输入tomcat:run,如果提示tomcat运行错误的话,可以再试一下用tomcat7运行。
在这里插入图片描述
运行成功之后可以在对话框中看到:
在这里插入图片描述
这个时候你点击localhost的网页并加上你servlet的路径,就可以直接跳转到你之前的hello.jsp页面上了!
在这里插入图片描述
以上就是所有内容。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
想要通过 MavenServlet 实现查询数据库表并将结果显示在网页上,可以按照以下步骤进行操作: 1. 首先,确保已经在项目中配置了 Maven 依赖管理工具。在 pom.xml 文件中添加相应的依赖,包括 Servlet API、数据库驱动程序和其他必要的库。 2. 在项目中创建一个 Servlet 类。在该类的 doGet() 方法中实现数据库查询的逻辑。可以使用 Java 的 JDBC API 来连接数据库,并编写 SQL 查询语句来获取所需的数据。执行查询后,将结果保存在适当的数据结构中。 3. 创建一个 JSP 文件,用于显示查询结果。在 JSP 文件中,可以使用 Java 代码片段和 JSP 标签来获取并显示查询结果。使用 JSTL(JSP 标准标签库)可以更方便地处理数据。根据需要,可以使用 HTML 和 CSS 来美化页面。 4. 在 Servlet 类中的 doGet() 方法中,使用 request.getRequestDispatcher() 方法获取 JSP 文件的请求分派器。然后,将查询结果作为属性(attribute)设置在请求中,并将请求分派到 JSP 页面。 5. 在 JSP 页面中,使用 JSTL 标签和 Java 代码片段来获取查询结果,并将其在网页上显示出来。可以根据需要使用循环、条件和其他功能来处理和展示数据。 6. 运行项目并访问相应的 URL,即可看到从数据库中查询到的数据在网页上的显示。 总结来说,通过 Maven 管理依赖,使用 Servlet 连接数据库并编写SQL查询语句,然后将查询到的结果通过 JSP 页面展示出来,就可以实现在网页上显示数据库表的功能。通过合理利用 Java、HTML、CSS 和 JSTL 等技术,可以实现更灵活、美观的数据展示效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值