首页 > 编程语言 >Java for Web学习笔记(三):Servlet(1)Maven

Java for Web学习笔记(三):Servlet(1)Maven

时间:2023-04-09 13:06:51浏览次数:51  
标签:xml Web Java project web Maven 版本 maven


什么是Maven

http://maven.apache.org/中对Mavent进行介绍,可以:

一、发布project信息

二、管理Jar包

三、提供uniform build system,使用POM(project object model)

如果我们使用Eclipse是最新的Mars版本,Maven已经集成进来,所以不需要进行额外的配置,当然,如果我们需要自行安装一个特定位置的maven,这种情况也比较常见,特别是机器有多个项目,将各个项目的开发环境隔离开来。我甚至装了几个Eclipse,不同的配置不同的全局环境,确保隔离。这里简单说说maven的安装和配置:

(1)在http://maven.apache.org/download.cgi中下载,直接解压即可

(2)进入maven/conf/setting.xml进行配置

修改本地仓库的的位置,检索localRepository,我们看到缺省位置在${user.home}/.m2/repository,对于Windows,这个就是用户缺省位置,一般在C盘Documents and Settings或者用户下面。一般能不放C盘就不放,换个位置。

<localRepository>D:/.m2/repository</localRepository>

添加镜像,国外的http://repo1.maven.org/maven2/,具体看各人的网络。

<mirror>
         <id>central</id>
         <mirrorOf>central</mirrorOf>
         <name>Maven central</name>
         <url>http://repo1.maven.org/maven2/</url>
     </mirror>

(3)在Eclipse配置为我们指定的Maven

Window –> Preferences –>Maven,点击,选上Download repository index updates on startup,然后在 Window –> Preferences –>Maven->Installations->Add,添加我们安装Apache maven的目录。

在Window –> Preferences –>Maven->User Settings中将xml文件指向maven/conf/setting.xml。即使用该配置。

 

通过Maven创建动态webapp

(1)创建Mavent project

File-》New-》Maven Project->Next->选择maven-archetype-webapp,填入Group Id,通常就是我们的公司名字倒序,例如cn.wei.flowingflying,Artifact Id为项目名字,例如Chapter03,则自动包名为cn.wei.flowingflying.Chapter03->Finish。

Java for Web学习笔记(三):Servlet(1)Maven_maven

(2)关联servlet

创建项目后,我们看到的项目结构:

Java for Web学习笔记(三):Servlet(1)Maven_xml_02

我们会看到有一个Error:The superclass “javax.servlet.http.HttpServlet”was not found on the Java Build Path。这说明依赖的相关jar包没有关联。在pom.xml中进行相关的设置。pom.xml中关联了junit,如果不需要,可以删掉,关键要加上servlet所需的关联,如下:




<dependencies>
     <dependency>
         <groupId>javax.servlet</groupId>
         <artifactId>javax.servlet-api</artifactId>
         <version>3.1.0</version>
         <scope>provided</scope>
    </dependency>
</dependencies>



(3)转换为Dynamic web Project

我们首先要进行版本的匹配,目前需要手工进行。否者可能会报下面的错误,只能使用动态web2.3的老版本

Cannot change version of project facet Dynamic Web Module to 3.1

打开项目的目录,有.settings/目录,打开里面的org.eclipse.wst.common.project.facet.core.xml,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
     <faceted-project>
        <fixed facet="wst.jsdt.web"/>
        <installed facet="java" version="1.5"/>
        <installed facet="jst.web" version="2.3"/>
        <installed facet="wst.jsdt.web" version="1.0"/>
     </faceted-project>

重点修改两个地方,一是java的版本,缺省好像是配置1.5,使用我们的开发所用的java版本,这里设置1.8,另一个就是jst.web中,将2.3的版本改为目前最高的3.1版本。




<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
    <fixed facet="wst.jsdt.web"/>
    <installed facet="java" version="1.8"/>
    <installed facet="jst.web" version="3.1"/>
    <installed facet="wst.jsdt.web" version="1.0"/>
</faceted-project>



我们需要统一编译环境的java版本,在Eclipse的项目右键->Properties,分别在Java Build Path的Libraries和Java Compiler中确定Java的版本是否正确。然后进入Project Facets,如下图所示,按OK确认。

