1.Spring MVC框架简介
支持REST风格的URL
添加更多注解,可完全注解驱动
引入HTTP输入输出转换器(HttpMessageConverter)
和数据转换、格式化、验证框架无缝集成
对静态资源处理提供特殊支持
更加灵活的控制器方法签名,可完全独立于Servlet API
2.Spring MVC框架结构,执行流程
3.如何在应用中使用Spring-MVC?
在应用中添加Spring框架支持;
在web.xml中配置Spring-MVC的请求转发器(前端控制器)
编写Spring-MVC的配置文件
将任意JavaBean通过注解配置成Controller(控制器)并注解其中的方法
完成
4.今天我们先来了解一下我们注解开发的小例子(简单登录)
一:转发(forward)
源码介绍:
1.lib包(jar包)和 web.xml文件的配置
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:applicationContext.xml
1
springmvc
*.do
index.jsp
View Code
2.index.jsp(登录主页)
String basePath= request.getScheme() + "://"
+ request.getServerName() + ":" +request.getServerPort()+ path + "/";%>
登录主页用户名: 年龄:View Code
3.hello.jsp(登录成功后跳到的页面)和 error.jsp(登录失败跳到的页面)
Stringpath=request.getContextPath();StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>
">
成功欢迎页面姓名:${name}
年龄:${age }
View Code
Stringpath=request.getContextPath();StringbasePath=request.getScheme()+ "://"
+request.getServerName()+ ":" +request.getServerPort()+path+ "/";%>
">
错误页面View Code
4.MyController.java(定义自己的处理器)
packagecn.zhang.controller;importorg.springframework.stereotype.Controller;importorg.springframework.ui.Model;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RequestMethod;//定义自己的处理器
@Controllerpublic classMyController{
@RequestMapping(value="/frist.do",produces="text/html;charset=utf-8",method=RequestMethod.POST)public String frist(Model model,String name,intage){
model.addAttribute("name", name);
model.addAttribute("age", age);
System.out.println(name);
System.out.println(age);return "forward:/hello.jsp";
}
}
View Code
5.applicationContext.xml(Spring的配置文件)
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">
View Code
效果展示:
1.输入成功的情况
点击提交跳到成功页面:
如果输入其他的信息则会跳到错误页面:
二:重定向(redirect)
我们只要改我们的控制器就行了
packagecn.zhang.controller;importorg.springframework.stereotype.Controller;importorg.springframework.ui.Model;importorg.springframework.web.bind.annotation.RequestMapping;//定义自己的处理器
@Controllerpublic classMyController{
@RequestMapping(value="/frist.do")//登录请求的是frist.do
public String frist(Model model,String name,intage){return "redirect:hello.do";//重定向到hello.do
}
@RequestMapping(value="/hello.do")public String hello(Model model,String name,intage){
model.addAttribute("name", name);
model.addAttribute("age", age);
System.out.println(name);
System.out.println(age);if (name.equals("1")&&age==1) {return "redirect:/hello.jsp";//重定向到hello.jsp
}else{return "redirect:/error.jsp";//重定向到error.jsp
}
}
}
View Code