zoukankan      html  css  js  c++  java
  • springMVC学习

    1.springMVC

    相对于struts2优点,:rest风格和注解的实现更为方便

    springMVC 响应大致流程

    2. springMVC具体流程

    在整个框架中,DispatcherServlet处于核心的位置,它负责协调和组织不同组件以完成请求处理并返回响应的工作
    具体的处理流程:

    1)整个过程始于客户端发出一个HTTP请求,Web应用服务器接收到这个请求,如果匹配DispatcherServlet的请求映射路径(在web.xml中指定),Web容器将该请求转交给DispatcherServlet处理。
    2)DispatcherServlet接收到这个请求后,将根据请求的信息及HandlerMapping的配置找到处理请求的处理器(Handler)。注意:Spring MVC中并没有定义一个Handler接口,实际上任何一个Object都可以成为请求处理器。
    3)当DispatcherServlet根据HandlerMapping得到对应当前请求的Handler后,通过HandlerAdapter对Handler进行封装,再以统一的适配器接口调用Handler。HandlerAdapter是Spring MVC的框架级接口,顾名思义,HandlerAdapter是一个适配器,它用统一的接口对各种Handler方法进行调用。
    4)处理器完成业务逻辑的处理后将返回一个ModelAndView给DispatcherServlet,ModelAndView包含了视图逻辑名和模型数据信息。
    5)ModelAndView中包含的是“逻辑视图名”而非真正的视图对象,DispatcherServlet借由ViewResolver完成逻辑视图名到真实视图对象的解析工作。
    6)当得到真实的视图对象View后,DispatcherServlet就使用这个View对象对ModelAndView中的模型数据进行视图渲染。
    最终客户端得到的响应消息


    3. 实现controller的方式实现

    b. 相应的springMVC配置
    +

     <!-- 配置控制器 -->
        <bean name="/hello.do" class="com.dream.web.controller.HelloController"/>
        
        <!-- 配置视图渲染器 -->
    	<bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    	    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
    	    <!-- 将视图名 渲染后视图的前缀 -->
    	    <property name="prefix" value="/WEB-INF/jsp/"/>
    	    <!-- 渲染后视图的后缀 -->
    	    <property name="suffix" value=".jsp"/>
    	</bean>
    

    c .配置之前要在web.xml里面进行配置dispacherServlet:

    <servlet>
        <servlet-name>hello</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>hello</servlet-name>
        <url-pattern>/</url-pattern>
      </servlet-mapping>
    

    4. 注解实现:

    编写请求处理器
    Spring MVC通过一个@Controller注解即可将一个Controller的普通类转化为处理请求的控制器,通过@RequestMapping为控制器指定处理哪些URL的请求

    首先,还是要配置springMVC的配置文件,使控制器和视图解析器等生效
    配置文件名为:hello-servlet.xml

    <context:component-scan base-package="com.dream.web.controller"/>
        
        <!-- 配置视图渲染器 -->
    	<bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    	    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
    	    <!-- 将视图名 渲染后视图的前缀 -->
    	    <property name="prefix" value="/WEB-INF/jsp/"/>
    	    <!-- 渲染后视图的后缀 -->
    	    <property name="suffix" value=".jsp"/>
    	</bean>
    

    5. 转发和重定向的方式

    第一种modelAndView进行:

    第二种原生的:

    第三种字符串


    6. 数据处理

    第一种是通过属性获取:

    如果属性不一致,要加注解(RequestParam)

    第二种是对象的方式进行获取:


    7. 乱码问题的处理

    a. spring方式进行处理,只能处理post

    b. 修改tomcat上的配置

    Tomcat设置URIEncoding="utf-8"

    c. 进行配置编码过滤器进行处理乱码问题

    如果不是通过request.getParamter方式进行获取,也就是说是通过springMVC的方式进行获取则要自己手动转换。也就是说自己做的过滤器只支持request进行获取数据。


    8. 文件的上传
    1. 导入jar包
      com.springsource.org.apache.commons.fileupload-1.2.0.jar
      com.springsource.org.apache.commons.logging-1.1.1.jar
      com.springsource.org.apache.commons.io-1.4.0.jar

    2. 编写JSP页面

    <form action="uploadFile.do" method="post" enctype="multipart/form-data">
    		<input type="file" name="file"> 
    		<input type="submit"><br>
    	</form>
    
    1. 编写controller

    2. 设置上传解析器

    <!-- 文件上传配置 -->
    		<!-- 上传的解析器 -->
    	<bean id="multipartResolver"
    		class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    		<!-- 设置编码格式 -->
    		<property name="defaultEncoding" value="utf-8"></property>
    		<!-- 设置文件大小 -->
    		<property name="maxUploadSize" value="10"></property>
    	</bean>
    
    1. 批量下载
  • 相关阅读:
    1210 BBS admin后台管理及侧边栏筛选个人站点
    1209 BBS 登录
    更换 npm 源国内镜像 cnpm
    Linux软件管理
    apt-get / yum 软件安装源(国内)
    修改pip源为国内镜像源(加速下载)
    修改浏览器搜索引擎:网址应该如何填写
    如何根据实际问题选择一个合适的数学模型
    安装向量和矩阵运算库函数
    配置编译器(GCC和GFortran)
  • 原文地址:https://www.cnblogs.com/jwlxtf/p/8056519.html
Copyright © 2011-2022 走看看