Java for Web学习笔记(三):Servlet(1)Maven_xml_03

 

我们按项目右键-》Close project,然后项目右键-》Open project,我们就可以看到熟悉的Dynamic web项目架构:

Java for Web学习笔记(三):Servlet(1)Maven_java_04

 

(4)在Dynamic Web中补充web.xml

在最新的Dynamic Web是不需要自己写web.xml,实际上我们用Eclipse直接创建动态web项目是没有web.xml。但是Maven转换过来,是有一个web.xml,但需要修改为标准的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_3_1.xsd"
         version="3.1">

</web-app>


我们在项目中添加一个Servlet进行测试或者直接运行也可以,有一个Hello,World的index.asp。


标签:xml,Web,Java,project,web,Maven,版本,maven
From: https://blog.51cto.com/u_9877302/6178765

相关文章

  • java-信息安全(二十)国密算法 SM1,SM2,SM3,SM4
    一、概述国密即国家密码局认定的国产密码算法。主要有SM1,SM2,SM3,SM4。密钥长度和分组长度均为128位。目前主要使用公开的SM2、SM3、SM4三类算法,分别是非对称算法、哈希算法和对称算法。SM1 为对称加密。其加密强度与AES相当。该算法不公开,调用该算法时,需要通过加密芯片的接口进......
  • java基础-序列化和拷贝
    1.序列化1.1.定义如果我们需要持久化Java对象,或者在⽹络传输Java对象,这些场景都需要⽤到序列化,简单来说序列化就是将数据结构或对象转换成⼆进制字节流的过程,反序列化就是将在序列化过程中所⽣成的⼆进制字节流转换成数据结构或者对象的过程对于Java这种⾯向对象编程语⾔来说,......
  • Java生成PDF几种方式
    ##1、itextPDF直接填充<!--PDF工具类--><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13</version></dependency>......
  • java基础-代理
    1.代理简介2.静态代理3.动态代理3.1.jdk使用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理,JDK创建代理对象效率较高,但是执行效率较低使用流程:实现InvocationHandler接口,重写invoke(),使用Proxy.newProxyInstance()产生代理对象,被代理的对象......
  • VisionMobile:移动平台生态系统冲突报告(十四)Chapter C:WebOS
    Palm在2009年1月的国际消费电子展宣布WebOS智能手机操作系统。第一款设备PalmPre在2009年6月由Sprint运营商在美国推出。Palm在开发移动和便携设备方面有很长的历史,最早在1996年推出基于PalmOs的经典PalmPilotPDA。随后,公司在Treo品牌下推出一系列成功的PalmOS智能手机。随着......
  • 剑指offer05(Java)-替换空格(简单)
    题目:请实现一个函数,把字符串s中的每个空格替换成"%20"。 示例1:输入:s="Wearehappy."输出:"We%20are%20happy." 限制:0<=s的长度<=10000来源:力扣(LeetCode)链接:https://leetcode.cn/problems/ti-huan-kong-ge-lcof著作权归领扣网络所有。商业转载请联系官方授权,......
  • java基础-反射
    1.反射定义反射机制是指在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法,并且对于任意一个对象,都能够调用它的任意一个方法,这种动态获取信息以及动态调用对象方法的功能称为Java反射机制动态语言定义:动态语言是指程序在运行时可以改变其结构,新的函数可以引进,已有的......
  • java基础知识合集-io
    1.IO简介2.IO分类2.1.流分类按照流的流向分,可以分为输入流和输出流按照操作单元划分,可以划分为字节流和字符流按照流的角色划分为节点流和处理流JavalO流共涉及40多个类,这些类看上去很杂乱,但实际上很有规则,而且彼此之间存在紧密的联系,JavalO流的40多个类都是从如下4个抽......
  • Java标准类
    Java标准类标准类的定义类的代码publicclassPerson{/*标准类:1.所有成员变量都用private修饰2.每个成员变量都有一个getter,setter方法3.一个无参构造方法4.一个全参构造方法这样的标准类也叫JavaBean*/privateStringn......
  • java中操作redis
             ......