SpringMVC知识点

一、 SpringMVC-Restful风格

SpringMVC知识点_restful

Restful风格

SpringMVC知识点_java_02

二、实现

在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转发

SpringMVC知识点_后端_03

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 重定向

SpringMVC知识点_spring_04

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提交的域名参数与处理方法参数一致

SpringMVC知识点_spring_05

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”)

SpringMVC知识点_spring_06

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

SpringMVC知识点_后端_07

四、乱码问题

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请求

SpringMVC知识点_json_08

这是get请求

SpringMVC知识点_json_09

我们发现不同的请求方式也会对乱码产生影响。

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>

SpringMVC知识点_java_10

五、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>