zoukankan      html  css  js  c++  java
  • (二)springMvc 入门

    目录


    配置前端控制器

    web.xml 配置 DispatcherServlet

      <!-- **************************** 配置springMvc前端控制器(DispatcherServlet)************************* -->
    
        <!--前端控制器是个servlet,因此,这里就像配置servlet一样-->
        <servlet>
            <servlet-name>springMvc</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <!--初始化读取配置文件,我们指定配置文件在哪;
                    否则默认加载 /WEB-INF/servlet-name-servlet.xml 
                    我们这里的 servlet-name 是 springMvc ,那么就是去加载 servlet-name.xml    
            -->
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:xin/ijava/ssm/config/springMvc.xml</param-value>
            </init-param>
        </servlet>
        <servlet-mapping>
            <servlet-name>springMvc</servlet-name>
            <!--
                1、 *.action 拦截 .action 结尾的url
                2、/ 拦截所有url,即使是访问 静态资源也会被拦截,全部走前端控制器,可以实现 resultFul 风格的url
                3、/*  这样配置不对,当转发到jsp页面时,还是会交给前端控制器,去找处理器
            -->
            <url-pattern>*.action</url-pattern>
        </servlet-mapping>

    servlet拦截方式

    1. 拦截固定后缀的 url

      比如 *.action*.do ;这种拦截,不会拦截静态资源,因为静态资源的后缀,css , js , jpg , png ... 不再拦截的范围内 ;

    2. 拦截所有 url

      设置为 /

      这样静态资源也会被拦截,导致不能正常显示,需要做特殊处理 ;


    springMvc的配置文件

    spring 的配置文件一样,我们的 处理器映射器处理器适配器视图解析器 都在其中进行配置 ;

    其中 视图解析器 用到 JSTL 注意导入包。

        <!--配置处理器适配器-->
        <!--所有的处理器适配器,都实现了 HandlerAdapter -->
        <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
    
        <!--配置适配器映射器-->
        <!--bean的名字,就是映射 map 中的键 -->
        <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
    
        <!--配置视图解析器-->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/>

    编写处理器类

    自定义处理器类,需要实现 Controller 接口 ;

    /**
     * 自定义 处理器类。所有处理器都需要实现 Controller 接口,
     * 包不要导入错了,导 mvc 下面的包
     * @author An
     */
    public class ItemsController implements Controller {
        @Override
        public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
    
            List<Item> items = new ArrayList<>() ;
            Item item1 = new Item();
            item1.setId(001);
            item1.setName("锋麦笔记本");
            Item item2 = new Item();
            item1.setId(999);
            item1.setName("牛奶");
    
            items.add(item1) ;
            items.add(item2) ;
    
    //        创建 ModelAndView
            ModelAndView modelAndView = new ModelAndView() ;
    //        添加model,也就是数据。(键值对)
    //        在页面中取数据,就是根据键名
            modelAndView.addObject("items",items) ;
    //        添加视图,也就是界面
            modelAndView.setViewName("/WEB-INF/jsp/Item/ItemController.jsp0");
    
            return modelAndView;
        }
    }

    配置自定义处理器

    <!--配置自定义处理器 -->
    <!-- name 就是url地址-->
        <bean name="/queryItems.action" class="xin.ijava.ssm.controller.ItemsController"/>
  • 相关阅读:
    (mysql)卸载5.0安装6.05出现“Error Nr. 2003 : Can't connect to MySQL server on 'localhost' (10061). ”的解决办法
    (Redundancy)关于服务器冗余的几个疑问,请知道的帮忙解答.
    (C#)XML文件操作3
    POJ 3635 Full Tank(最短路径变形 + 优先队列)
    POJ 2286 The Rotation Game(DFS + 迭代加深)
    POJ 1141 Brackets Sequence(区间DP + 打印路径)
    POJ 3460 Booksort(IDA* + 估价函数设计)
    POJ 2908 Quantum(BFS + 优先队列)
    NOI 1997 积木游戏(解题报告)
    NYOJ 110 决斗(区间DP + 黑书例题)
  • 原文地址:https://www.cnblogs.com/young-youth/p/11665663.html
Copyright © 2011-2022 走看看