- M表示封装数据到javabean
- V表示返回结果展示
- C表示接收响应请求
案例需求
入门程序
环境配置
- web.xml
- springmvc.xml
web.xml
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
springmvc.xml
- 开启注解扫描
- 视图解析器
- 开启Springmvc框架支持
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!--开启注解扫描-->
<context:component-scan base-package="cn.itcast.controller"/>
<!--视图解析器-->
<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!--开启Springmvc框架爱支持-->
<mvc:annotation-driven/>
</beans>
主页面index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h3>入门程序</h3>
<a href="hello">入门程序</a>
</body>
</html>
点击入门程序的链接以后,接收器进行接收
//控制器,接收请求
@Controller
public class HelloController {
@RequestMapping(path="/hello")
public String sayHello()
{
System.out.println("hello");
return "success";
}
}
返回成功页面,success.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h3>入门成功</h3>
</body>
</html>
入门程序的业务流程
- 点击链接
- servlet类对象接收
- 调用容器中的方法sayHello()
- 视图解析器返回success.jsp页面
请求参数的绑定
主页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h3>入门程序</h3>
<a href="param/test?username=hehe&password=123">请求参数绑定</a>
</body>
</html>
请求参数的类
@Controller
@RequestMapping("/param")
public class Param {
@RequestMapping("/test")
public String test(String username,String password){
System.out.println("执行了请求参数");
System.out.println("username:"+username);
System.out.println("password:"+password);
return "success";
}
}
把请求的参数封装到javabean里面
页面
<html>
<head>
<title>Title</title>
</head>
<body>
<%--请求参数绑定--%>
<form action="param/saveAccount" method="post">
姓名:<input type="text" name="name"/><br/>
密码:<input type="text" name="password"/><br/>
金额:<input type="text" name="money"/><br/>
<input type="submit" value="提交"/>
</form>
</body>
</html>
封装的类
//封装到javabean当中
@RequestMapping("/saveAccount")
public String saveAccount(Account account){
System.out.println("执行了请求参数");
System.out.println(account);
return "success";
}
使用session进行两个页面之间的数据传输
- 存数据到session域中
- 在success.jsp中获取session域
@Controller
@RequestMapping("/anno")
@SessionAttributes(value={"msg"}) // 把msg=美美存入到session域对中
public class AnnoController {
/**
* SessionAttributes的注解
* @return
*/
@RequestMapping(value="/testSessionAttributes")
public String testSessionAttributes(Model model){
System.out.println("testSessionAttributes...");
// 底层会存储到request域对象中
model.addAttribute("msg","美美");
return "success";
}
/**
* 获取值
* @param modelMap
* @return
*/
@RequestMapping(value="/getSessionAttributes")
public String getSessionAttributes(ModelMap modelMap){
System.out.println("getSessionAttributes...");
String msg = (String) modelMap.get("msg");
System.out.println(msg);
return "success";
}
}
success.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h3>入门成功</h3>
${ msg }
${sessionScope}
</body>
</html>