简单粗暴JavaWeb(基于SpringMvc+Maven+Mysql)-第一篇:web工程搭建

1、利用maven骨架直接建立基础工程

使用的软件为idea,首先file-new-project选择maven,使用archetype(骨架)建立一个简单的webapp工程,具体选择


Archetype是maven中的骨架/原型,可以理解为代码工程原型,通过maven-archetype-webapp就可以快速建立一个webapp工程,同理,通过maven-archetype-quickstart可以快速建立一个简单的java工程。点击next后填入工程坐标:



GroupId是机构号,一般形式如com.hanyu,artifactId是工程唯一id,用以区分不同工程,version是版本,开发版本用SNAPSHOT,发布版本用RELEASE。



然后进行maven基础配置,maven home directory是用于此工程的maven文件夹的bin文件夹所在目录:


Usersetting file是此工程用的setting.xml,setting.xml类似pom,但更像一个稳定用于多个工程的pom文件,所以其中的内容共用性多于独特性,settings.xml有全局版和用户版,用户版一般放在.m2文件夹中;local repository是本地仓库,也就是maven通过依赖下载的包的本地存储地址。


然后最后进行工程目录等设置,默认即可


finish后完成骨架构建。

每当新打开工程之后,或者加入依赖之后,会有此标志,代表下载更新,点击import changes即可



结束之后,第一步利用maven搭建项目骨架就完成了,非常简单。刚完成时工程结构如图



2、通过配置pom文件下载需要的包(例如SpringMvc等相关的包)以及完善工程文件组成结构

这里附上我的pom,按照这个来的话,不会有错(虽然不保证有没有冗余,等以后精通了再来清理)

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>www.codefeather</groupId>
  <artifactId>testMavenProject001</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>testMavenProject001 Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>4.3.1.RELEASE</version>
    </dependency>
    <!--spring-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>4.3.1.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>4.3.1.RELEASE</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>4.3.1.RELEASE</version>
    </dependency>

    <!--Spring Web + Spring MVC-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>4.3.1.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>4.3.1.RELEASE</version>
    </dependency>

    <!--json支持-->
    <!-- https://mvnrepository.com/artifact/org.json/json -->
    <dependency>
      <groupId>org.json</groupId>
      <artifactId>json</artifactId>
      <version>20160212</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/net.sf.json-lib/json-lib -->
    <dependency>
      <groupId>net.sf.json-lib</groupId>
      <artifactId>json-lib</artifactId>
      <version>2.4</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/commons-lang/commons-lang -->
    <dependency>
      <groupId>commons-lang</groupId>
      <artifactId>commons-lang</artifactId>
      <version>2.6</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/commons-beanutils/commons-beanutils -->
    <dependency>
      <groupId>commons-beanutils</groupId>
      <artifactId>commons-beanutils</artifactId>
      <version>1.8.3</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/commons-collections/commons-collections -->
    <dependency>
      <groupId>commons-collections</groupId>
      <artifactId>commons-collections</artifactId>
      <version>3.2.1</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
    <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <version>1.2</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/net.sf.ezmorph/ezmorph -->
    <dependency>
      <groupId>net.sf.ezmorph</groupId>
      <artifactId>ezmorph</artifactId>
      <version>1.0.6</version>
    </dependency>
    <!--json serialize and deserialization-->
    <!-- 引入fastjson依赖 -->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.12</version>
    </dependency>
    <!-- 引入gson依赖 -->
    <dependency>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
      <version>2.6.2</version>
    </dependency>
    <!--NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config-->
    <!-- https://mvnrepository.com/artifact/jstl/jstl -->
    <dependency>
      <groupId>jstl</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.eclipse.jetty/jetty-server -->
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-server</artifactId>
      <version>9.4.6.v20170531</version>
    </dependency>
  </dependencies>
  <build>
    <finalName>testMavenProject001</finalName>
  </build>
</project>

更新后,将文件目录标准化,因为maven就是一个约定优于配置的工具,我们约定了工程目录标准,如图,自己动手将不全的建立,但是要注意把相应的文件夹进行属性的设置:




