SpringMVC响应

响应主要分为以下四种情况:

页面:jsp

数据+页面:jsp

数据:前后端分离

json数据:前后端分离

return关键字是请求转发的意思

响应页面
@RequestMapping("/t1")
public String t1(){
    return "s1";
}
响应页面+数据
@RequestMapping("/t2")
public String t2(Model model){
    moder.addAttribute("name","z3");
    return "s2";
}

 JSP页面


<%@page isELIgnored="false"%>		-->开启el表达式

<html lang="en">
<head>
</head>
<body>
   s2s2s2   --- ${name}			-->el表达式
</body>
</html>
数据
@RequestMapping(value="/t5",produces="text/html;charset=utf-8")
@ResponseBody		//-->加上这个就是直接返回字符串--禁用试图解析器
public String t5(){
    return "s2";			//---->出现乱码问题
}
json数据

创建实体类

@Data 		//---->加get,set,toString,equal,
@AllArgsConstructor//--->有参构造
@NoArgsConstructor//--->无参构造
public class User{
    private int age;
	private String name;
}

引入坐标

<!-- 实体类用-->
<dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.22</version>
</dependency>
<!-- json-->
<dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>2.9.0</version> 2,9以上
</dependency>
<dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.9.0</version> 2,9以上
</dependency>
<dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-annotations</artifactId>
      <version>2.9.0</version> 2,9以上
</dependency>
<dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.83</version> 
</dependency>

配置xml文件

 <mvc:annotation-driven></mvc:annotation-driven>
对象
@RequestMapping("/t6")
@ResponseBody		//-->加上这个就是直接返回字符串--禁用试图解析器
public User t6(){
	User user=new User(23,"z3")
    return user;
}
集合
@RequestMapping("/t7")
@ResponseBody		//-->加上这个就是直接返回字符串--禁用试图解析器
public List<User> t7(){
	List<User> list=new List();
	list.add(new User(23),"z3");
	list.add(new User(14),"l4");
	list.add(new User(53),"w5");
    return list;
}
重定向:
@RequestMapping("/t4")
@RequestBody
public String t4(){
    return 	"redirect:/www.baidu.com";
    //----->不经过视图解析器
}
重定向与请求转发区别:

重定型请求两次,请求转发一次

重定向地址栏改变,请求转发不变

重定向是随意,请求转发资源内部跳转

重定向不能传递数据,请求转发可以传递数据

重定向是response发起,请求转发是request发起

  • 14
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以通过以下步骤来解决Spring MVC响应乱码的问题: 1. 在`web.xml`文件中添加一个过滤器,用于设置请求和响应的字符编码。例如,可以添加以下代码: ```xml <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> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` 这个过滤器将请求和响应的字符编码都设置为UTF-8。 2. 在Spring MVC的配置文件中添加以下代码,以确保响应的字符编码正确设置: ```xml <mvc:annotation-driven> <mvc:message-converters register-defaults="true"> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </bean> </mvc:message-converters> </mvc:annotation-driven> ``` 这个配置将String类型的响应转换为text/html;charset=UTF-8的媒体类型。 3. 在Controller的方法上使用`@RequestMapping`注解,并在该注解上添加`produces = "text/html;charset=UTF-8"`,以确保正确设置响应的字符编码。例如: ```java @RequestMapping(value = "/example", produces = "text/html;charset=UTF-8") @ResponseBody public String example() { // 响应内容 } ``` 这样就能确保响应内容的编码正确设置为UTF-8。 通过以上步骤,你应该能够解决Spring MVC响应乱码的问题。如果问题仍然存在,请提供更多的细节,我将尽力帮助你解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值