从零开始新建一个Maven 、springMVC工程
相关代码:http://pan.baidu.com/s/1jIBUr1G
目标: 新建一个名为testSpringMvc的spring MVC工程,maven管理jar包;
1、新建maven管理的web工程
eclipse : new project ---> maven project
---> next
---> next:
---> next:
Group Id:一般填写包名前缀,公司包名,大项目包名
Artifact Id:一般填写项目包名
GroupID 和Artifact ID共同组成代码的包路径。
---> finish:
结束后目录结构如下:
工程新建后报错(jar包依赖环境不同,可能有些会报错有些不会):
修改pom加上相关依赖解决错误:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
run as ----> maven install 测试一下啊有没有编译报错。
run as ---->run on server 运行工程看看有没有报错,或者run install后运行tomcat 指定工程目录为target/testSpringMVC目录启动工程测试
没有问题进行下一步。
2、给工程添加spring MVC
2.1 添加spring MVC相关jar包:
<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>com.xw</groupId>
<artifactId>textAna</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>textAna Maven Webapp</name>
<url>http://maven.apache.org</url>
<!-- 属性:spring 版本 -->
<properties>
<springVersion>3.2.5.RELEASE</springVersion>
</properties>
<dependencies>
......
<!--spring MVC相关jar包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${springVersion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${springVersion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${springVersion}</version>
</dependency>
......
</dependencies>
</project>
2.2 修改web.xml 添加spring MVC支持
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app>
<display-name>Spring MVC Test</display-name>
<!-- 配置spring 配置文件路径 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:config/spring/spring-*.xml</param-value>
</context-param>
<!-- java beans 内存泄漏监听类,防止内存泄漏 -->
<listener>
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 核心配置:spring MVC DispatcherServlet -->
<servlet>
<servlet-name>spring-mvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:config/spring/spring-mvc.xml</param-value>
</init-param>
</servlet> <servlet-mapping>
<servlet-name>spring-mvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping> <!-- 过滤器,解决页面参数传递时中文乱码问题 -->
<filter>
<filter-name>encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
添加后发现报错如下:
实测删除1~3行的格式校验声明错误消失,且工程运行没有问题。
2.3 配置spring mvc配置文件
如下图,新建config/spring/spring-mvc.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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util"
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.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
"> <!-- 开启注解扫描功能,指定扫描的包名,不配置注解无效 -->
<context:component-scan base-package="com.sunline.*" />
<!-- 配置读取外部配置文件 -->
<context:property-placeholder location="classpath:config.properties" />
<!-- 数据源参数配置,使用c3p0包提供的数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="${jdbc.driverClass}"></property>
<property name="jdbcUrl" value="${jdbc.url}"></property>
<property name="user" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
<!-- 此行语句使得resource autowired 等四个注解可以使用 -->
<context:annotation-config /> <!-- 实例化jdbcTemplate,同时注入数据源 -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" p:dataSource-ref="dataSource" /> <!-- 配置事务管理器 -->
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 避免返回中文乱码问题 -->
<mvc:annotation-driven >
<!-- 消息转换器 -->
<mvc:message-converters register-defaults="true">
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes" value="text/html;charset=UTF-8"/>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
</beans>
从上面的配置看出,我们还需要如下几个配置:
-- classpath:config.properties 即WEB-INF/config.properties,由于是maven工程,可以将该文件放到src/main/resources目录下即可,工程编译运行时会自动拷贝到target的WEB-INF中:
config.properties:
ps:因为公司项目上使用的是星环的数据库,所以配置的driverClass、url、username、password等都如下,其他项目请根据实际情况设置,只要能获得数据就算成功。
#jdbc config
jdbc.driverClass=org.apache.hive.jdbc.HiveDriver
jdbc.username=easuser
jdbc.password=Eas@20170417
#DAT
jdbc.url=jdbc:hive2://10.80.2.102:10000,10.80.2.103:10000/easdb
-- 因为工程使用到json 和c3p0包,pom.xml需要添加如下配置:
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.2</version>
</dependency>
至此,spring MVC的配置完成,接下来编写代码测试
3、测试工程
在src/main 下面新建com.sunline.testSpringMvc.controller、com.sunline.testSpringMvc.service、com.sunline.testSpringMvc.dao 三个包,分别在包中新建TestController.java、TestService.java、TestDao.java文件。新建后如下图:
TestController.java:
package com.sunline.testSpingMvc.controller; import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.sunline.testSpingMvc.service.TestService; @Controller
@RequestMapping("/Test")
public class TestController {
@Autowired
TestService testService; @RequestMapping("/getResult")
@ResponseBody
public String getResult(String userId,HttpServletRequest request){
String result = "";
result = testService.getResult(userId);
return result;
}
}
TestService.java:
package com.sunline.testSpingMvc.service; import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.sunline.testSpingMvc.dao.TestDao;
import net.sf.json.JSONArray;
@Service("TestService")
public class TestService {
@Autowired
TestDao testDao; /**
* 取数据、业务处理逻辑
* @param batchId
* @return 结果字符串
*/
public String getResult(String userId) {
//取数据
List<Map<String, Object>> list= testDao.getResult(userId);
//处理数据逻辑,此处直接返回为jsonarray对象字符串
return JSONArray.fromObject(list).toString();
}
}
TestDao.java:
package com.sunline.testSpingMvc.dao; import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository; @Repository("TextAnaDao")
public class TestDao {
@Autowired //spring管理bean
private JdbcTemplate jdbcTemplate; public JdbcTemplate getJdbcTemplate() {
return jdbcTemplate;
}
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
/**
* 从eas_text_ana_file表获取数据
* @param userId
* @return
*/
public List<Map<String, Object>> getResult(String userId) {
String sql = "select * from eas_text_ana_file";
return this.jdbcTemplate.queryForList(sql);
}
}
运行工程,浏览器输入:http://localhost:8080/testSpringMvc/test/getResult 回车,浏览器页面成功得到数据表记录返回的json字符串。表示成功。
PS: 实际测试请修改相关的数据库配置,以实际使用的数据库为准。
既然是web工程,当然也可以编写页面来访问后台获取数据,如使用ajax请求访问http://localhost:8080/testSpringMvc/test/getResult获取数据等方法
从零开始新建一个Maven 、springMVC工程的更多相关文章
- Maven:如何在eclipse里新建一个Maven的java项目和web项目
如何在eclipse里新建一个Maven的java项目和web项目: 一:java项目 New-->Other-->Maven 右击项目-->properties,修改以下文件: ① ...
- 使用IDEA创建一个Maven Web工程:无法创建Java Class文件
今天用IDEA新建了一个maven web工程,项目目录是这样的: 在新创建一个Java class 文件时,却没有Java class功能,无法创建,如图: 解决方案: 选择 File——>P ...
- idea 如何新建一个Maven项目并且写第一个servlet
使用idea已经有段时间了,但是一直没有自己亲自新建一个项目,从头开始写一个Servlet,今天就来学习一下,并且记一个笔记. 一. 1.首先,打开idea new-->Project 2.选择 ...
- 如何在idea里面新建一个maven项目,然后在这个maven项目里创建多个子模块
如何在idea里面配置maven我这里就不多说了 先新建一个maven项目作为总的管理项目 不用勾选什么,直接下一步 这样子一个普通的maven项目就创建成功了. 因为这个项目是用来管理多个子模块的, ...
- 【Java_SSM】(二)使用eclipse创建一个Maven web工程
这篇博文我们介绍一下如何利用eclipse创件一个maven web工程. (1)File--New--Other--Maven--Maven project 此处我们快速创建一个maven工程 点击 ...
- ecplise maven springmvc工程搭建
转载自:https://www.cnblogs.com/crazybirds/p/4643497.html 内网上网代理配置: 第一步:新建maven项目,选择Maven Project,如图1. ...
- 利用eclipse新建一个maven项目步骤:
1.打开eclipse,左键点击左上角File,选中New,左键点击选中Maven Project,出现下面界面: 2.把打钩的去掉,选择自己项目所在的工作空间,如下图,我建在我的工作空间worksp ...
- IDEA创建maven web工程
一.新建一个maven web工程 step1 File --> New --> Project step2 按下图步骤操作 step3 填写项目信息 step4 选择本地的maven安装 ...
- Eclipse中一个Maven工程的目录结构
在之前的javaSE开发中,没有很关注Eclipse工程目录下的环境,总是看见一个src就点进去新建一个包再写一个class.以后的日子中也没有机会注意到一个工程到底是怎么组织的这种问题,跟不要说自己 ...
随机推荐
- CH5E09 能量相连【区间DP】
5E09 能量项链 0x5E「动态规划」练习 描述 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并且, ...
- centos 目录结构 快捷键 ls命令,alias别名,so:动态库 a:静态库,环境变量PATH,Ctrl+z 暂停命令,Ctrl+a 光标到行首,Ctrl+e 光标到行尾,Ctrl+u 删除光标前所有字符 Ctrl+r 搜索命 hash命令 Ctrl+左箭头/右箭头 cd命令 第三节课
centos 目录结构 快捷键 ls命令,alias别名,so:动态库 a:静态库,环境变量PATH,Ctrl+z 暂停命令,Ctrl+a 光标到行首,Ctrl+e 光标到行尾,Ctrl+u 删除光标 ...
- spring Security 得到认证用户名的方法
@Service("userService")public class UserServiceImpl implements UserService { @Overridepubl ...
- Mac OS X 在 Finder 里快速创建文本文件
Automator 新建一个 Application 选取:应用程序 实用工具→运行AppleScript 添加一个动作 "Run AppleScript"代码如下: on r ...
- Django REST framework 之 API认证
RESTful API 认证 和 Web 应用不同,RESTful APIs 通常是无状态的, 也就意味着不应使用 sessions 或 cookies, 因此每个请求应附带某种授权凭证,因为用户授权 ...
- Mybatis一对一映射
一.Mybatis一对一映射 本例讲述使用mybatis开发过程中常见的一对一映射查询案例.只抽取关键代码和mapper文件中的关键sql和配置,详细的工程搭建和Mybatis详细的流程代码可参见&l ...
- MISC-WHCTF2016-crypto100
题目:李二狗的梦中情人 找不同! 如图,下载得到“nvshen.png” 流程:看到这个被命名为nvshen的文件,感觉文件本身会有东西.用16进制查看器在图片的末尾发现了一串类似URL的ASCII ...
- [golang note] 接口使用
侵入式接口 √ 在其他一些编程语言中,接口主要是作为不同组件之间的契约存在,即规定双方交互的规约. √ 对契约的实现是强制的,即必须确保用户的确实现了该接口,而实现一个接口,需要从该接口继承. √ 如 ...
- Java基础知识 Set
在Java中使用Set,可以方便地将需要的类型以集合类型保存在一个变量中.主要应用在显示列表.Set是一个不包含重复元素的 collection. 更确切地讲,set 不包含满足 e1.equals( ...
- vue项目多页配置
文件目录 ├─build ├─config ├─dist │ └─static │ ├─css │ ├─img │ └─js ├─src │ ├─assets │ │ ├─img │ │ ├─js │ ...