SpringMVC框架入门----基本框架配置程序测试

简介:

用来简化基于MVC架构的web应用程序开发的框架。

SpringMVC是一个spring中的一个模块。

常规mvc

Servlet的作用:

接收请求,根据请求调结果,根据结果调视图。

Spring MVC就是将servlet中东西写在配置文件中。其中内容为请求路径---模型  处理结果---视图。

五大组件:

DispatcherServlet前端控制器:客户端传入消息进入控制器

HandlerMapping映射处理器 :为前端控制器提供参考

请求路径---模型的对应关系

Controller处理器 :被控制器依据HandlerMapping调用处理相应的Controller。 

将处理结果封装成一个ModelAndView对象返回给前端控制器

ModelAndView:处理结果和视图名  提供字符串给前端

ViewResolver视图解析器:为前端提供视图解析功能,将处理结果和视图名称对应。

视图解析器将提交的字符串视图名解析称为一个jsp名,让前端正确调用正确的jsp。也可以使用其他类型的视图文件。

freemarker  velocity等

前端控制器在web.xml中配置

两个配置解析器在springmvc.xml中配置。(HandlerMappings      ViewResovler)

两个有关Spring的重要问题:

Spring mvc 和Struts2的区别:

SpringMVC的入口是Servlet Strut2是Filter。

SpringMVC相对于Struts2快一点,SpringMVC是基于方法设,Strut2是基于类,每次发一次请求都会实例一个Action。

SpringMVC使用更加简洁,开发效率高。支持jsr303,处理ajax请求更方便。

Strut2的ognl表达式,还有标签库和值栈等使性能效率降低产生漏洞。

拦截器思想为Strut2的精华部分,action线程安全。

Spring MVC的请求流程??

1Spring把所有请求都交给DispatcherServlet,它会委托应用系统的其他模块负责对请求做真正的处理工作;

2DispatcherServlet查询一个或者多个HandlerMappings,找到处理请求相应的Controller。

3DispatcherServlet将请求发送到Controller

4Controller进行逻辑处理后,通过ModelAndView返回一个视图名称和结果。

5DispatcherServlet通过查询一个或多个ViewResovler后依据返回的字符串找到相应的视图页面名。

6前端处理器将相应的视图对象渲染后返回请求客户端。

编程步骤:

我们以通过在地址栏输入信息,通过程序指向指定的jsp页面显示简单的信息。

1,导包 Spring-webmvc

2,配置文件

创建spring-mvc.xml文件,创建在webContent下

3,配置DispatcherServlet前端控制器。(web.xml)

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xmlns="http://java.sun.com/xml/ns/javaee"

    xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"

    id="WebApp_ID" version="3.0">

    <display-name>8_8Spring MVC</display-name>

    <welcome-file-list>

        <welcome-file>index.html</welcome-file>

        <welcome-file>index.htm</welcome-file>

        <welcome-file>index.jsp</welcome-file>

        <welcome-file>default.html</welcome-file>

        <welcome-file>default.htm</welcome-file>

        <welcome-file>default.jsp</welcome-file>

    </welcome-file-list>

    <servlet>

        <servlet-name>springmvc</servlet-name>

        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

       <init-param>

           <param-name>contextConfigLocation</param-name>

           <param-value>WEB-INF/spring-mvc.xml</param-value>

       </init-param>

       <load-on-startup>1</load-on-startup>

    </servlet>

    <servlet-mapping>

        <servlet-name>springmvc</servlet-name>

       <url-pattern>*.do</url-pattern>

    </servlet-mapping>

</web-app>

4,配置模型组件(处理器Controller)

Controller负责执行具体的业务处理,可调用dao等组件,编写时需要实现Controller接口及约定方法

public class HelloController  implements Controller {

     @Override

     public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {

          // TODO Auto-generated method stub

          System.out.println("handleRequest()执行");

          /**

           * ModelAndView有两个常用构造器

           * ModelAndView(String viewName)

           * ModelAndView(String viewName,Map data)

           * 视图名,处理结果

           */

       return new ModelAndView("hello");

     }

     

}

5,编写jsp视图模型

新建jsp文件

6,配置HandlerMapping和ViewResolver两个配置器。

HandlerMapping配置:

<!-- 配置HandlerMapping -->

    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">

    

       <property name="mappings">

           <props>

               

               <prop key="/hello.do">HelloController</prop>

           </props>

       </property>

    </bean>

    <bean id="HelloController" class="com.SpringMVC.controller.HelloController"></bean>

ViewResolver视图解析器:

InternalResourceViewResovler为ViewResovler接口的实现类

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

    <property name="prefix" value="/WEB-INF/jsp"></property>

    <property name="suffix" value=".jsp"></property>

    </bean>

使用两个前缀后缀方法将视图解析器进行拼接。

至此程序编写完成。

测试:

在输入框输入以hello.do后缀输入地址,hello.do信息通过程序的SpringMVC框架模式进行运作,最终指向hello.jsp。


 

猜你喜欢

转载自blog.csdn.net/YuQuanZhang/article/details/81514087