您的位置:首页 > 编程语言 > Java开发

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

2017-10-28 20:51 501 查看

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.apach
d83e
e.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工程就建立起来了。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: