阿里云开发者社区

电脑版
提示:原网页已由神马搜索转码, 内容由developer.aliyun.com提供.

SpringMVC知识点

2024-05-2641
版权
版权声明:
本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《 阿里云开发者社区用户服务协议》和 《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写 侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
简介:SpringMVC知识概览:包括Restful风格的两种实现(推荐使用`@GetMapping`),参数传递如`@PathVariable`。此外,探讨了SpringMVC的转发与重定向,以及处理请求数据的多种方式,如匹配域名参数、使用`@RequestParam`和接收对象。解决乱码问题,可以通过自定义或SpringMVC内置的过滤器。还涉及JavaScript与JSON对象的转换。

SpringMVC知识点

一、 SpringMVC-Restful风格

image.png

二、实现

在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 重定向
image.png

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

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
image.png

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>
目录
相关文章
|
4月前
|
JSON前端开发Java
学习 SpringMVC 必备的 4 大知识点
学习 SpringMVC 必备的 4 大知识点
|
4月前
|
前端开发Java数据格式
10个知识点让你读懂spring MVC容器
随着 Spring Boot 逐步全面覆盖到我们的项目之中,我们已经基本忘却当年经典的 Servlet + Spring MVC 的组合,那让人熟悉的 web.xml 配置。而本文,我们想先抛开 Spring Boot 到一旁,回到从前,一起来看看 Servlet 是怎么和 Spring MVC 集成,怎么来初始化 Spring 容器的。
|
4月前
|
Java应用服务中间件数据库连接
Spring5源码(51)-Servlet知识点回顾以及SpringMVC分析入口
Spring5源码(51)-Servlet知识点回顾以及SpringMVC分析入口
6000
|
12月前
|
设计模式前端开发Java
SpringMVC重温知识点
Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。
6600
SpringMVC重温知识点
|
XML缓存JSON
Spring MVC 阅读官方文档知识点总结
Spring MVC 阅读官方文档知识点总结
17388
|
SQL前端开发JavaScript
SpringMVC知识点汇总
1.${SESSION_USER_V2}        会从大到小查找作用域中的attribute          PageContext                          PageScope          servletRequest                       RequestScope          httpSession            
216600
|
JSON前端开发Java
springMVC学习笔记--知识点总结1
以下是学习springmvc框架时的笔记整理: 结果跳转方式   1.设置ModelAndView,根据view的名称,和视图渲染器跳转到指定的页面. 比如jsp的视图渲染器是如下配置的:    ...
97000
|
4月前
|
设计模式前端开发JavaScript
Spring MVC(一)【什么是Spring MVC】
Spring MVC(一)【什么是Spring MVC】
|
3月前
|
设计模式前端开发Java
【Spring MVC】快速学习使用Spring MVC的注解及三层架构
【Spring MVC】快速学习使用Spring MVC的注解及三层架构
|
3月前
|
前端开发Java应用服务中间件
Spring框架第六章(SpringMVC概括及基于JDK21与Tomcat10创建SpringMVC程序)
Spring框架第六章(SpringMVC概括及基于JDK21与Tomcat10创建SpringMVC程序)

热门文章

最新文章