IDEA搭建SpringMVC+Mybatis+Mysql+Maven框架
相关环境
- Intellij IDEA Ultimate
- Tomcat
- JDK
- MySql 5.6(win32/win64)
- Maven (可使用 Intellij IDEA 自带的)
搭建步骤
创建项目工程
1、创建工程,选择 Maven
2、填写项目信息
初始化配置
1、Maven 配置
先说 Maven 的项目依赖配置文件 pom.xml,我们进入mvn repository 查找需要搜索的包结果如图:
点击进入第一个搜索结果,然后各种版本
点击所需版本。如图:
里面的 dependency 即为所需标签。
总的配置文件 pom.xml 添加依赖包信息如下:
<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>SSMTestProject</groupId>
<artifactId>SSMTestProject</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>SSMTestProject 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-core</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.7.2</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
<span class="hljs-tag"><<span class="hljs-name">dependency</span>></span>
<span class="hljs-tag"><<span class="hljs-name">groupId</span>></span>org.springframework.data<span class="hljs-tag"></<span class="hljs-name">groupId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">artifactId</span>></span>spring-data-jpa<span class="hljs-tag"></<span class="hljs-name">artifactId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">version</span>></span>1.9.4.RELEASE<span class="hljs-tag"></<span class="hljs-name">version</span>></span>
<span class="hljs-tag"></<span class="hljs-name">dependency</span>></span>
<span class="hljs-tag"><<span class="hljs-name">dependency</span>></span>
<span class="hljs-tag"><<span class="hljs-name">groupId</span>></span>org.hibernate.javax.persistence<span class="hljs-tag"></<span class="hljs-name">groupId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">artifactId</span>></span>hibernate-jpa-2.0-api<span class="hljs-tag"></<span class="hljs-name">artifactId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">version</span>></span>1.0.1.Final<span class="hljs-tag"></<span class="hljs-name">version</span>></span>
<span class="hljs-tag"></<span class="hljs-name">dependency</span>></span>
<span class="hljs-tag"><<span class="hljs-name">dependency</span>></span>
<span class="hljs-tag"><<span class="hljs-name">groupId</span>></span>org.hibernate<span class="hljs-tag"></<span class="hljs-name">groupId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">artifactId</span>></span>hibernate-entitymanager<span class="hljs-tag"></<span class="hljs-name">artifactId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">version</span>></span>5.1.0.Final<span class="hljs-tag"></<span class="hljs-name">version</span>></span>
<span class="hljs-tag"></<span class="hljs-name">dependency</span>></span>
<span class="hljs-tag"><<span class="hljs-name">dependency</span>></span>
<span class="hljs-tag"><<span class="hljs-name">groupId</span>></span>javax.servlet<span class="hljs-tag"></<span class="hljs-name">groupId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">artifactId</span>></span>servlet-api<span class="hljs-tag"></<span class="hljs-name">artifactId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">version</span>></span>2.5<span class="hljs-tag"></<span class="hljs-name">version</span>></span>
<span class="hljs-tag"></<span class="hljs-name">dependency</span>></span>
<span class="hljs-tag"><<span class="hljs-name">dependency</span>></span>
<span class="hljs-tag"><<span class="hljs-name">groupId</span>></span>mysql<span class="hljs-tag"></<span class="hljs-name">groupId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">artifactId</span>></span>mysql-connector-java<span class="hljs-tag"></<span class="hljs-name">artifactId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">version</span>></span>5.1.38<span class="hljs-tag"></<span class="hljs-name">version</span>></span>
<span class="hljs-tag"></<span class="hljs-name">dependency</span>></span>
<span class="hljs-tag"><<span class="hljs-name">dependency</span>></span>
<span class="hljs-tag"><<span class="hljs-name">groupId</span>></span>org.json<span class="hljs-tag"></<span class="hljs-name">groupId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">artifactId</span>></span>json<span class="hljs-tag"></<span class="hljs-name">artifactId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">version</span>></span>20160212<span class="hljs-tag"></<span class="hljs-name">version</span>></span>
<span class="hljs-tag"></<span class="hljs-name">dependency</span>></span>
<span class="hljs-tag"><<span class="hljs-name">dependency</span>></span>
<span class="hljs-tag"><<span class="hljs-name">groupId</span>></span>com.fasterxml.jackson.core<span class="hljs-tag"></<span class="hljs-name">groupId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">artifactId</span>></span>jackson-core<span class="hljs-tag"></<span class="hljs-name">artifactId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">version</span>></span>2.7.2<span class="hljs-tag"></<span class="hljs-name">version</span>></span>
<span class="hljs-tag"></<span class="hljs-name">dependency</span>></span>
<span class="hljs-tag"><<span class="hljs-name">dependency</span>></span>
<span class="hljs-tag"><<span class="hljs-name">groupId</span>></span>com.fasterxml.jackson.core<span class="hljs-tag"></<span class="hljs-name">groupId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">artifactId</span>></span>jackson-databind<span class="hljs-tag"></<span class="hljs-name">artifactId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">version</span>></span>2.7.2<span class="hljs-tag"></<span class="hljs-name">version</span>></span>
<span class="hljs-tag"></<span class="hljs-name">dependency</span>></span>
<span class="hljs-tag"><<span class="hljs-name">dependency</span>></span>
<span class="hljs-tag"><<span class="hljs-name">groupId</span>></span>org.mybatis<span class="hljs-tag"></<span class="hljs-name">groupId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">artifactId</span>></span>mybatis<span class="hljs-tag"></<span class="hljs-name">artifactId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">version</span>></span>3.3.1<span class="hljs-tag"></<span class="hljs-name">version</span>></span>
<span class="hljs-tag"></<span class="hljs-name">dependency</span>></span>
<span class="hljs-tag"><<span class="hljs-name">dependency</span>></span>
<span class="hljs-tag"><<span class="hljs-name">groupId</span>></span>org.mybatis<span class="hljs-tag"></<span class="hljs-name">groupId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">artifactId</span>></span>mybatis-spring<span class="hljs-tag"></<span class="hljs-name">artifactId</span>></span>
<span class="hljs-tag"><<span class="hljs-name">version</span>></span>1.2.4<span class="hljs-tag"></<span class="hljs-name">version</span>></span>
<span class="hljs-tag"></<span class="hljs-name">dependency</span>></span>
</dependencies>
<build>
<finalName>SSMTestProject</finalName>
</build>
</project>
2、web 配置
web.xml 配置添加如下信息:
<!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>SSMTestProject</display-name>
<servlet>
<servlet-name>myspring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>myspring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<filter>
<filter-name>encodingFilter</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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
使用 spring 框架的默认 DispatcherSerlet。load-on-starup标签表示 servlet 的启用时间,servlet-name指定了 serevlet 配置文件 myspring。url -pattern是指所有路径均会被该 servlet 拦截。而 filter 一句是防止中文乱码,启用 uft-8。
配置 Servlet myspring-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.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">
<span class="hljs-comment"><!--指明 controller 所在包,并扫描其中的注解--></span>
<span class="hljs-tag"><<span class="hljs-name">context:component-scan</span> <span class="hljs-attr">base-package</span>=<span class="hljs-string">"com.ssm.controller"</span>/></span>
<span class="hljs-comment"><!-- 静态资源(js、image等)的访问 --></span>
<span class="hljs-tag"><<span class="hljs-name">mvc:default-servlet-handler</span>/></span>
<span class="hljs-comment"><!-- 开启注解 --></span>
<span class="hljs-tag"><<span class="hljs-name">mvc:annotation-driven</span>/></span>
<span class="hljs-comment"><!--ViewResolver 视图解析器--></span>
<span class="hljs-comment"><!--用于支持Servlet、JSP视图解析--></span>
<span class="hljs-tag"><<span class="hljs-name">bean</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"jspViewResolver"</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"org.springframework.web.servlet.view.InternalResourceViewResolver"</span>></span>
<span class="hljs-tag"><<span class="hljs-name">property</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"viewClass"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"org.springframework.web.servlet.view.JstlView"</span>/></span>
<span class="hljs-tag"><<span class="hljs-name">property</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"prefix"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"/WEB-INF/jsp/"</span>/></span>
<span class="hljs-tag"><<span class="hljs-name">property</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"suffix"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">".jsp"</span>/></span>
<span class="hljs-tag"></<span class="hljs-name">bean</span>></span>
</beans>
log4j.xml 配置文件如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!--
- This is a sample configuration for log4j.
- It simply just logs everything into a single log file.
- Note, that you can use properties for value substitution.
-->
<appender name="CORE" class="org.apache.log4j.FileAppender">
<param name="File" value="${org.apache.cocoon.work.directory}/cocoon-logs/log4j.log" />
<param name="Append" value="false" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p %t %c - %m%n"/>
</layout>
</appender>
<root>
<priority value="${org.apache.cocoon.log4j.loglevel}"/>
<appender-ref ref="CORE"/>
</root>
</log4j:configuration>
3、mybatis 配置
可以使用注解或者 xml 的方式配置 sql 操作,这里使用注解方式:
// config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- development: 开发模式 work: 工作模式 -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/ssm" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
<span class="hljs-comment"><!--<mappers>
<mapper resource="userMapper.xml" />
</mappers>--></span>
<span class="hljs-tag"><<span class="hljs-name">mappers</span>></span>
<span class="hljs-tag"><<span class="hljs-name">mapper</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"com.ssm.Mapper.UserMapper"</span>/></span>
<span class="hljs-tag"></<span class="hljs-name">mappers</span>></span>
</configuration>
使用 xml 方式:
// userMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="userMapper">
<!-- 根据 ID 获取对应的值 -->
<select id="findUserById" parameterType="int" resultType="com.ssm.model.User">
select * from user where id = #{id}
</select>
<insert id="addUser" parameterType="com.ssm.model.User">
insert into user(username,password) values(#{username},#{password})
</insert>
</mapper>
Java 类
在 main 文件夹下创建文件夹 java,点击右键将 java 作为 source 文件夹:
Controller
// MainController.java
package com.ssm.controller;
import com.ssm.model.User;
import com.ssm.service.IUserService;
import com.ssm.service.UserServiceImpl;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
@Controller
public class MainController {
<span class="hljs-keyword">private</span> IUserService service = new UserServiceImpl();
<span class="hljs-meta">@RequestMapping(value = <span class="hljs-string">"/hello"</span>, method = RequestMethod.GET)</span>
<span class="hljs-keyword">public</span> String index(User user) {
<span class="hljs-keyword">return</span> <span class="hljs-string">"index"</span>;
}
<span class="hljs-meta">@RequestMapping(value=<span class="hljs-string">"/nice"</span>,method = RequestMethod.GET)</span>
<span class="hljs-meta">@ResponseBody</span>
<span class="hljs-keyword">public</span> List<User> nice(Model model){
<span class="hljs-keyword">return</span> service.getAllUsers();
}
<span class="hljs-meta">@RequestMapping(value =<span class="hljs-string">"/toJson"</span>,method=RequestMethod.POST)</span>
<span class="hljs-meta">@ResponseBody</span>
<span class="hljs-keyword">public</span> User toJson(User user){
service.addUser(user); <span class="hljs-comment">//一起测试了</span>
<span class="hljs-keyword">return</span> service.findUserById(<span class="hljs-number">2</span>);
}
}
DAO
// IUserDao.java
package com.ssm.Dao;
import com.ssm.model.User;
import java.util.List;
public interface IUserDao {
public User findUserById(int id); // 查询
public void addUser(User user); // 添加
public List<User> getAllUsers();
}
// UserDaoImpl.java
package com.ssm.Dao;
import com.ssm.Mapper.UserMapper;
import com.ssm.model.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.Reader;
import java.util.List;
public class UserDaoImpl implements IUserDao{
private SqlSessionFactory sessionFactory;
private SqlSession session;
private UserMapper mapper;
public UserDaoImpl() {
String resource = "config.xml";
// try {
// Reader reader = Resources.getResourceAsReader(resource);
// sessionFactory = new SqlSessionFactoryBuilder().build(reader);
// session = sessionFactory.openSession();
// } catch (IOException e) {
// e.printStackTrace();
// }
try {
Reader reader = Resources.getResourceAsReader(resource);
sessionFactory = new SqlSessionFactoryBuilder().build(reader);
session = sessionFactory.openSession();
mapper = session.getMapper(UserMapper.class);
} catch (IOException e) {
e.printStackTrace();
}
}
<span class="hljs-keyword">public</span> User <span class="hljs-title function_">findUserById</span><span class="hljs-params">(<span class="hljs-type">int</span> id)</span> {
// String statement = "userMapper.findUserById";
// User user = (User)session.selectOne(statement, 1);
// return user;
return mapper.findUserById(id);
}
public void addUser(User user) {
// String statement = "userMapper.addUser";
// session.insert(statement, user);
// session.commit(); // 一定要记得 commit
mapper.addUser(user);
session.commit();
}
<span class="hljs-keyword">public</span> List<User> <span class="hljs-title function_">getAllUsers</span><span class="hljs-params">()</span> {
<span class="hljs-keyword">return</span> mapper.getAllUsers();
}
}
Mapper
// UserMapper.java
package com.ssm.Mapper;
import com.ssm.model.User;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import java.util.List;
public interface UserMapper {
@Select("select * from user where id = #{id}")
User findUserById(int id);
<span class="hljs-meta">@Insert("insert into user(username,password) values(#{username},#{password})")</span>
<span class="hljs-keyword">void</span> <span class="hljs-title function_">addUser</span><span class="hljs-params">(User user)</span>;
<span class="hljs-meta">@Select("select * from user")</span>
List<User> <span class="hljs-title function_">getAllUsers</span><span class="hljs-params">()</span>;
}
Model
// User.java
package com.ssm.model;
public class User {
private String username;
private String password;
private int id;
<span class="hljs-keyword">public</span> <span class="hljs-title class_">String</span> <span class="hljs-title function_">getUsername</span>(<span class="hljs-params"></span>) {
<span class="hljs-keyword">return</span> username;
}
<span class="hljs-keyword">public</span> <span class="hljs-built_in">void</span> <span class="hljs-title function_">setUsername</span>(<span class="hljs-params"><span class="hljs-built_in">String</span> username</span>) {
<span class="hljs-variable language_">this</span>.<span class="hljs-property">username</span> = username;
}
<span class="hljs-keyword">public</span> <span class="hljs-title class_">String</span> <span class="hljs-title function_">getPassword</span>(<span class="hljs-params"></span>) {
<span class="hljs-keyword">return</span> password;
}
<span class="hljs-keyword">public</span> <span class="hljs-built_in">void</span> <span class="hljs-title function_">setPassword</span>(<span class="hljs-params"><span class="hljs-built_in">String</span> password</span>) {
<span class="hljs-variable language_">this</span>.<span class="hljs-property">password</span> = password;
}
<span class="hljs-keyword">public</span> <span class="hljs-title class_">User</span>(<span class="hljs-title class_">String</span> username, <span class="hljs-title class_">String</span> password, int id) {
<span class="hljs-variable language_">this</span>.<span class="hljs-property">username</span> = username;
<span class="hljs-variable language_">this</span>.<span class="hljs-property">password</span> = password;
<span class="hljs-variable language_">this</span>.<span class="hljs-property">id</span> = id;
}
<span class="hljs-keyword">public</span> <span class="hljs-title class_">User</span>(<span class="hljs-title class_">String</span> username, <span class="hljs-title class_">String</span> password) {
<span class="hljs-variable language_">this</span>.<span class="hljs-property">username</span> = username;
<span class="hljs-variable language_">this</span>.<span class="hljs-property">password</span> = password;
}
<span class="hljs-keyword">public</span> int <span class="hljs-title function_">getId</span>(<span class="hljs-params"></span>) {
<span class="hljs-keyword">return</span> id;
}
<span class="hljs-keyword">public</span> <span class="hljs-built_in">void</span> <span class="hljs-title function_">setId</span>(<span class="hljs-params">int id</span>) {
<span class="hljs-variable language_">this</span>.<span class="hljs-property">id</span> = id;
}
<span class="hljs-keyword">public</span> <span class="hljs-title class_">User</span>() {
}
}
service
// IUserService.java
package com.ssm.service;
import com.ssm.model.User;
import java.util.List;
public interface IUserService {
public User findUserById(int id);
public void addUser(User user);
public List<User> getAllUsers();
}
// UserServiceImpl.java
package com.ssm.service;
import com.ssm.Dao.IUserDao;
import com.ssm.Dao.UserDaoImpl;
import com.ssm.model.User;
import java.util.List;
public class UserServiceImpl implements IUserService {
private IUserDao userDao;
<span class="hljs-keyword">public</span> <span class="hljs-title function_">UserServiceImpl</span><span class="hljs-params">()</span> {
userDao = <span class="hljs-keyword">new</span> <span class="hljs-title class_">UserDaoImpl</span>();
}
<span class="hljs-keyword">public</span> User <span class="hljs-title function_">findUserById</span><span class="hljs-params">(<span class="hljs-type">int</span> id)</span> {
<span class="hljs-keyword">return</span> userDao.findUserById(id);
}
<span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title function_">addUser</span><span class="hljs-params">(User user)</span>{
userDao.addUser(user);
}
<span class="hljs-keyword">public</span> List<User> <span class="hljs-title function_">getAllUsers</span><span class="hljs-params">()</span> {
<span class="hljs-keyword">return</span> userDao.getAllUsers();
}
}
JSP
// index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="sf" uri="http://www.springframework.org/tags/form" %>
<html>
<body>
<h2>Hello World!</h2>
<sf:form method="post" modelAttribute="user" action="/toJson">
用户名:<sf:input path="username"/>
密码:<sf:password path="password"/>
<input type="submit" value="提交">
</sf:form>
</body>
</html>
// nice.jsp
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2017/10/9
Time: 8:01
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>nice to meet you!</title>
</head>
<body>
<br/>
<div>
${result}
</div>
</body>
</html>
工程整体结构
数据库脚本
// ssm.sql
/*
Navicat MySQL Data Transfer
Source Server : localhost
Source Server Version : 50554
Source Host : localhost:3306
Source Database : ssm
Target Server Type : MYSQL
Target Server Version : 50554
File Encoding : 65001
Date: 2017-10-22 18:19:30
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS <span class="hljs-keyword">user</span>
;
CREATE TABLE <span class="hljs-keyword">user</span>
(
id
int(11) NOT NULL AUTO_INCREMENT,
username
varchar(255) NOT NULL,
password
varchar(255) NOT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO <span class="hljs-keyword">user</span>
VALUES ('1', 'guo', '111');
INSERT INTO <span class="hljs-keyword">user</span>
VALUES ('2', 'root', 'aaa');
INSERT INTO <span class="hljs-keyword">user</span>
VALUES ('3', '11111', '22222');