1.mvc框架要做哪些事情?
a:将url映射到java类或java类的方法
b:封装用户提交的数据
c:处理请求--调用相关的业务处理--封装相应的数据
d:将响应的数据i进行渲染jsp.html,freemarker等
2.Spring mvc是一个轻量级的,基于请求响应的mvc框架
3.为什么要学习Spring mvc?
性能较struts2好,
简单,便捷,易学,
和spring无缝集成,
使用约定优于配置。
能够进行Junit测试,
支持Restful风格,
异常处理,
本地化,国际化,
数据验证,类型转换,
拦截器等。
4.结构
5.编写Spring mvc hello
a:导包
b:web.xml配置(配置分发器)
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name>springmvc_hello</display-name>
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
c:添加springmvc(分发器名字)-servlet.xml配置文件(web-inf下的lib文件夹内)
映射器,适配器,视图渲染器,配置请求和处理
<?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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
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">
<!-- 配置handlerMapper 映射器 -->
<bean
class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
<!-- 配置handerAdapter 适配器 -->
<bean
class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />
<!-- 配置视图渲染器 -->
<bean id="jspViewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<!-- 配置视图的前缀 -->
<property name="prefix" value="/WEB-INF/jsp/" />
<!-- 配置视图的后缀 -->
<property name="suffix" value=".jsp" />
<!-- 例:视图名为:hello 渲染后:/WEB-INF/jsp/hello.jsp 该页面 -->
</bean>
<!-- 配置请求和处理 -->
<bean name="/hello.do" class="spring.mvc.controller.HelloController"/>
</beans>
注意命名空间的引入,G:\spring-framework-4.3.7.RELEASE\docs\spring-framework-reference\html 里面找到index.html,file:///G:/spring-framework-4.3.7.RELEASE/docs/spring-framework-reference/html/mvc.html#mvc-servlet-config,复制粘贴
d:控制器:HelloController.java
package spring.mvc.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class HelloController implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest arg0,
HttpServletResponse arg1) throws Exception {
ModelAndView mv = new ModelAndView();
// 封装要显示到视图中的数据
mv.addObject("msg", "hello springmvc");
//视图名
mv.setViewName("hello");
return mv;
}
}
e:hello.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'hello.jsp' starting page</title>
</head>
<body>
Hello Spring mvc.
<br> EL表达式:${msg}.
<br>
</body>
</html>
f:运行
注:别名修改(项目右键属性):