利用Maven和SpringMvc搭建javaweb工程

第一篇文章,直接进入正题。

面向对象:对SpringMvc和Maven有一定了解的同学。

前置条件:IDEA+Tomcat+JDK+Maven,自行安装,建议tomcat9,JDK8.

1、新建maven工程,选择模板

2、填写groupid和artifactid

3、设置本地Maven路径、配置文件和本地库。

4、设置项目名称和项目路径

5、点击finish,等待IDEA编译,途中打开自动导入


6、完成后项目路径结构如下

7、编辑pom.xml文件,添加jar包依赖,导入常规项目jar包,内容如下:

  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  4.0.0

  online.chongwuzhi

  maven_springmvc_test

  1.0-SNAPSHOT

  war

  maven_springmvc_test Maven Webapp

 

  http://www.example.com

 

    UTF-8

    1.7

    1.7

 

 

   

      dom4j

      dom4j

      1.6.1

   

   

   

      com.fasterxml.jackson.core

      jackson-databind

      2.9.8

   

   

   

      org.aspectj

      aspectjweaver

      1.9.2

   

   

   

      org.apache.commons

      commons-lang3

      3.4

   

   

   

      commons-io

      commons-io

      2.4

   

   

   

      commons-pool

      commons-pool

      1.6

   

   

   

   

      commons-dbcp

      commons-dbcp

      1.4

   

   

   

      javax.servlet

      javax.servlet-api

      4.0.1

      provided

   

   

      junit

      junit

      4.11

      test

   

   

      org.slf4j

      slf4j-log4j12

      1.7.21

   

   

      org.springframework

      spring-webmvc

      4.3.18.RELEASE

   

   

      org.springframework

      spring-web

      4.3.18.RELEASE

   

   

      org.springframework

      spring-jdbc

      5.1.5.RELEASE

   

   

      org.apache.httpcomponents

      httpcore

      4.4.11

   

   

   

      org.apache.httpcomponents

      httpclient

      4.5.6

   

   

   

      net.sf.json-lib

      json-lib

      2.4

      jdk15

   

   

   

      com.aliyun.oss

      aliyun-sdk-oss

      3.4.2

   

   

      org.apache.commons

      commons-lang3

      3.4

   

   

      com.oracle

      ojdbc14

      11.2.0.1.0

   

   

   

      io.jsonwebtoken

      jjwt

      0.6.0

   

   

   

      commons-fileupload

      commons-fileupload

      1.3.3

   

   

   

      org.bouncycastle

      bcprov-jdk15

      1.46

   

 

 

    maven_springmvc_test

   

     

       

          maven-clean-plugin

          3.1.0

       

       

       

          maven-resources-plugin

          3.0.2

       

       

          maven-compiler-plugin

          3.8.0

       

       

          maven-surefire-plugin

          2.22.1

       

       

          maven-war-plugin

          3.2.2

       

       

          maven-install-plugin

          2.5.2

       

       

          maven-deploy-plugin

          2.8.2

       

     

   

   

     

        src/main/java

       

          **/*.*

       

       

          **/*.java

       

     

   

 

8、编辑完成后,IDEA自动下载Jar包,如果本地库或者中心库已有Jar包则不需要下载。下载完成后的Jar包依赖如下:


9、以上完成了Maven的支持和配置,继续添加SpringMvc框架支持,右键项目名称,添加框架支持。


10、如果列表中没有Spring Mvc选项,先删除之前的框架

删除之前的框架支持
删除之前的框架支持
重新添加

11、添加完成后出现如下2个文件

12、完善SpringMvc目录结构,在main文件夹下新建java和resources2个文件夹

13、调整刚才2个文件夹的属性,点击工程结构图标(按键为ctrl+alt+shift+s)

点击此按钮或者按键


调整如图,保存

14、在java文件中建立项目需要的包,如下:

按个人习惯配置

15、以上完成了Spring的框架支持,下边配置SpringMvc文件,此步骤是本人根据自己的理解和学习所做的改动,简化了xml文件的控制和冗余,如有其他个人理解,可自己设置。

首先删除之前的2个配置文件


在java文件夹中添加3个新的配置文件

    3个文件全文如下:

    1,SpringMVC.xml

text/plain;charset=utf-8 text/html;charset=UTF-8 text/json;charset=UTF-8

    2,db.properties(链接和)

jdbc.driverClassName=oracle.jdbc.driver.OracleDriver

