SpringMVC知识点

SpringMVC知识点

一、 SpringMVC-Restful风格

在这里插入图片描述
Restful风格
在这里插入图片描述

二、实现

在springMVC的项目的controller中

package com.kuang.controller;


import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class RestfullController {
     @RequestMapping(value ="/add/{a}/{b}",method = RequestMethod.GET)

    //@GetMapping("/add/{a}/{b}")  //可以自定义自己需要的方法提交方法
    public  String test1(@PathVariable int a,@PathVariable int b, Model model){

        int res=a+b;
        model.addAttribute("msg","结果为"+res);
        return "test";

    }
}

注意:Restful风格有两种实现方式
1.  @RequestMapping(value ="/add/{a}/{b}",method = RequestMethod.GET)这种方法需要指定自己指定数据传送的类型。默认是get请求。
2. @GetMapping("/add/{a}/{b}")直接说明数据传送的具体方法。推荐使用第二种。
3. 在使用上述Restful方式时,都要@PathVariable表明数据的类型。

二、springMVC的转发形式

2.1在无视图解析器的情况下
2.1.1转发
在这里插入图片描述

package com.kuang.controller;


import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class ModelTest {

    @RequestMapping("/t1")
    public String mode(Model model){

      model.addAttribute("msg","Hello");
        //转发
    return "forward:/WEB-INF/jsp/test.jsp";
      
    }
}

2.1.2 重定向
在这里插入图片描述

package com.kuang.controller;


import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class ModelTest {

    @RequestMapping("/t1")
    public String mode(Model model){

      model.addAttribute("msg","Hello");
        //转发
      // return "forward:/WEB-INF/jsp/test.jsp";
        //重定向
       return "redirect:/index.jsp";
    }
}

三、接受请求数据以及回显

3.1提交的域名参数与处理方法参数一致
在这里插入图片描述

package com.kuang.controller;


import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/user")
public class UserController {

    @GetMapping("/t1")
    public String test1(String name, Model model){
        //接受前端传来的参数
     System.out.print("前端数据"+name);
        //将返回的结果传递给前端
        model.addAttribute("msg",name);

        //跳转视图
        return "test";
    }
}

3.2提交的域名参数与处理方法参数不一致
@RequestParam(“username”)
在这里插入图片描述
3.3 提交的是对象
创建的实体类

package com.kuang.poji;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor //有参无参
@NoArgsConstructor
public class User {
    private int id;
    private String name;
    private int age;
}

http://localhost:8080/user/t2/?id=1&name=sed&age=12
在这里插入图片描述

四、乱码问题

1.设置过滤器

package com.kuang.filter;

import javax.servlet.*;
import java.io.IOException;

public class EncodingFilter implements Filter {


    public void init(FilterConfig filterConfig) throws ServletException {

    }

    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
       servletRequest.setCharacterEncoding("UTF-8");
       servletResponse.setCharacterEncoding("UTF-8");

       filterChain.doFilter(servletRequest,servletResponse);
    }

    public void destroy() {

    }
}

在web.xml 中配置

 <filter>
        <filter-name>encoding</filter-name>
        <filter-class>com.kuang.filter.EncodingFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>encoding</filter-name>
        <url-pattern>/</url-pattern>
    </filter-mapping>

这是post请求
在这里插入图片描述
这是get请求
在这里插入图片描述
我们发现不同的请求方式也会对乱码产生影响。

2.配置SpringMVC的乱码过滤器
在web.xml中配置

<!--配置SpringMVC的乱码过滤器-->
    <filter>
        <filter-name>encoding</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>encoding</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

在这里插入图片描述

五、Json

5.1JavaScript与js的转化

    <script type="text/javascript">
        var user={
            name:'德和',
            age:3,
            sex:"男"
        }
        //将js转化为json对象
       var json=JSON.stringify(user);

        console.log(json);

        //将Json对象转化为JavaScript对象
        var json1=JSON.parse(json);
        console.log(json1);

    </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

code袁

你的支持是我莫大的幸运

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值