其中java文件夹配置为source类型,test文件夹配置为test类型,此时会发现页面上工程目录颜色变化了,同时,如果尝试在设置为source类型的java文件夹中建立文件夹,发现只能建立package。



以下内容参考http://www.cnblogs.com/qixiaoyizhan/p/5819392.html,此楼主很热心

3、设置几个配置文件

开始建立配置文件,首先是web.xml,内容如下

<?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"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">
  <welcome-file-list>
    <welcome-file>/index.jsp</welcome-file>
  </welcome-file-list>
  <!-- Spring MVC配置 -->
  <servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

    <!-- 可以自定义servlet.xml配置文件的位置和名称,默认为WEB-INF目录下,名称为[<servlet-name>]-servlet.xml,如spring-servlet.xml
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring-servlet.xml</param-value>
    </init-param>-->

    <!-- load-on-startup元素标记容器是否在启动的时候就加载这个servlet(实例化并调用其init()方法) -->
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/</url-pattern>
    <!--<url-pattern>*.do</url-pattern>-->
  </servlet-mapping>

  <!-- Spring配置 -->
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

  <!-- 指定Spring Bean的配置文件所在目录。默认配置在WEB-INF目录下 -->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
  </context-param>
</web-app>

spring-servlet.xml和classpath:applicationContext.xml标红是因为还没有建立相应文件,下面进行分别建立

在WEB-INF文件夹下面建立spring-servlet.xml文件


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd">

    <!-- 启动注解驱动的Spring MVC功能,注册请求url和注解POJO类方法的映射-->
    <mvc:annotation-driven >

    </mvc:annotation-driven>

    <!-- 启动包扫描功能,以便注册带有@Controller、@service、@repository、@Component等注解的类成为spring的bean -->
    <context:component-scan base-package="HelloSpringMvc.controller" />
    <!-- 对模型视图名称的解析,在请求时模型视图名称添加前后缀 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/"/>    <!-- 前缀 -->
        <property name="suffix" value=".jsp"/>    <!-- 后缀 -->
    </bean>
</beans>

然后在resources资源文件夹下建立applicationContext.xml


<?xml version="1.0" encoding="UTF-8"?>
<beans
        xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
    <!-- 我们可以在其中添加我们所需要配置的bean,也可以添加相应的数据库连接和事务处理等等,方便后续拓展
           -->
</beans>


4、写一个简单的控制器controller

好了,现在建立一个controller,如下,注意在java中建立包的时候可能会遇到“想建立同级文件夹却建立了下级”,这个时候通过建立文件夹的时候命名用全名的方式可以解决,比如想在java文件夹下面建立两级包:HelloSpringMvc-controller,这个时候输入HelloSpringMvc.controller即可,如果还想再HelloSpringMvc下建立一个model包,那么直接右键HelloSpringMvc可能不能借建立,这个时候右键java,建立输入HelloSpringMvc.model即可,如图:



package HelloSpringMvc.controller;

/**
 * Created by yuhan.shen on 2017/10/25.
 */

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping(value = "/Test/*") //访问的url地址前缀,可以不写,写了就必须在方法url前面先加上class url 进行区分控制器
public class TestController
{
    //访问地址:http://localhost:8080/Test/returnSuccess
    @RequestMapping(value = "returnSuccess")    //实际访问的url地址
    public String returnSuccess() {
        return "/Views/success";    //返回Views文件夹下的success.jsp页面
    }
}

由于returnSuccess方法返回的是Views文件夹下的success.jsp,.因此我们在webapp-Views下建立此jsp文件



<%--
  Created by IntelliJ IDEA.
  User: yuhan.shen
  Date: 2017/10/25
  Time: 10:18
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
Hello!SpringMvc!
</body>
</html>


5、利用tomcat加载工程

步骤很简单:







然后运行,键入url,http://localhost:8080/Test/returnSuccess,到这里,一个最简单的javaweb工程就建立起来了。




  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值