jdbc.url=jdbc\:oracle\:thin\:@ip\:1521\:orcl

jdbc.username=***

jdbc.password=***

jdbc.initialSize=20

jdbc.maxActive=100

jdbc.maxIdle=10

jdbc.minIdle=5

jdbc.maxWait=5000

jdbc.abandTime=2000

    3,log4j.properties

log4j.rootLogger = DEBUG,systemOut,logDailyFile

log4j.logger.org.apache=DEBUG

#输出到控制台

log4j.appender.systemOut = org.apache.log4j.ConsoleAppender

log4j.appender.systemOut.layout = org.apache.log4j.PatternLayout

log4j.appender.systemOut.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n

log4j.appender.systemOut.Threshold = ERROR

log4j.appender.systemOut.ImmediateFlush = TRUE

log4j.appender.systemOut.Target = System.out

#按DatePattern输出到文件

log4j.appender.logDailyFile = org.apache.log4j.DailyRollingFileAppender

log4j.appender.logDailyFile.layout = org.apache.log4j.PatternLayout

log4j.appender.logDailyFile.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c] [%p] - %m%n

#指定日志消息的输出最低层次

log4j.appender.logDailyFile.Threshold = DEBUG

#默认值是true,所有的消息都会被立即输出

log4j.appender.logDailyFile.ImmediateFlush = TRUE

#默认值true,将消息追加到指定文件中,false指将消息覆盖指定的文件内容

log4j.appender.logDailyFile.Append = TRUE

log4j.appender.logDailyFile.File = ../logs/prg.log

log4j.appender.logDailyFile.DatePattern = '.'yyyy-MM-dd

log4j.appender.logDailyFile.Encoding = UTF-8

    修改web.xml,全文如下:

SpringMVC org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:SpringMVC.xml 1 SpringMVC *.do CharacterEncodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding utf-8 CharacterEncodingFilter *.do log4jConfigLocation classpath:log4j.properties

16、以上完成了SpringMvc的文件配置和Maven的框架支持,接下来实战测试,配置应用服务器,以tomcat为例(自行安装tomcat),点击添加配置:

添加配置
选择添加tomcat
选择本地tomcat,部署项目
启动tomcat
测试成功

17、以上完成了SpringMvhe Maven的基本配置,接下来测试基于前后端分离JSON交互的SpringMvc框架(SpringMvc知识自行学习)。


新建TestController java类

先测试不传参数的请求,方法内容如下:

package com.controller;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.ResponseBody;

import java.util.HashMap;

import java.util.Map;

@Controller

@RequestMapping("/test")

public class TestController {

    @RequestMapping("/test01.do")

    @ResponseBody

    public Map test01(){

        Map map = new HashMap<>();

        map.put("code", "1");

        map.put("msg", "success");

        return map;

    }

}

测试成功,返回JSON数据!

接下来测试传参数的请求,首先新建方法,内容如下:

@RequestMapping("/test02.do")

@ResponseBody

public Map test02(@RequestBody JSONObject js){

    String name= js.getString("name");

    String age= js.getString("age");

    Map map = new HashMap<>();

    map.put("code", name);

    map.put("msg", age);

    return map;

}

继续新建测试方法,如下

private static void main2()  {

    HttpClient client = HttpClientBuilder.create().build()

;

HttpPost post = new HttpPost("http://localhost:8080/maven_springmvc_test_war_exploded/test/test02.do");

post.addHeader("Content-Type", "application/json;charset=utf-8");

JSONObject request = new JSONObject();

request.put("name","testName测试名称");

request.put("age","testName测试名称");

    try{

        StringEntity s =new StringEntity(request.toString(),"UTF-8");

s.setContentEncoding("utf-8");

s.setContentType("application/json");

post.setEntity(s);

HttpResponse res = client.execute(post);

        if(res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {

            HttpEntity entity = res.getEntity();

String result = EntityUtils.toString(entity);

System.out.println(result);

}

    }

catch (Exception e) {

throw new RuntimeException(e);

}

重启tomcat, 运行测试方法main2


测试成功

总结:本文描述了用Maven和SpringMvc框架搭建javaweb工程的案例,基本实现前后端分离的开发模式,前后端交互只需要相互传输JSON数据,其中Maven和SpringMvc的知识需要自行学习,如有疑问,欢迎交流。

你可能感兴趣的:(利用Maven和SpringMvc搭建javaweb工程)