目标:用最少的东西,搭建可以运行的最最基础的springMvc登陆校验项目!

spring 4

1.首先配置pom.xml引入spring 相关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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.gof</groupId>
<artifactId>gof-web</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>gof-web</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<springVersion>4.3.0.RELEASE</springVersion>
<jacksonVersion>2.9.3</jacksonVersion>
<mybatisVersion>3.4.4</mybatisVersion>
<mybatisSpringVersion>1.3.0</mybatisSpringVersion>
<c3p0Version>0.9.5.2</c3p0Version>
<mysqlVersion>5.1.38</mysqlVersion>
<slf4jVersion>1.7.21</slf4jVersion>
<log4jVersion>1.2.17</log4jVersion>
<jstlVersion>1.2</jstlVersion>
<servletApiVersion>3.1.0</servletApiVersion>
<junitVersion>4.12</junitVersion>
</properties>
<dependencies>
<!--junit 测试开始-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junitVersion}</version>
<scope>test</scope>
</dependency>
<!--junit 测试结束--> <!--Slf4j + Log4j日志依赖 开始-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4jVersion}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4jVersion}</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4jVersion}</version>
</dependency>
<!--Slf4j + Log4j日志依赖 结束--> <!--JavaEE web容器提供 开始-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>${servletApiVersion}</version>
<scope>provided</scope>
</dependency>
<!--JavaEE web容器提供 开始--> <!--Jsp 常用标签库依赖 开始-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>${jstlVersion}</version>
<scope>runtime</scope>
</dependency>
<!--Jsp 常用标签库依赖 结束--> <!-- SpringMVC模块依赖 开始-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${springVersion}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jacksonVersion}</version>
</dependency>
<!-- SpringMVC模块依赖 结束--> <!-- Mybatis模块依赖 开始-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatisVersion}</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>${mybatisSpringVersion}</version>
</dependency>
<!-- Mybatis模块依赖 结束--> <!--C3p0 数据库连接池依赖 开始-->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>${c3p0Version}</version>
</dependency>
<!--C3p0 数据库连接池依赖 结束--> <!--Jdbc 驱动依赖 开始 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysqlVersion}</version>
</dependency>
<!--Jdbc 驱动依赖 结束 --> <!--Spring常用模块依赖 开始-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${springVersion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${springVersion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${springVersion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${springVersion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${springVersion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${springVersion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${springVersion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${springVersion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${springVersion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${springVersion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${springVersion}</version>
</dependency>
<!--Spring常用模块依赖结束-->
</dependencies> </project>

2.配置web.xml, 这里使用servlet3.1, 配置相关的applicationContext.xml, 这里是监听spring, 以及引用spring-mvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<!-- *** 初始化Spring容器开始 *** -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!-- === 初始化Spring容器结束 === --> <!-- *** 初始化SpringMVC开始 *** -->
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- === 初始化SpringMVC结束 === -->
</web-app>

3. 配置 applicationContext.xml, 这里仅配置spring组件扫描,后期其他再继续配置

<?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:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
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/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
<!-- 注解扫描:扫描@component,@service,@Repository等注解,指定com.gof -->
<context:component-scan base-package="com.gof" />
<!-- <context:annotation-config />仅能够在已经在已经注册过(applicationContext)的bean上面起作用。--> </beans>

4.配置spring-mvc.xml, 配置了注解,以及指定扫描的包, 以及指定spring mvc返回的文件目录格式等

<?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.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"> <!-- spring mvc注解:@controller,@RequestMapping等 -->
<mvc:annotation-driven/> <!-- 对进入DispatcherServlet的URL进行筛查,如果发现是静态资源的请求,就将该请求转由Web应用服务器默认的Servlet处理,如果不是静态资源的请求,才由DispatcherServlet继续处理。 -->
<mvc:default-servlet-handler/> <!-- 指定spring mvc 返回的文件格式后缀,目录, 也可以不指定,就进行移除-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/"/>
<property name="suffix" value=".html"/>
<property name="contentType" value="text/html"/>
</bean> <!--只扫描@Controller注解类,否则影响事务-->
<context:component-scan base-package="com.gof" use-default-filters="false">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan> </beans>

5. 创建User.java

package com.gof.domain;

import java.io.Serializable;

public class User implements Serializable{

    private static final long serialVersionUID = 1L;

    private String userId;

    private String userName;

    private String password;

    private String sex;

    private int age;

    public String getUserId() {
return userId;
} public void setUserId(String userId) {
this.userId = userId;
} public String getUserName() {
return userName;
} public void setUserName(String userName) {
this.userName = userName;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public String getSex() {
return sex;
} public void setSex(String sex) {
this.sex = sex;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} }

6.创建接口:IUserService

package com.gof.service;

import com.gof.domain.User;

public interface IUserService {

    public User getUserByUserName(String userName);

}

7.创建实现类:UserService, 这里没有使用到数据,所以数据暂时写固定

package com.gof.service;

import java.util.HashMap;
import java.util.Map; import org.springframework.stereotype.Component; import com.gof.domain.User; @Component
public class UserService implements IUserService{
/**
* 取user
*/
@Override
public User getUserByUserName(String userName) {
Map<String, User> userMap = new HashMap<String, User>();
//假设userName唯一
User userA = new User();
userA.setUserId("XXAFSFDxafdsafds");
userA.setUserName("jihy");
userA.setPassword("123456"); User userB= new User();
userA.setUserId("XXAFSFDxafdsafds");
userB.setUserName("jihy2");
userB.setPassword("123456"); userMap.put(userA.getUserName(), userA);
userMap.put(userB.getUserName(), userB); return userMap.get(userName);
} }

8.控制层:UserController.java

package com.gof.controller;

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.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody; import com.gof.domain.JsonResponse;
import com.gof.domain.User;
import com.gof.service.IUserService; @Controller
public class LoginController {
@Autowired
private IUserService userService;
/**
* 登陆主页
* @return
*/
@RequestMapping(value="/loginIndex")
public String loginIndex(){ return "loginIndex";
}
/**
* 验证登陆请求
* @param userName
* @param password
* @return
*/
@RequestMapping(value="/login")
@ResponseBody
public JsonResponse login(@RequestParam String userName, @RequestParam String password){
JsonResponse response = new JsonResponse();
response.setStatus("ERROR");
User user = userService.getUserByUserName(userName);
if (user == null) {
return response;
}
if (!password.equals(user.getPassword())) {
return response;
}
response.setStatus("SUCCESS");
return response;
}
}

9.返回对象:JsonResponse.java

package com.gof.domain;

import java.io.Serializable;

public class JsonResponse implements Serializable{

    private static final long serialVersionUID = 1L;

    private String status;

    private Object result;

    public String getStatus() {
return status;
} public void setStatus(String status) {
this.status = status;
} public Object getResult() {
return result;
} public void setResult(Object result) {
this.result = result;
} }

10.l登陆主页:loginIndex.html

<html>
<head>
<script type="text/javascript" src="./static/js/lib/jquery/jquery-1.8.2.js"></script>
</head>
<body>
<h2>Hello World!</h2> <form name="loginForm">
<input type="input" name="userName" id="userName" value="jihy"/>
<input type="password" name="password" id="password" value="123456"/>
<input type="button" name="提交"/>
</form>
</body>
<script type="text/javascript">
alert($("form").serialize());
$(function(){
$.ajax({
type:"POST",
url: "./login",
data: $("form").serialize(),
success: function(data){
alert(JSON.stringify(data));
}});
})
</script>
</html>

11.引用了jquery插件:

12:完成, 使用上面代码, 可以运行的项目!

2.搭建配置最简单的spring mvc 工程-基础版的更多相关文章

  1. 【Spring】搭建最简单的Spring MVC项目

    每次需要Spring MVC的web项目测试一些东西时,都苦于手头上没有最简单的Spring MVC的web项目,现写一个. > 版本说明 首先要引入一些包,Spring的IOC.MVC包就不用 ...

  2. 【Spring】简单的Spring MVC入门例子

    前言 测试特性需要搭建一个简单的Spring MVC的例子,遂记录之,只是例子,只为入门者之示例. 版本说明 声明POM文件,指定需引入的JAR. <properties> <spr ...

  3. 编写简单的spring mvc程序,在tomcat上部署

    编写简单的spring mvc程序,在tomcat上部署 1 用java 配置spring mvc ,可以省去web.xmlpackage hello;import org.springframewo ...

  4. Spring MVC内容协商实现原理及自定义配置【享学Spring MVC】

    每篇一句 在绝对力量面前,一切技巧都是浮云 前言 上文 介绍了Http内容协商的一些概念,以及Spring MVC内置的4种协商方式使用介绍.本文主要针对Spring MVC内容协商方式:从步骤.原理 ...

  5. 使用方法拦截机制在不修改原逻辑基础上为 spring MVC 工程添加 Redis 缓存

    首先,相关文件:链接: https://pan.baidu.com/s/1H-D2M4RfXWnKzNLmsbqiQQ 密码: 5dzk 文件说明: redis-2.4.5-win32-win64.z ...

  6. intellij idea 12 搭建maven web项目 freemarker + spring mvc

    配置spring mvc ,写这篇文章的时候spring已经出了4.0 这里还是用稳定的3.2.7.RELEASE,先把spring和freemarker配置好 1.spring mvc配置 在web ...

  7. Java框架搭建-Maven、Mybatis、Spring MVC整合搭建

    1. 下载eclipse 到网站下载 http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/marsr 选择 ...

  8. 在eclipse中配置一个简单的spring入门项目

    spring是一个很优秀的基于Java的轻量级开源框架,为了解决企业级应用的复杂性而创建的,spring不仅可用于服务器端开发,从简单性.可测试性和松耦合性的角度,任何java应用程序都可以利用这个思 ...

  9. Spring学习(二)——使用Gradle构建一个简单的Spring MVC Web应用程序

    1.新建一个Gradle工程(Project) 在新建工程窗口的左侧中选择 [Gradle],右侧保持默认选择,点击next,模块命名为VelocityDemo. 2.在该工程下新建一个 module ...

随机推荐

  1. 排查和处理一台被攻击的linux系统及其事后分析

    11:40 2018/3/16 发现最近几天服务器流量异常的大,检查了系统命令发现命令最近的修改时间很近,检查dns配置也发现了异常的dns服务器地址. 考虑到事态的严重性,铲掉这个系统重新搭建. 事 ...

  2. xcode6没有prefix.pch预编译文件解决办法

    注意到Xcode6创建的工程没有prefix.pch. 于是手动创建. 在other下选择pch文件 接着到工程的build setting下设置开启预编译并配置路径(文件的路径.因为我新建在cofi ...

  3. C 语言 习题 1-9

    练习1-9 编写一个将输入复制到输出的程序,并将其中连续的多个空格用一个空格代替. #include <stdio.h> int main(int argc, char const *ar ...

  4. 博客内插入bilibili视频

    原理 使用iframe标签,更改其中src的aid和cid,使其对应要插入的视频,即可在文章内插入bilibili视频 获取cid aid即为视频的av号,cid有两种获取方式,一是通过bilibil ...

  5. CSU-2034 Column Addition

    CSU-2034 Column Addition Description A multi-digit column addition is a formula on adding two intege ...

  6. Halcon18 Mac os 下载

    Halcon18 Mac os 下载地址:http://www.211xun.com/download_page_15.html HALCON 18 是一套机器视觉图像处理库,由一千多个算子以及底层的 ...

  7. sqlserver2008链接服务器中执行存储过程配置过程

    参考:http://www.cnblogs.com/ycsfwhh/archive/2010/12/15/1906507.html 1.双方启动MSDTC服务MSDTC(分布式交易协调器),协调跨多个 ...

  8. md5 加密算法和升级

    在这里插一小节加密的吧,使用openssl库进行加密. 使用MD5加密 我们以一个字符串为例,新建一个文件filename.txt,在文件内写入hello ,然后在Linux下可以使用命令md5sum ...

  9. mysql 连接超时的问题

    项目中用mycat做的分表分库,异步通知系统会连接mycat去查数据库数据,有时会抛异常提示mysql server has gone away.最初以为是mycat的问题,在修改了mycat的配置, ...

  10. Linux下解压rar格式的压缩文件

    如果需要在Linux系统下解压RAR格式的压缩包,需要安装Linux版本的rar程序. 具体安装步骤如下: wget http://www.rarlab.com/rar/rarlinux-3.8.0. ...