SpringMVC -----------------入门

1 SpringMVC 入门

    1. 简介:

MVC

M:Model

V:View

C:Controller - servlet/action/controller

 

Spring MVC是Spring提供的一个强大而灵活的web框架。借助于注解,Spring MVC提供了几乎是POJO的开发模式,使得控制器的开发和测试更加简单。这些控制器一般不直接处理请求,而是将其委托给Spring上下文中的其他bean,通过Spring的依赖注入功能,这些bean被注入到控制器中。

 

Spring MVC主要由DispatcherServlet、处理器映射【找控制器】、适配器【调用控制器的方法】、控制器【业务】、视图解析器、视图组成。

1.2 SpringMVC的原理

 

1.3 Spring入门案例

第一步:导入springmvc jar包

暂时先导入下面的jar包

 

第二步:在web.xml配置DispatcherServlet

 <servlet>

        <servlet-name>DispatcherServlet</servlet-name>

        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

        <load-on-startup>1</load-on-startup>

    </servlet>

 

    <servlet-mapping>

        <servlet-name>DispatcherServlet</servlet-name>

        <url-pattern>*.do</url-pattern>

    </servlet-mapping>

 

第三步:在WEB-INF目录下创建DispatcherServlet-servlet.xml

<?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:mvc="http://www.springframework.org/schema/mvc"

    xmlns:context="http://www.springframework.org/schema/context"

    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"

    xsi:schemaLocation="http://www.springframework.org/schema/beans

        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd

        http://www.springframework.org/schema/mvc

        http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd

        http://www.springframework.org/schema/context

        http://www.springframework.org/schema/context/spring-context-3.2.xsd

        http://www.springframework.org/schema/aop

        http://www.springframework.org/schema/aop/spring-aop-3.2.xsd

        http://www.springframework.org/schema/tx

        http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">

       

</beans>

 

第四步:配置DispatcherServlet-servlet.xml

<!-- 1. 配置处理器映射,springmvc默认的处理器映射器

                BeanNameUrlHandlerMapping:根据bean的name属性的url去找handlerController -->

          <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>

          <!-- 2. 配置处理器适配置器执行Controller -->

          <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>

          <!-- 3.配置一个控制器 -->

          <bean name="/user.do" class="com.gyf.backoffice.web.controller.UserController"/>

          <!-- 4.配置springmvc视图解析器

               视图解析器解析的视频路径为:前缀 + 后缀 -->

          <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

               <property name="prefix" value="/WEB-INF/views"/>

               <property name="suffix" value=".jsp"/>

          </bean>

 

第五步:创建个Controller控制器

package com.dong.backoffice.web.controller;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Usercontroller  implements Controller {
    @Override
    public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
       ModelAndView modelAndView=new ModelAndView("user/userlist");
       modelAndView.addObject("name","1111");

        return modelAndView;
    }
}

 

第六步:创建一个userList.jsp页面

 

第七步:运行项目,访问路径

 

 

1.4 Spring的执行流程

流程图

控制器处理适配器源码

SimpleControllerHandlerAdapter

 

 

 

 1.5URL处理器映射【了解】

BeanNameUrlHandlerMapping

功能:寻找Controller

           根据url请求去匹配bean的name属性,从而获取Controller

 

SimpleUrlHandlerMapping

功能:寻找Controller

           根据浏览器url匹配简单url的key,key就是Controller的id找到Controller

 

 

测试路径:

http://localhost:8080/springmvc-demo01/user1.do

http://localhost:8080/springmvc-demo01/user2.do

http://localhost:8080/springmvc-demo01/user3.do

 

 

ControllerClassNameHandlerMapping

功能:寻找Controller

            根据类名(MyController)类名.do来访问,类名首字母小写

 

测试

 

1.6 处理器适配器

SimpleControllerHandlerAdapter

功能:执行controller

           调用controller里面方法,返回modelAndView

 

HttpRequestHandlerAdapter

执行控制器

负责调用实现HttpRequestHandler接口的控制器

 

 

 

http://localhost:8080/springmvc-demo01/user2.do

 

注意:两个处理器适配器可以共存

 

 

1.7 命令控制器【了解】

Springmvc通过命令设计模式接受页面参数

添加页面

<form action="${pageContext.request.contextPath}/command.do" method="post">

    用户名:<input type="text" name="username"><br>

    密码:<input type="text" name="password"><br>

    性别:<input type="text" name="gender"><br>

    生日:<input type="text" name="birthday"><br>

    <input type="submit">

  </form>

 

 

Command控制器

 

Info.jsp

 

views结构

 

DispatchServelt-sevlet配置文件

如果bean中配置name,都要加上/斜杠

 

 

测试

默认日期格式只能2017/10/11格式,其它格式接收参数会为空

 

 

乱码问题

POST请求乱码

<!-- 配置编码过滤器  -->

     <filter>

          <filter-name>EncodingFilter</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>EncodingFilter</filter-name>

          <url-pattern>/*</url-pattern>

     </filter-mapping>

 

GET请求乱码

Tomcat8 默认进行了url编码,get请求不乱码,Tomcat7会乱码

 

 

日期类型转换

springmvc默认接收的日期格式为yyyy/MM/dd,如果添加其它格式,只要重写一个方法,如图

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值