Spring Web MVC需要使用IOC功能。
用于开发MVC结构的Web程序。
1.MVC思想
2.Spring如何实现MVC
3.Spring Web MVC处理流程
MVC思想
将程序组件分为模型,视图,控制器三部分。
Spring如何实现MVC
文字描述:
案例:hello案例
/hello.do—springwebmvc–>/WEB-INF/hello.jsp
处理流程
/hello.do
–>DispatcherServlet(配置)
–>HanlderMapping(配置)
–>HelloController(编写+配置)
–>ViewResolver(配置)
–>/WEB-INF/hello.jsp(编写)
a.搭建Spring web mvc开发环境
–>引入ioc,webmvc开发包
–>src下添加applicationContext.xml
b.编写HelloController实现
–>实现Controller接口
–>HelloController类代码
public class HelloController implements Controller{
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView mav = new ModelAndView();
mav.setViewName("hello");//设置视图名字,根据页面名写
mav.getModel().put("msg", "模型数据");//设置要传出去的模型数据
//等价于 request.setAttribute("msg", "模型数据");
//在hello.jsp中,用${msg}取值
return mav;
}
}
c.DispatcherServlet配置
web.xml中代码:
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</init-param>
<!-- 启动tomcat,优先实例化 -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
d.HanlderMapping配置
applicationContext.xml中代码:
<!-- 配置handlermapping -->
<bean id="handlermapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<!-- 指定请求和controller对应关系 -->
<property name="mappings">
<props>
<prop key="/hello.do">helloController</prop>
</props>
</property>
</bean>
e.HelloController编写+配置
applicationContext.xml中代码:
<!-- 配置controller -->
<bean id="helloController"
class="org.tarena.controller.HelloController">
</bean>
HelloController类编写
public class HelloController implements Controller{
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView mav = new ModelAndView();
mav.setViewName("hello");//设置视图名字,根据页面名写
mav.getModel().put("msg", "模型数据");//设置要传出去的模型数据
//等价于 request.setAttribute("msg", "模型数据");
//在hello.jsp中,用${msg}取值
return mav;
}
}
f.ViewResolver配置
applicationContext.xml中代码:
<!-- 配置viewresolver -->
<bean id="viewresolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/">
</property>
<property name="suffix" value=".jsp">
</property>
</bean>
案例:登录页面
处理流程
/tolongin.do
–>DispatcherServlet(配置)
–>HanlderMapping(配置)
–>ToLoginController(编写+配置)
–>ViewResolver(配置)
–>/WEB-INF/login.jsp(编写)
a.ToLoginController编写
public class ToLoginController implements Controller{
public ModelAndView handleRequest(HttpServletRequest arg0,
HttpServletResponse arg1) throws Exception {
//调用login.jsp
ModelAndView mav = new ModelAndView("login");
return mav;
}
}