最近没事就学了下spring-mvc,简单搭建了一个项目练练手,哈哈
Spring-MVC第一弹简单项目搭建
Spring-MVC第二弹数据库链接
项目目录结构:
jar包:
该项目的jar包由maven管理,配置信息如下:
<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.heaven.leying</groupId>
<artifactId>spring_leying</artifactId>
<packaging>war</packaging>
<version>1.0.0</version>
<name>spring_leying Maven Webapp</name>
<url>http://maven.apache.org</url>
<build>
<finalName>spring_leying</finalName>
</build>
<properties>
<spring.version>4.3.2.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-framework-bom</artifactId>
<version>4.3.2.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
<scope>runtime</scope>
<!-- 排除spring 自带的commons-logging -->
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId>
<version>1.4.0.RELEASE</version> </dependency> -->
<!-- 日志+++++++++++++++++++++++++++ -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.5.8</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.5.8</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.5.8</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
</dependency>
<!-- 日志+++++++++++++++++++++++++++ -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
</project>
web.xml
<web-app>
<display-name>spring_leying</display-name>
<!-- 加载配置文件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/spring-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/spring/spring-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
<!--
/ 这个斜杠,表示拦截所有的url,如/test,/test.html
/* 这个模式包含/,可以多拦截以*.jsp结尾的url
*.xxx 这个拦截固定结尾的url,常见的如*.do,*.json等等 -->
</servlet-mapping>
<!-- 防止中文字符乱码 -->
<filter>
<filter-name>characterEncodingFilter</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>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 防止中文字符乱码 -->
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
spring-servlet.xml :
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p" xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-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/task http://www.springframework.org/schema/task/spring-task-3.0.xsd">
<context:component-scan base-package="com.axure" />
<mvc:annotation-driven />
<!-- 如果配置了前缀 ,跳转逻辑都会加上views/ http://localhost:8080/spring_leying/views/user/createUser2?userName=44&password=44 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/views/" p:suffix=".jsp" />
<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 请求映射 -->
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
<bean
class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
</beans>
LoginController.java
/**
*
*/
package com.axure.controller;
import java.util.Random;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import com.axure.entity.User;
/**
*
* @date 2016年9月14日 下午5:48:30
* @version 3.1.26
*/
@Controller
@RequestMapping("/user")
public class LoginController {
/**
* app 接口访问直接返回json数据
* @return
*/
@ResponseBody
@RequestMapping(value ="/json",method = RequestMethod.GET)
public String returnJSON() {
System.out.println("==========");
return "index"+new Random().nextInt(100);
}
/**
* pc or wap 返回 ModelAndView<br>
* 如果jsp页面是在WEB-INF下,返回controller对应的路径。如果是这样用户无法直接访问对应的jsp页面
* @param user
* @return
*/
@RequestMapping(value ="/register" ,method = RequestMethod.GET)
public ModelAndView register(User user) {
System.out.println("====register=====user = "+ user);
ModelAndView mv = new ModelAndView();
mv.setViewName("user/loginSuccess");
mv.addObject("user", user);
return mv;
}
}
User.java
/**
*
*/
package com.axure.entity;
/**
*
* @date 2016年9月23日 下午4:03:01
* @version 3.1.26
*/
public class User {
private String userName;
private String password;
private String realName;
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 getRealName() {
return realName;
}
public void setRealName(String realName) {
this.realName = realName;
}
@Override
public String toString() {
return "User [userName=" + userName + ", password=" + password
+ ", realName=" + realName + "]";
}
}
register.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>新增用户</title>
</head>
<%
// 项目根路径
String path = request.getContextPath();
%>
<body>
<%-- <form action="<c:url value="/user.html"/>" method="get"> --%>
<form action="/spring_leying/user/register" method="get">
<table>
<tr>
<td>项目根目录:<%=path %></td>
</tr>
<tr>
<td>用户名:</td>
<td><input type="text" name="userName" /></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="password" /></td>
</tr>
<tr>
<td>姓名:</td>
<td><input type="text" name="realName" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="提交" /></td>
</tr>
</table>
</form>
</body>
</html>
loginSuccess.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<title>创建用户成功</title>
</head>
<body>恭喜!${user.userName}登录成功
</body>
</html>
注册界面url:
http://localhost:8080/spring_leying/views/user/register.jsp
成功后的界面: