zoukankan      html  css  js  c++  java
  • Idea 搭建Maven--web项目(MVC)

    小编最近正在学习使用MVC框架,在搭建Maven的项目过程中,遇到了很多问题,上网搜了很多材料才找到答案,为了小编以后查起来方便,也为了向广大小伙伴分享,写了这部片博文,敬我昨天一天的学习结果!


     步骤如下:

    第一部分:创建Maven项目

    1.首先我们需要新建一个工程,小编使用的是Idea的编辑器,eclipse的大体类似。使用File ->New->Project

    2.在新弹出的对话框中,选择Maven工程,在右侧勾选“2”位置处的内容,在下面的选项中找到后缀为webapp的,选中后点击Next。

    需要注意的是,右边的选项中有两个webapp,如箭头所示,我们使用第二个。

    如果使用第一个的话,会遇到各种报错,至于报什么错呢,各位看官显得无聊可以试试,小编就不多说了。

    3.填写一些项目内容。

    GroupId和ArtifactId可以随便填写,填写完成后,点击Next。

    4. 配置Maven

    在新弹出的对话框中配置Maven版本和配置路径。

    如果电脑上已经存在Maven,点击“Maven home directory” 后面的按钮,选择本机的Maven就好。如果没有预装,可以直接使用Idea提供的,即图示“Bundeld(Maven)”,点击下拉框可在各个Maven版本中切换。

    “User setting file”和"Local repository"选项,可以使用默认路径,也可以点击“Overide”,然后重新自定义路径。新手的话,推荐使用默认。

    全部设置完成后,点击Next。

    在新弹出的对话框中,配置项目路径和名称,配置完成后点击Finish。一个Maven的壳子就创建完成啦。

    为新项目选择新开一个窗口,当然也可以选择在本窗口打开,各凭喜好。

    最后就是等待项目加载完成,在这里会弹出一个提示框,我们选择Enable auto-import,允许项目自动将需要的jar包导入,省去手工导入的操作。

    第二部分:配置项目结构

    1.配置项目框架

    小编使用的是MVC模式,因此需要将MVC框架的内容加载到项目中。

    在项目名称上右键,选择Add Framework Support。

    在新弹出的对话框的左侧中,找到并勾选Spring MVC。在右侧,可以选择使用本机已有的Spring MVC,也可以选择Idea 自动下载,即“Download”。勾选完成后点击“OK”

    你会看到编译器正在下载Spring相关的内容。

    下载完成后,左侧的目录结构中会多出一个lib文件夹,里面存放的是Spring MVC相关的jar包,由于我们会在之后的pom.xml文件中配置这些内容,因此这个文件夹可以直接删掉。

    2.配置项目文件结构

    MVC简单来讲,是将model,view, controller分离,单独编码,单独管理,因此,我们在为项目配置目录结构的时候,夜莺从这几方面考虑。

    在Maven自动生成的目录结构中,

    我们在main目录下创建java文件夹,其下分别创建condition,controller,dao,service,mapper文件夹,用于存放和管理后台代码;创建resources文件夹,用于存放资源文件。

    在src目录下创建test文件夹,用于存放单元测试代码。

    在webapp文件夹下创建res文件夹,其下依次创建js,css,img文件夹,用于存放相应类型的文件;在WEB-INF文件夹下创建views文件夹,用于存放jsp页面文件。

    完整的目录结构如下:

    3.为文件夹配置权限

    创建完文件后,可能会发现,在任何文件夹下都无法创建java文件,此时,我们需要为刚刚创建的文件夹配置权限。

    选择“File -> Project Structure”,打开对话框,点击java文件夹,选择Sources,点击resources文件夹,选择Resources,点击test文件夹,选择Test。

    配置完成后选择Apply 然后。关闭对话框,就会发现,文件夹的颜色和形态发生了变化,此时,就可以在java下创建class文件了。

    4.配置pom.xml文件

    现直接将小编的完整的XML文件奉上

      1 <?xml version="1.0" encoding="UTF-8"?>
      2 
      3 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      4   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      5   <modelVersion>4.0.0</modelVersion>
      6 
      7   <groupId>MavenDemo2</groupId>
      8   <artifactId>test.maven</artifactId>
      9   <version>1.0-SNAPSHOT</version>
     10   <packaging>war</packaging>
     11 
     12   <name>test.maven Maven Webapp</name>
     13   <!-- FIXME change it to the project's website -->
     14   <url>http://www.example.com</url>
     15 
     16   <properties>
     17     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     18     <maven.compiler.source>1.7</maven.compiler.source>
     19     <maven.compiler.target>1.7</maven.compiler.target>
     20   </properties>
     21 
     22   <dependencies>
     23     <dependency>
     24       <!-- junit测试包-->
     25       <groupId>junit</groupId>
     26       <artifactId>junit</artifactId>
     27       <version>4.11</version>
     28       <scope>test</scope>
     29     </dependency>
     30     <!--日志包-->
     31     <dependency>
     32       <groupId>org.slf4j</groupId>
     33       <artifactId>slf4j-log4j12</artifactId>
     34       <version>1.8.0-alpha2</version>
     35     </dependency>
     36     <!--mysql驱动包-->
     37     <dependency>
     38       <groupId>mysql</groupId>
     39       <artifactId>mysql-connector-java</artifactId>
     40       <version>6.0.6</version>
     41     </dependency>
     42     <!-- JDBC连接池 -->
     43     <dependency>
     44       <groupId>com.mchange</groupId>
     45       <artifactId>c3p0</artifactId>
     46       <version>0.9.5.2</version>
     47     </dependency>
     48     <!-- DruidDataSource,本工程的dataSource配置使用的Druid -->
     49     <dependency>
     50       <groupId>com.alibaba</groupId>
     51       <artifactId>druid</artifactId>
     52       <version>1.0.29</version>
     53     </dependency>
     54     <!--spring相关包-->
     55     <dependency>
     56       <groupId>org.springframework</groupId>
     57       <artifactId>spring-web</artifactId>
     58       <version>4.3.8.RELEASE</version>
     59     </dependency>
     60     <dependency>
     61       <groupId>org.springframework</groupId>
     62       <artifactId>spring-webmvc</artifactId>
     63       <version>4.3.8.RELEASE</version>
     64     </dependency>
     65     <dependency>
     66       <groupId>org.springframework</groupId>
     67       <artifactId>spring-context-support</artifactId>
     68       <version>4.3.8.RELEASE</version>
     69     </dependency>
     70     <dependency>
     71       <groupId>org.springframework</groupId>
     72       <artifactId>spring-oxm</artifactId>
     73       <version>4.3.8.RELEASE</version>
     74     </dependency>
     75     <dependency>
     76       <groupId>org.springframework</groupId>
     77       <artifactId>spring-tx</artifactId>
     78       <version>4.3.8.RELEASE</version>
     79     </dependency>
     80     <dependency>
     81       <groupId>org.springframework</groupId>
     82       <artifactId>spring-test</artifactId>
     83       <version>4.3.8.RELEASE</version>
     84     </dependency>
     85     <dependency>
     86       <groupId>org.springframework</groupId>
     87       <artifactId>spring-jdbc</artifactId>
     88       <version>4.3.8.RELEASE</version>
     89     </dependency>
     90     <dependency>
     91       <groupId>org.aspectj</groupId>
     92       <artifactId>aspectjweaver</artifactId>
     93       <version>1.8.10</version>
     94     </dependency>
     95     <dependency>
     96       <groupId>org.aspectj</groupId>
     97       <artifactId>aspectjrt</artifactId>
     98       <version>1.8.10</version>
     99     </dependency>
    100     <!-- 支持jsp相关包 -->
    101     <dependency>
    102       <groupId>javax.servlet</groupId>
    103       <artifactId>jstl</artifactId>
    104       <version>1.2</version>
    105     </dependency>
    106     <dependency>
    107       <groupId>taglibs</groupId>
    108       <artifactId>standard</artifactId>
    109       <version>1.1.2</version>
    110     </dependency>
    111     <!--servlet/jsp api start-->
    112     <dependency>
    113       <groupId>javax.servlet</groupId>
    114       <artifactId>servlet-api</artifactId>
    115       <version>3.0-alpha-1</version>
    116     </dependency>
    117     <dependency>
    118       <groupId>javax.servlet.jsp</groupId>
    119       <artifactId>jsp-api</artifactId>
    120       <version>2.2.1-b03</version>
    121     </dependency>
    122     <dependency>
    123       <groupId>org.projectlombok</groupId>
    124       <artifactId>lombok</artifactId>
    125       <version>1.16.16</version>
    126     </dependency>
    127     <!-- Mybatis管理 start -->
    128     <dependency>
    129       <groupId>org.mybatis</groupId>
    130       <artifactId>mybatis</artifactId>
    131       <version>3.4.1</version>
    132     </dependency>
    133     <dependency>
    134       <groupId>org.mybatis</groupId>
    135       <artifactId>mybatis-spring</artifactId>
    136       <version>1.3.0</version>
    137     </dependency>
    138     <dependency>
    139       <groupId>com.alibaba</groupId>
    140       <artifactId>fastjson</artifactId>
    141       <version>1.2.33</version>
    142     </dependency>
    143   </dependencies>
    144 
    145   <build>
    146     <finalName>test.maven</finalName>
    147     <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
    148       <plugins>
    149         <plugin>
    150           <artifactId>maven-clean-plugin</artifactId>
    151           <version>3.0.0</version>
    152         </plugin>
    153         <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
    154         <plugin>
    155           <artifactId>maven-resources-plugin</artifactId>
    156           <version>3.0.2</version>
    157         </plugin>
    158         <plugin>
    159           <artifactId>maven-compiler-plugin</artifactId>
    160           <version>3.7.0</version>
    161         </plugin>
    162         <plugin>
    163           <artifactId>maven-surefire-plugin</artifactId>
    164           <version>2.20.1</version>
    165         </plugin>
    166         <plugin>
    167           <artifactId>maven-war-plugin</artifactId>
    168           <version>3.2.0</version>
    169         </plugin>
    170         <plugin>
    171           <artifactId>maven-install-plugin</artifactId>
    172           <version>2.5.2</version>
    173         </plugin>
    174         <plugin>
    175           <artifactId>maven-deploy-plugin</artifactId>
    176           <version>2.8.2</version>
    177         </plugin>
    178       </plugins>
    179     </pluginManagement>
    180   </build>
    181 </project>
    pom.xml

    在Maven项目加载完成之后,pom文件中会自动生成一些配置,这些配置不需要修改,在其基础上加上一些依赖包即可.

     第三部分:完成一次访问

    1.配置web,xml文件

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
     3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4          xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
     5          version="3.1">
     6 
     7     <display-name>Archetype Created Web Application</display-name>
     8     <!--配置首页-->
     9     <welcome-file-list>
    10         <welcome-file>index.jsp</welcome-file>
    11     </welcome-file-list>
    12     <!--配置springmvc DispatcherServlet-->
    13     <servlet>
    14         <servlet-name>springMVC</servlet-name>
    15         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    16         <init-param>
    17             <!--配置dispatcher.xml作为mvc的配置文件-->
    18             <param-name>contextConfigLocation</param-name>
    19             <param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
    20         </init-param>
    21         <load-on-startup>1</load-on-startup>
    22         <async-supported>true</async-supported>
    23     </servlet>
    24     <servlet-mapping>
    25         <servlet-name>springMVC</servlet-name>
    26         <url-pattern>/</url-pattern>
    27     </servlet-mapping>
    28     <!--把applicationContext.xml加入到配置文件中-->
    29     <context-param>
    30         <param-name>contextConfigLocation</param-name>
    31         <param-value>/WEB-INF/applicationContext.xml</param-value>
    32     </context-param>
    33     <listener>
    34         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    35     </listener>
    36 </web-app>
    web.xml

    2.配置dispatcher-servlet.xml

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns="http://www.springframework.org/schema/beans"
     3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4        xmlns:context="http://www.springframework.org/schema/context"
     5        xmlns:mvc="http://www.springframework.org/schema/mvc"
     6        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
     7     <!--此文件负责整个mvc中的配置-->
     8 
     9     <!--启用spring的一些annotation -->
    10     <context:annotation-config/>
    11 
    12     <!-- 配置注解驱动 可以将request参数与绑定到controller参数上 -->
    13     <mvc:annotation-driven/>
    14 
    15     <!--静态资源映射-->
    16     <!--本项目把静态资源放在了webapp的statics目录下,资源映射如下-->
    17     <mvc:resources mapping="/css/**" location="/res/css/"/>
    18     <mvc:resources mapping="/js/**" location="/res/js/"/>
    19     <mvc:resources mapping="/image/**" location="/res/img/"/>
    20     <mvc:default-servlet-handler />  <!--这句要加上,要不然可能会访问不到静态资源,具体作用自行百度-->
    21 
    22     <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀(如果最后一个还是表示文件夹,则最后的斜杠不要漏了) 使用JSP-->
    23     <!-- 默认的视图解析器 在上边的解析错误时使用 (默认使用html)- -->
    24     <bean id="defaultViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    25         <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
    26         <property name="prefix" value="/WEB-INF/views/"/><!--设置JSP文件的目录位置-->
    27         <property name="suffix" value=".jsp"/>
    28         <property name="exposeContextBeansAsAttributes" value="true"/>
    29     </bean>
    30 
    31     <!-- 自动扫描装配 -->
    32     <context:component-scan base-package="controller"/>
    33 
    34 </beans>
    dispatcher-servlet.xml

    3.配置applicationContext.xml

    1 <?xml version="1.0" encoding="UTF-8"?>
    2 <beans xmlns="http://www.springframework.org/schema/beans"
    3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4        xmlns:context="http://www.springframework.org/schema/context"
    5        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    6     
    7     <context:component-scan base-package="java"/>
    8 
    9 </beans>
    applicationContext.xml

    4.配置jsp页面

    在views下创建index.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>welcome</title>
    </head>
    <body>
    访问成功
    </body>
    </html>

    5.在controller下创建控制器

    package controller;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @Controller
    @RequestMapping("/home")
    public class DemoController {
    
        @RequestMapping("/index")
        public String getStr(){
            return "index";
        }
    }

    6.配置Tomcat

    在图示位置选择Edit Configurations

    在左侧点击+号,在列表中,找到“Tomcat Server -> Local”。

    在右侧Server选项卡中,“Configure”可以配置服务器的名字,自己随意填写就好,当然同时可以配置端口号、浏览器等信息。

    在deployment选项卡中,选择+号,选择artifact。

    在弹出的对话框中,选择带“exploded”的选项,点击OK。

    完成后,在“Application context”输入框的“/”后面输入项目名。点击OK

    配置完成后点击Apply,关闭窗口,出现如下图所示的样子,即为配置成功。点击运行。

    7.访问views的index.jsp

    运行成功后,进入的页面是webapp下的index.jsp,将地址栏的url更改为http://localhost:8080/maven/home/index,即可访问在views下的index.jsp了。其中"/maven”是项目名,“/home”是controller的标志,“/index”是controller下某个方法的标志。

     

  • 相关阅读:
    【bzoj2242】[SDOI2011]计算器
    1109解题报告
    【bzoj3239】Discrete Logging
    【bzoj2480】Spoj3105 Mod
    【POJ1811】Prime Test
    【bzoj3667】Rabin-Miller算法
    【HDU2138】How many prime numbers
    卢卡斯定理
    线段树2
    畅快的甩卖
  • 原文地址:https://www.cnblogs.com/wulisz/p/9371977.html
Copyright © 2011-2022 走看看