zoukankan      html  css  js  c++  java
  • springMVC日记(一)

    一、SSM框架结构图

    springMVC就是controller层的框架,它封装了接收参数,封装到实体,和页面跳转的方法。极大地简化了代码量,也便于查阅和修改配置

    二、springmvc流程图

    跟着流程来写一个springmvc的demo

      1.引入相关jar包 

      2.在web.xml中配置DispatcherServlet,(ctrl+shift+T可以获取完整路径)

    <servlet>
      <!-- springMVC的配置名必须为 '{servlet-name}-servlet.xml'
          或者自定义路径 contextConfigLocation
       -->
          <servlet-name>springMVC</servlet-name>
          <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      </servlet>
      <servlet-mapping>
          <servlet-name>springMVC</servlet-name>
          <url-pattern>*.do</url-pattern>
      </servlet-mapping>

      3.设置mvc配置文件 springMVC-servlet.xml, 这里名字不能错

     配置handlerMapping

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd">
        <!-- 配置一个handlerMapping,不配置的话默认有一个 -->
        <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
    </beans>

      4.创建Controller类,继承AbstractController类

    @Override
        protected ModelAndView handleRequestInternal(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {
            ModelAndView mv=new ModelAndView();
            mv.setViewName("login");//返回的视图名(会经过拼接)
            mv.addObject("username","Hello World");//设置转发的request属性和值
            return mv;
        }

      5.在配置文件中继续添加刚才的Controller信息,和视图解析器

    <!-- 注册自己的controller类 -->
        <bean name="/my.do" class="com.zhiyou100.cyf.controller.MyController"><!--这里/my.do是访问路径,即访问该路径就调用class的MyController类-->
        </bean>
     <!-- 视图解析器 -->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/view/"/>
            <property name="suffix" value=".jsp"/>
        </bean>

    具体流程:

    1. 客户发出请求。http://localhost:8080/springmvc-01/my.do
    2. 到达web.xml文件中 DispatcherServlet.查看是否符合url的要求
    3. DispatcherServlet就会查询springmvc的配置文件。找HandlerMapping,其根据bean的name查找相应的Controller
    4. 找到我的MyController类。执行该类中handleRequestInternal方法。
    5. 根据返回的modelAndView在找springmvc配置文件中视图解析器,把viewName和prefix以及suffix做了一个拼接。把拼接的页面展示给客户。

    三、常见的HandlerMapping

      1.BeanNameUrlHandlerMapping 根据bean标签的名称找到对应的Controller类。默认的mapping

      2. SimpleUrlHandlerMapping 根据beanid查找对应的Controller类。

     

    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
              <property name="mappings">
                  <props>
                      <prop key="/my.do">my1</prop>
                  </props>
              </property>
          </bean>
      <!-- 根据bean的id查找对应的Controller类 --> <bean id="/my.do" class="com.zhiyou100.cyf.controller.MyController"></bean>

     

      3. ControllerClassNameHandlerMapping 根据controller类的名字找到对应的Controller

    <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"></bean>
    <bean class="com.zhiyou100.cyf.controller.MyController"></bean>

      地址直接输入/myController就可以访问该controller,注意:controller名称除Controller以外的其他单词必须都小写,否则找不到,如MyController1 地址应为/mycontroller1

      4.使用注解来替代配置信息,这里没有内容辅助,可以通过官方文档在头标签中添加相应的内容辅助

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd
            http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd">

        1)引入aop的jar包  spring-aop-4.2.2.RELEASE.jar

        2)在springmvc配置文件中加入如下代码

     <!-- 1.包扫描:扫描含注解的controller类所在的包 -->
        <context:component-scan base-package="com.zhiyou100.cyf.annotation"></context:component-scan>
    <!-- 2.开启注解驱动AnnotationHandlerMapping -->
        <mvc:annotation-driven/>

        3)创建controller类

    @Controller  //等价于<bean class="com.zhiyou100.cyf.annotation">
    public class MyController {
        @RequestMapping("/list.do")//表示访问地址
        public String list() {
            System.out.println("列表查询");
            return "login";
        }
        @RequestMapping("insert.do")
        public String insert() {
            System.out.println("新增数据");
            return "login";
        }
    }

     四、通过springmvc来接收参数

    @RequestMapping("list")
        public ModelAndView list(String username,String pw) {
            ModelAndView mv=new ModelAndView("main");
            mv.addObject("username", username);
            mv.addObject("pw", pw);
            return mv;
        }
        @RequestMapping("index")
        public ModelAndView select(User user) {
            ModelAndView mv=new ModelAndView("main");//
            mv.addObject("user",user);
            return mv;
        }

    接受参数时出现乱码。使用过滤器。(自定义的过滤器 也可以使用springmvc提供的过滤器)

    五、安装dashboard

    在help->Eclipse Marketplace->搜索下载Spring Tools 3

    安装选项可以全选,安装完成后spring项目中会自动添加内容辅助,web.xml中servlet的配置和spring配置文件的创建均可一键生成

  • 相关阅读:
    回流和重绘
    php 异常捕获的坑
    每周散记 20180806
    转: Linux mount/unmount命令
    python http 请求 响应 post表单提交
    每周散记 20180723
    优惠劵产品分析
    c++ 软件版本比较函数
    每周散记
    转: 系统问题排查思路
  • 原文地址:https://www.cnblogs.com/psxfd4/p/11450666.html
Copyright © 2011-2022 走看看