zoukankan      html  css  js  c++  java
  • SpringMVC入门

    一、SpringMVC入门

          1.SpringMVC的概述

              1) 是一种基于Java实现的MVC设计模型的请求驱动类型的轻量级WEB框架。 

              2) Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供 了构建 Web 应用程序的全功能 MVC 模块。 

              3)MVC模型:

                                  Model:数据模型,JavaBean的类,用来进行数据封装。

                                  View:指JSP、HTML用来展示数据给用户 。

                                  Controller:用来接收用户的请求,整个流程的控制器。用来进行数据校验等。

          2.SpringMVC的优势

              1) 清晰的角色划分:

                  前端控制器(DispatcherServlet) 

                  请求到处理器映射(HandlerMapping)

                  处理器适配器(HandlerAdapter) 

                  视图解析器(ViewResolver) 

                  处理器或页面控制器(Controller)

                  验证器( Validator) 

                  命令对象(Command  请求参数绑定到的对象就叫命令对象) 

                 表单对象(Form Object 提供给表单展示和提交到的对象就叫表单对象)。 

        3.基本环境搭建

              1).导入依赖

              2)在web.xml中配置前端控制器以及读取springmvc.xml的配置还有中文乱码

            

    <!--配置前端控制器-->
      <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- 配置Servlet的初始化参数,读取springmvc的配置文件,创建spring容器 -->
        <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:springmvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
      </servlet-mapping>
    
      <!--配置解决中文乱码的过滤器-->
      <filter>
        <filter-name>characterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
          <param-name>encoding</param-name>
          <param-value>UTF-8</param-value>
        </init-param>
      </filter>
      <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>
          

                  3)配置springmvc.xml

    <!-- 开启注解扫描 -->
        <context:component-scan base-package="cn.li"/>
    
        <!-- 视图解析器对象 -->
        <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/pages/"/>
            <property name="suffix" value=".jsp"/>
        </bean>
      
        <!-- 开启SpringMVC框架注解的支持 ,自动配置了映射器和适配器-->
        <mvc:annotation-driven />

     4.请求参数的绑定

           1)获取页面传来的字符串

             

    
    
     <a href="testParam?username=hehe&password=123">请求参数绑定</a>
     @RequestMapping("/testParam")
        public String testParam(String username,String password){
            System.out.println("执行了...");
            System.out.println("用户名:"+username);
            System.out.println("密码:"+password);
            return "success";
        }
     

          2)请求参数绑定把数据封装到JavaBean的类中

         

     @RequestMapping("/saveAccount")
        public String saveAccount(Account account){
            System.out.println("执行了...");
            System.out.println(account);
            return "success";
        }
    <form action="param/saveAccount" method="post">
            姓名:<input type="text" name="username" /><br/>
            密码:<input type="text" name="password" /><br/>
            金额:<input type="text" name="money" /><br/>
            用户姓名:<input type="text" name="user.uname" /><br/>
            用户年龄:<input type="text" name="user.age" /><br/>
            <input type="submit" value="提交" />

        3)自定义类型转换器

             将页面的字符串转化为类型date       

    /**
     * 将字符串转换为日期
     */
    public class StringToDateConverter implements Converter<String,Date> {
        /**
         *
         * @param source 传进来的字符串
         * @return
         */
        public Date convert(String source) {
            if(source==null){
                throw new RuntimeException("请输入值");
            }
            DateFormat df=new SimpleDateFormat("yyyy-MM-dd");
            try {
                //字符串转换为日期
                return df.parse(source);
            } catch (ParseException e) {
                throw new RuntimeException("转换失败");
            }
    
        }
    }
     <!--springmvc.xml中配置自定义类型的转换器-->
        <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
            <property name="converters">
                <set>
                    <bean class="cn.li.utils.StringToDateConverter"></bean>
                </set>
            </property>
        </bean>
    <!--参数为开启自定义类型转换器-->
    <mvc:annotation-driven conversion-service="conversionService"/>

             4)获取原生的Servlet API  

    @RequestMapping("/testServlet")
        public String testServlet(HttpServletRequest request,HttpServletResponse response){
            System.out.println("执行了...");
            System.out.println(request);
            HttpSession session = request.getSession();
            System.out.println(session);
            ServletContext servletContext = session.getServletContext();
            System.out.println(servletContext);
            System.out.println(response);
            return "success";
        }

           

  • 相关阅读:
    iis出现2145318902错误
    div在父容器中水平垂直居中
    SSRS中错误:为用户“NT AUTHORITY\NETWORK SERVICE”授予的权限不足,无法执行此操作。 (rsAccessDenied)解决方案
    数字签名
    SQL无法连接问题
    DataTable导出到excel中,及乱码问题
    Could not load file or assembly 'Microsoft.ReportViewer.Common, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its depe
    Windows 7无法启动“bootmgr is compressed”解决办法
    U盘安装xp
    IIS7下浏览网站出现503,应用程序池无法启动.事件查看器中出现"Windows 找不到本地配置文件,正在用临时配置文件让您登录。当您注销时,对此配置文件所作的更改将丢失。"
  • 原文地址:https://www.cnblogs.com/cqyp/p/12520130.html
Copyright © 2011-2022 走看看