• 非注解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串");*/
  • 相关阅读:
    linux下的socket编程(3)--server端的简单示例
    高级I/O函数
    补充:memset透彻分析
    空间复杂度为0的数据交换
    排序算法一:直接插入排序
    [Github]watch和star的区别
    计算机网络总结(四)
    计算机网络总结(三)
    Java集合
    计算机网络总结(二)
  • 原文地址:https://www.cnblogs.com/liuwt365/p/4781818.html
Copyright © 2020-2023  润新知