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

转载:https://blog.csdn.net/lp09160206/article/details/51514319

(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包

猜你喜欢

转载自blog.csdn.net/qq_34266804/article/details/89028502