SpringMVC(一)

第一节 SpringMVC的简介

[1] 之前学习的框架

A、mybatis --解决java代码和sql语句之间的耦合—DAO
B、Spring -解决了业务层和其他各层之间的耦合–优化Service
C、SpringMVC-解决了java代码和servlet之间的耦合-代替了servlet

[2] 为什么学习SpringMVC

A、我们使用servlet的时候发现,每一个请求都对应一个servlet ,如果有100个请求,这个时候就需要写100个servlet,这样一来就会造成servlet的数量太多
B、使用servlet进行数据接受的时候,比较的麻烦
C、我们目前书写的代码没有办法实现java代码和servlet之间的解耦

[3] 解决的方案

使用SpringMVC进行处理

[4] SpringMVC的概念

Spring MVC属于SpringFrameWork的后续产品

[5] 理解示意图
SpringMVC(一)_第1张图片

第二节 SpringMVC的框架搭建

[1] 导包
SpringMVC(一)_第2张图片
[2]书写web.xml


      mvc
      org.springframework.web.servlet.DispatcherServlet
      0
  


    mvc
    

    /

[3]书写web-inf 下的 *-servlet.xml





[4]书写自己的控制

@Controller
public class MyCon {
// @RequestMapping("/bjsxt")加上/是自己写的,不加上是别人封装好的
//
      @RequestMapping("bjsxt")
      public    String     demo1(){
         //[1]接受页面的数据
         System.out.println("数据接受完毕 name =123");
          //[2]数据的处理
//[3]做出响应
          return "/success.jsp";
      }
}

理解示意图
SpringMVC(一)_第3张图片

第三节Spring MVC框架的完善

A、我们可以自己手动指定Springmvc的位置

//在servlet中配置

    contextConfigLocation
    classpath:springmvc.xml

B、静态资源放行
[1] 在web.xml中更改拦截路径


    mvc
    *.Action

[2] Springmvc提供的静态资源放行标签



SpringMVC(一)_第4张图片

第四节 SpringMVC接受参数的处理

1.接受参数第一种方式

/**
     * 接受参数第一种方式
     * @param req
     * @param ss
     */
    @RequestMapping("/bbb")
    public void bbb(HttpServletRequest req, HttpSession ss){
        String name = req.getParameter("name");
        String age = req.getParameter("age");
        System.out.println(name+"----"+age);
    }

2.接受参数第二种方式

/**
     * 接受参数第二种方式
     *  接受的参数都可以当成控制单元的形参进行接受
     *  注意:
     *      控制单元的形参的名称必须跟表单的name属性保持一致
     * 出现400:页面传递的数据类型转换错误
     * @param name
     * @param age
     */
    @RequestMapping("/ccc")
    public void ccc(String name, int age){
        System.out.println(name+"----"+age);
    }

3.接受参数第三种方式

/**
     * 接受参数第三种方式
     *      直接对对象的值进行接受
     *      注意:
     *          form表单的name属性必须和实体类中属性名称保持一致
     * @param user
     */
    @RequestMapping("/ddd")
    public void ddd(User user){
        System.out.println(user);
    }

处理时间格式传输问题

第一种
/**
     * java.sql.Date 只含年月日,不含时分秒
     * java.util.Date 包含年月日时分秒
     * @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm;ss")
     */
    @RequestMapping("eee")
    public String eee(java.sql.Date date){
        System.out.println(date);
        return "/susscess.jsp";
    }
第二种
@RequestMapping("eee")
    public String eee(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm;ss")Date date){
        System.out.println(date);
        return "/susscess.jsp";
    }
第三种(在对象上)
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date date;

多选框接受数据

第一种

用字符数组或者字符串来接收
String hobby或者String[] hobby

@RequestMapping("fff")
    public String fff(String[] aa){
        for (String s:aa
             ) {
            System.out.println(s);
        }
        return "/susscess.jsp";
    }
第二种

Restful 数据传输方式

作用:提升你提高数据的安全性。
不是所有的操作都是用post,比如a标签

//jsp页面代码
点一下

//Java代码
@RequestMapping("ggg/{name}/{sid}")
public String ggg(@PathVariable String name,@PathVariable int sid){
    System.out.println(name+"---"+sid);
    return "/susscess.jsp";
}

你可能感兴趣的:(框架)