一、首先创建一个maven工程
在pom.xml中要下载一些依赖
依赖包的下载 http://mvnrepository.com/
需要的依赖包
1.spring-core
2.spring-webmvc
3.spring-jdbc
4.spring-aspects
5.jstl
二、创建SpringMVC需要的配置文件
根据maven的配置规范创建项目目录
创建controller和xxx-servelet.xml
实体类
public class Student {
private String name;
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
controller
@Controller
public class MainController {
//页面调度:哪个方法对应哪个jsp文件
//localhost:8080/aa
@RequestMapping(value = "/aa")
public String frontPage(){
return "index";
}
@RequestMapping(value = "/a")
public String find1(){
return "1";
}
@RequestMapping(value = "/b")
public String find2(){
return "2";
}
@RequestMapping(value = "/c")
public String find3(){
return "3";
}
//带参数的请求
//1.直接在地址上拼接参数(URI)
//localhost/user/www/22
@RequestMapping(value = "/user/{username}/{age}")
public String varPage(@PathVariable("username") String name, @PathVariable("age") int age){
System.out.println(name);
System.out.println(age);
//jsp文件的文件名
return "userinfo";
}
// localhost/stu/name=zhangsan&age=2
// 2. 获取参数列表
// >1. 一个一个获取,格式:@RequestParam("key)参数类型 参数名
// >2. 直接全部获取,格式:@RequestParam Map<key, value> 参数名
// >3. 靠bean获取, 场景:参数列表的key和bean的属性名必须一致
// @RequestMapping(value = "/stu")
// public String stuinfo(@RequestParam Map<String, String>params){
// System.out.println(params);
// return "stuinfo";
// }
@RequestMapping(value = "/stu")
public String stuinfo(Student student){
System.out.println(student);
return "stuinfo";
}
/*
SpringMVC项目建立的步骤(Maven)
1.使用Maven建立工程,添加POM文件的依赖列表
2.在resource文件夹下 创建xxx-servlet.xml
3.配置web.xml
4.创建controller和jsp文件
SpringMVC的基本原理
1. 用户向服务器发送请求,比如:请求: localhost:8080/user
2. DispatcherServlet接收到请求,开始处理
3. 在DispatcherServlet内部,通过HandlerMapping检查这个url有没有对应的controller处理方法
4. 如果有,直接调用这个方法
5. 如果返回字符串,viewResolver会把字符串和配置文件中的前后缀组成页面的资源路径
6. dispatcherServlet会把这个资源转为html,发给用户的浏览器
*/
}
@Controller
public class SecondController {
//从后台向前端发送数据
@RequestMapping(value = "/teacher")
public String teacherPage(ModelMap map){
//第一种: Map<String, Object>map
//第二种: Model model
//第三种: ModelMap modelMap
//第四种: ModelAndView
map.addAttribute("teacher", "可以的");
return "teacher";
}
//在方法上添加注解,会把当前方法的返回值转为json格式,发给前端
//不在去拼接jsp路径
@RequestMapping(value = "/json")
@ResponseBody
public Student jsonTest(){
Student student = new Student();
student.setAge(22);
student.setName("妲己");
return student;
}
}
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>Archetype Created Web Application</display-name>
//预防乱码
<filter>
<filter-name>SpringEncoding</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>SpringEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>MVCServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:SpringMVC-servlet.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>MVCServlet</servlet-name>
<!--localhost/.../xxx.action-->
<!--<url-pattern>*.action</url-pattern>-->
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>