您的位置:首页 > 编程语言 > Java开发

建立一个能运行的spring-mvc程序,至少需要哪些配置以及jar包

2016-05-27 12:39 573 查看
(1)springMVC和Struts2框架的区别

     springMVC的一个核心就是通过一个特殊的Servlet来拦截前端的请求,即DispatcherServlet。然后DispatcherServlet去询问handlerMapping由哪个Controller来处理该请求。接着,将请求发送给controller来处理,controller处理完成后会返回视图名称以及模型数据(可选)。接着,去询问ViewResolver该逻辑视图名对应的实际视图。接着将模型数据发送给实际视图,实际视图根据模型数据产生最终的页面。最后将页面返回给用户。

Strut2中类似的角色是一个Filter, FilterDispatcher,作为Struts2的调度中心,必须配置在所有filter链的最后。FilterDispatcher收到请求后首先询问ActionMapper该请求是否需要处理。如果需要处理,则创建一个ActionProxy,根据struts.xml文件的配置将请求分发到特定的Action来处理。当然在Action之前还可以配置一些拦截器,默认的有参数拦截器等等。Action处理完成后可以跳到下一个Action或者视图,最后视图绑定上数据生成最终该页面返回给用户。这里只是简要描述,具体流程参考http://rubbing-struts2.iteye.com/blog/1493574

    (2)从web.xml开始

     当用户发送请求后,web服务器的连接器会收到用户的请求,然后将请求交给web引擎,web引擎会在上下文中搜索,按照给定的上下文路径来确定哪个应用来处理该请求,接下来就要确定由该应用的哪个组件来处理该请求。我们的应用如何让web引擎知道我们都有哪些组件呢?答案就是web.xml。

     web.xml中定义了很多元素如listener、filter、filterMapping、servlet、servletMapping等,具体可以参照链接
http://www.cnblogs.com/chinafine/archive/2010/09/02/1815980.html  
    这里主要配置了一个前端控制器servlet,配置如下:



    

(3)TestController

     方式一:继承controller类(spring-webmvc-xx.jar),实现handleRequest(request, reponse),然后在mvctest-

     servlet.xml中注册该bean。如下:

     <bean name="/hello.do"   class="com.wepull.test.HelloController"/>

           <!-- 这里的name属性两个职责,既定义Bean的名字,也定义需要这个控制器处理的URL样式 -->

     方式二:使用@Controller、@RequestMapping注解(spring-context-xx.jar),并在mvctest-servlet中使用配置

     <context:component-scan base-package="controller"/> 

(4) HandlerMapping 处理器映射器

    完成请求到Controller的映射。

    方式一:

<!--缺省映射处理器,不需要明确声明,但声明后就非常清楚使用的是哪个映射处理器  -->  

 <bean  id="beanNameUrlMapping"   class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>

  

    方式二:

在spring配置文件mvctest-servlet.xml中,使用配置<mvc:annotation-driven/> ,这是一个默认配置,相当于注册了两个bean,分别是DefaultAnnotationHandlerMapping和AnnotaionMethodHandlerAdapter,从而完成从请求到处理器,再到处理方法的映射。因为非注解方式的controller只能处理一类请求 ,但是注解方式的controller每个方法都可以处理一类请求,因此需要增加Adapter进一步的适配。

(5)视图解析器

    完成逻辑视图到实际视图的映射

    <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 

            <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>

            <property name="prefix" value=""/>

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

     </bean> 

(6)视图
     一个JSP页面

(7)需要导入的jar包

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring mvc struts2.0