非注解SpringMVC

 <!-- SpringMVC前端控制器 -->
  <servlet>
      <servlet-name>springmvc</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <!-- contextConfigLocation配置springmvc加载的配置文件(配置处理器映射器、适配器等等)
      如果不配置contextConfigLocation,默认加载的是/WEB-INF/servlet名称-serlvet.xml(springmvc-servlet.xml)
       -->
       <init-param>
           <param-name>contextConfigLocation</param-name>
           <param-value>classpath:springmvc.xml</param-value>
       </init-param>
  </servlet>

  <servlet-mapping>
  <servlet-name>springmvc</servlet-name>
  <!--
      第一种:*.action,访问以.action结尾 由DispatcherServlet进行解析
      第二种:/,所以访问的地址都由DispatcherServlet进行解析,对于静态文件的解析需要配置不让DispatcherServlet进行解析
      使用此种方式可以实现 RESTful风格的url
      第三种:/*,这样配置不对,使用这种配置,最终要转发到一个jsp页面时,
      仍然会由DispatcherServlet解析jsp地址,不能根据jsp页面找到handler,会报错。
       -->
  <url-pattern>*.action</url-pattern>
  </servlet-mapping>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-3.2.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx-3.2.xsd ">
    <!-- 处理器映射器 将bean的name作为url进行查找 ,需要在配置Handler时指定beanname(就是url)
    所有的映射器都实现 HandlerMapping接口。
    -->
    <bean
        class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
    <!--简单url映射  -->
    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
            <!-- 对itemsController1进行url映射,url是/queryItems1.action -->
            <prop key="/queryItems1.action">ItemsHandler1</prop>
            <prop key="/queryItems2.action">ItemsHandler1</prop>
            <prop key="/queryItems3.action">ItemsHandler2</prop>
            </props>
        </property>
    </bean>

    <!--处理器适配器
    所有的适配器都要实现HandlerAdapter接口
     -->
    <bean
        class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
    <!-- 另一个非注解的适配器 -->
    <bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"/>
    <!-- 配置Handler -->
    <bean id = "ItemsHandler1"  name="/queryItems.action" class="com.test.handler.items.ItemsHandler1" />
    <bean id = "ItemsHandler2" class="com.test.handler.items.ItemsHandler2" />
    <!-- 视图解析器
    解析jsp默认使用jstl标签,在classpath目录下需要有jstl的jar包
    -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" />
</beans>

1、两种处理器映射器可以并存

2、两种处理器适配器也可以并存,但是两种适配器对应的Handler不同

  SimpleControllerHandlerAdapter 对应的Handler需要实现 org.springframework.web.servlet.mvc.Controller 接口

  

ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("itemsList",itemsList);
        modelAndView.setViewName("/WEB-INF/jsp/items/itemsList.jsp");
        return modelAndView;

  HttpRequestHandlerAdapter 对应的Handler需要实现 org.springframework.web.HttpRequestHandler 接口

req.setAttribute("itemsList", itemsList);
            req.getRequestDispatcher("/WEB-INF/jsp/items/itemsList.jsp").forward(req, resp);
            //使用此方法可以通过修改response,设置响应的数据格式,比如响应json数据

            /*
                    response.setCharacterEncoding("utf-8");
                    response.setContentType("application/json;charset=utf-8");
                    response.getWriter().write("json串");*/
时间: 2024-08-24 16:46:46

非注解SpringMVC的相关文章

springMVC学习笔记(二)-----注解和非注解入门小程序

最近一直在做一个电商的项目,周末加班,忙的都没有时间更新博客了.终于在上周五上线了,可以轻松几天了.闲话不扯淡了,继续谈谈springMvc的学习. 现在,用到SpringMvc的大部分使用全注解配置,但全注解配置也是由非注解发张而来的.所以,今天就谈谈springMvc最基础的注解和非注解的配置以及开发模式. 一:基础环境准备 1.功能需求:一个简单的商品列表查询 2.开发环境:eclipse,java1.7,springmvc版本:3.2 3.springMvc所需jar包(一定包括spri

SpringMVC原理及非注解配置详解

1. Spring介绍 Spring MVC是Spring提供的一个强大而灵活的web框架.借助于注解,Spring MVC提供了几乎是POJO的开发模式,使得控制器的开发和测试更加简单. 这些控制器一般不直接处理请求,而是将其委托给Spring上下文中的其他bean,通过Spring的依赖注入功能,这些bean被注入到控制器中. 2. Spring的运行原理 1.用户发出HTTP请求 2-3.DispatchServlet通过请求URL到HandlerMapping中去寻找相对应的Handle

【SpringMVC学习03】SpringMVC中注解和非注解方式下的映射器和适配器总结

从上一篇的springmvc入门中已经看到,springmvc.xml中的配置了映射器和适配器,是使用非注解的方式来配置的,这是非注解方式的一种,这里再复习一下: 1. 非注解方式 1.1 处理器适配器 上一节中使用的处理器适配器是:org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.即: SimpleControllerHandlerAdapter适配器能执行实现了Controller接口的Handler,所以我

springMVC非注解常用的&quot;处理器映射器&quot;、&quot;适配器&quot;、&quot;处理器&quot;

非注解处理器映射器1. org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping url 到bean name的映射2. org.springframework.web.servlet.handler.SimpleUrlHandlerMapping url 到bean id的映射 非注解适配器1. org.springframework.web.servlet.mvc.SimpleControllerHandlerAdap

SpringMVC学习(一):搭建SpringMVC-注解-非注解

文章参考:http://www.cnblogs.com/Sinte-Beuve/p/5730553.html 一.环境搭建: 目录结构: 引用的JAR包: 如果是Maven搭建的话pom.xml配置依赖如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=&qu

SpringMVC返回json字符串(非注解方式)

这里采用的是非注解形式,相当于注解中的@responseBody /**      * 根据字符串输出JSON,返回null      *       * @param jsonString      * @return      */     public String ajaxJson(HttpServletResponse response,String jsonString) {        return ajax(response,jsonString, "text/html&quo

springmvc03 非注解和注解处理器映射器和适配器

1其它非注解处理器映射器和适配器 1.1BeanNameUrlHandlerMapping(映射器) 根据请求url(XXXX.action)匹配spring容器bean的 name 找到对应的bean(程序编写的Handler) 1.2SimpleUrlHandlerMapping(映射器) <!--简单url映射, 集中配置bean的id对应 的url --> <bean class="org.springframework.web.servlet.handler.Simp

springmvc2 一个控制器写多个方法(非注解方式)

出处:http://blog.csdn.net/xuewenke/article/details/23895999 springmvc2 一个控制器写多个方法(非注解方式) 分类: spring 2014-04-17 02:50 318人阅读 评论(0) 收藏 举报 web.xml 的配置. 其实web.xml 的配置和之前的没有什么区别  主要是DispatcherServlet 的配置,他是springvc的核心,是前端拦截器,主要负责拦截请求,然后在分派.这次配置时 springmvc的配

非注解的处理器适配器和处理器映射器

一.非注解的处理器映射器 1,org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping 该bean 按照名称配置url,如下: <bean id="itemsController1" name="/queryItems_test.action" class="cn.itcast.ssm.controller.ItemsController1" /> 2,org.