SpringMVC入门级理解

SpringMVC

在这里插入图片描述
在 Spring 的基本架构中,红色圈起来的 Spring Web MVC ,它是属于Spring基本架构里面的一个组成部分,属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面,所以我们在后期和 Spring 进行整合的时候,几乎不需要别的什么配置。

SpringMVC的核心架构:
在这里插入图片描述

具体流程:

(1)首先浏览器发送请求——>DispatcherServlet,前端控制器收到请求后自己不进行处理,而是委托给其他的解析器进行处理,作为统一访问点,进行全局的流程控制;

(2)DispatcherServlet——>HandlerMapping,处理器映射器将会把请求映射为HandlerExecutionChain对象(包含一个Handler处理器对象、多个HandlerInterceptor拦截器)对象;

(3)DispatcherServlet——>HandlerAdapter,处理器适配器将会把处理器包装为适配器,从而支持多种类型的处理器,即适配器设计模式的应用,从而很容易支持很多类型的处理器;

(4)HandlerAdapter——>调用处理器相应功能处理方法,并返回一个ModelAndView对象(包含模型数据、逻辑视图名);

(5)ModelAndView对象(Model部分是业务对象返回的模型数据,View部分为逻辑视图名)——> ViewResolver, 视图解析器将把逻辑视图名解析为具体的View;

(6)View——>渲染,View会根据传进来的Model模型数据进行渲染,此处的Model实际是一个Map数据结构;

(7)返回控制权给DispatcherServlet,由DispatcherServlet返回响应给用户,到此一个流程结束。

springMVC入门

  1. 创建项目到xxx,添加一个jar包
    spring-webmvc-4.1.0.RELEASE.jar

  2. web.xml
    在这里插入图片描述
    只有在满足地址后缀 .do,才会进入SpringMVC框架

  3. 添加,配置SpringMVC的主配置文件 springmvc-servlet.xml
    在这里插入图片描述

  4. 创建controller包,创建一个普通的类ClientController,添加对应注解(与上图base-package=“controller”)对应
    在这里插入图片描述
    与视图解析器,拼接前置和后置地址为/success.jsp或/fail.jsp
    5… 修改login.jsp 的登录跳转地址
    在这里插入图片描述
    地址后加上匹配规则 .do,进入SpringMVC框架
    否则会报错。
    在这里插入图片描述

实例工作流程:
1. 加载web.xml,读取配置,启动SpringMVC
2. 发送URL请求,匹配规则*.do,实例化SpringMVC的Servlet对象
3. 扫描注解路径,寻找标记注解@Controller层
4. 根据URI请求的地址,匹配方法上的注解@RequestMapping的值
5. 执行方法
6. 解析返回值,匹配默认的视图解析器,拼接成一个跳转的URI(默认转发)

ViewResolver

视图解析器负责将处理结果生成View视图. 这里介绍两种常用的视图解析器:

InternalResourceViewResolver(转发)

该视图解析器用于完成对当前Web应用内部资源的封装和跳转. 而对于内部资源的查找规则是, 将ModelAndView中指定的视图名称与视图解析器配置的前缀与后缀想结合, 拼接成一个Web应用内部资源路径. 内部资源路径 = 前缀 + 视图名称 + 后缀.

InternalResourceViewResolver解析器会把处理器方法返回的模型属性都存放到对应的request中, 然后将请求转发到目标URL.
(1)视图解析器配置如下

在这里插入图片描述
BeanNameViewResolver (重定向)

InternalResourceViewResolver视图解析器存在一个问题, 就是只可以完成将内部资源封装后的跳转, 无法跳转向外部资源, 如外部网页.

BeanNameViewResolver 视图解析器将资源(内部资源和外部资源)封装为bean实例, 然后在 ModelAndView 中通过设置bean实例的id值来指定资源. 在配置文件中可以同时配置多个资源bean.
在这里插入图片描述

中文乱码解决

Get请求乱码

Tomcat8已经解决了Get请求乱码, 如果是Tomcat8以下的版本, 可以使用以下两种方法:

更改Tomcat的配置文件server.xml
在这里插入图片描述

对参数进行重新编码

String userName =new
String(request.getParamter(“userName”).getBytes(“ISO-8859-1”),“UTF-8”); //ISO-8859-1是Tomcat8以下版本的默认编码

Post请求乱码
在web.xml中加入:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringMVC是一个基于Java的Web框架,可以帮助我们快速地构建Web应用程序。下面是一个简单的SpringMVC入门示例,让你了解如何编写一个SpringMVC应用程序。 1. 创建Maven项目 首先,我们需要创建一个Maven项目。在Eclipse或者IntelliJ IDEA中,选择创建一个Maven项目,并添加SpringMVC依赖。 2. 配置web.xml 在web.xml文件中,我们需要配置DispatcherServlet。DispatcherServlet是SpringMVC的核心组件,它拦截所有的请求并将它们分发给相应的控制器。 ```xml <web-app> <display-name>Spring MVC Application</display-name> <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/dispatcherServlet-servlet.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> </web-app> ``` 在这个配置中,我们将DispatcherServlet的URL模式设置为"/",这意味着它将拦截所有的请求。contextConfigLocation参数指定了Spring配置文件的路径。 3. 配置dispatcherServlet-servlet.xml 在dispatcherServlet-servlet.xml文件中,我们需要配置SpringMVC相关的组件,例如控制器、视图解析器等等。 ```xml <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.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <context:component-scan base-package="com.example.controller" /> <mvc:annotation-driven /> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/" /> <property name="suffix" value=".jsp" /> </bean> </beans> ``` 在这个配置中,我们使用<context:component-scan>扫描了我们的控制器所在的包。我们还使用<mvc:annotation-driven>启用了SpringMVC的注解驱动,并使用<bean>配置了一个视图解析器,将逻辑视图名映射为物理视图。 4. 编写控制器 ```java @Controller public class HelloController { @RequestMapping("/") public String hello() { return "hello"; } } ``` 在这个示例中,我们编写了一个控制器,使用@RequestMapping注解将"/"映射到hello()方法。hello()方法返回一个字符串"hello",这代表逻辑视图名。当DispatcherServlet收到一个请求并且URL匹配"/"时,它将会调用hello()方法,然后将逻辑视图名"hello"映射为物理视图名"/WEB-INF/views/hello.jsp"。 5. 编写视图 在"/WEB-INF/views/"目录下创建一个名为"hello.jsp"的JSP文件。 ```html <!DOCTYPE html> <html> <head> <title>Hello SpringMVC</title> </head> <body> <h1>Hello SpringMVC</h1> </body> </html> ``` 6. 运行应用程序 将应用程序部署到一个Web服务器上,并访问"http://localhost:8080/",你应该会看到一个"Hello SpringMVC"的页面。 以上就是一个简单的SpringMVC入门示例,希望能帮助你快速入门SpringMVC框架。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值