SpringMVC(2)

1.请求相关操作

1.1@PathVariable

@PathVariable
* 作用:将路径占位符信息绑定到目标方法的参数上,为RESTful风格奠定了技术支持
* 位置:标记在目标方法的参数上
* 属性:

  • value属性:要求该value属性值要和占位符保持一致。

在这里插入图片描述

1.2@RequestParam注解

@RequestParam
* 作用:用来获取请求参数的
* 位置:可以标记在目标方法的参数上
* 属性:

  • value: 要求该value属性值要和前端发送过来的参数的键保持一致。
  • required:默认值true,表示该参数必须携带,可以设置为false,表示这个可有可无
  • defaultvalue:表示如果我们携带过来了这个参数,就是用你携带过来的参数值,如果没携带这个参数,那就使用该属性指定的值

注意:@RequestParam是可以省略的,前提是:目标方法的参数名和前端发过来的参数名保持一致。
代码:
在这里插入图片描述

1.3@RequestHeader注解

@RequestHeader:
* 作用:获取请求头信息
* 位置:标记在目标方法的参数上
* 属性:

  • value: 要求该value属性值要和前端发送过来的请求头的键保持一致。
  • required:默认值true,表示该请求头必须携带,可以设置为false,表示这个可有可无
  • defaultvalue:表示如果我们携带过来了这个请求头,就是用你携带过来的请求头值,如果没携带这个请求头,那就使用该属性指定的值

代码:
在这里插入图片描述在这里插入图片描述

1.4@CookieValue注解

@CookieValue
* 作用:获取某个cookie的值
* 位置:标记在目标方法的参数上
* 属性:

  • value: 要求该value属性值要和某个cookie的键保持一致。
  • required:默认值true,表示该cookie必须携带,可以设置为false,表示这个可有可无
  • defaultvalue:表示如果我们携带过来了这个指定的cookie,就是用你携带过来的cookie值,如果没携带这个cookie,那就使用该属性指定的值
    在这里插入图片描述

1.5处理请求乱码

请求乱码
GET请求乱码:tomcat7及以下都有这个乱码
解决方案:URIEncoding=“UTF-8”

POST请求乱码:filter:在获取第一个请求参数之前,设置request.setCharacterEncoding(“utf-8”);在web.xml文件中配置一个CharacterEncodingFilter,并且制定encoding=utf-8就可以了。

响应乱码:暂时不存在[response.contentType(“text/html;charset=utf-8”)]

<!-- 该过滤器只是处理post请求乱码,而且 -->
	<filter>
	  <filter-name>CharacterEncodingFilter</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>CharacterEncodingFilter</filter-name>
	   <url-pattern>/*</url-pattern>
	</filter-mapping>

最好,我们将该filter配置在其它filter之前。

1.6原生API

所谓原生API是指:在javaweb部分学过的
HttpServletRequest、
HttpServletResponse、
HttpSession
具体使用:只需要在目标handler方法的参数上声明一下即可使用。
在这里插入图片描述

1.7mvc:view-controller标签

在这里插入图片描述

1.8Springmvc支持pojo对象

springmvc支持使用pojo对象直接作为目标handler方法的参,springmvc也支持使用连缀的方式给pojo对象的属性的属性赋值

  • 要求:
  1. pojo对象的属性名要和表单项的name值保持一

  1. pojo对象存在无参构造器【反射】

前端页面:

<form action="${pageContext.request.contextPath}/user/testParameter" method="get">
       姓名:<input type="text" name="name"><br>
       密码:<input type="password" name="password"><br>
       性别:<input type="radio" name="gender" value="1"><input type="radio" name="gender" value="0"><br>
       年龄:<input type="text" name="age"><br>
  爱好:   <input type="checkbox" name="hobby" value="ppq">乒乓球
      <input type="checkbox" name="hobby" value="lq">篮球
      <input type="checkbox" name="hobby" value="zq">足球
      <input type="checkbox" name="hobby" value="ymq">羽毛球
      <br>
      <!-- 连缀:给pojo对象的属性的属性赋值 -->
   户籍省:<input type="text" name="address.province">:<input type="text" name="address.city">:<input type="text" name="address.county"><br/>
         
         小说:<br/>
                    书名一:<input type="text" name="bookList[0].name" >
                     价格一:<input type="text" name="bookList[0].salary"><br/>
                     
                     书名二:<input type="text" name="bookList[1].name" >
                     价格二:<input type="text" name="bookList[1].salary"><br/>
                  
                     书名三:<input type="text" name="bookList[2].name" >
                     价格三:<input type="text" name="bookList[2].salary"><br/>
     <input type="submit" value="提交">
  </form>

后端接口:

	@RequestMapping(value="/testParameter")
	public String testParameter(User user) {
		
	    System.out.println(user);
		return "abc";
	}

Pojo对象://提供属性的getter、setter方法

public class User {

	private String name;
	private String password;
	private Integer age;
	private boolean gender;
	private String[] hobby;
	private Address address;
	private List<Book> bookList;
}

2.响应相关操作

2.1同步响应

2.1.1同步请求响应数据的类型

String:逻辑视图名
ModelAndView:对象包含视图信息,视图中展示的数据信息
void:基本不用

	@RequestMapping("/testMV") //返回ModelAndView
	public ModelAndView testMV() {
		ModelAndView mv = new ModelAndView("abc");
		mv.addObject("username", "张三");
		return mv;
	}
2.1.2如何将controller数据携带到页面上

如果想将controller数据携带到页面上有两种方式:

  • 第一种:使用ModelAndView作为方法的返回值类型
  • 第二种:使用string类型返回【逻辑视图名】,是handler方法使用Model、Map、ModelMap类型的参数

本质:springmvc框架在底层把我们放入到ModelAndView|Map对象中的数据又解析出来放入到request域中的一份

2.1.3另一种形式的页面跳转

在controller层的方法返回以”redirect:”或者“forward:”开头的字符串来实现页面的重定向或者转发!而且这个字符串不会经过内部资源视图解析器的解析。

2.2异步响应

2.2.1如何使用静态资源文件

静态资源文件:html、css、js、img
如果在springmvc这儿想要使用静态资源文件,必须在springmvc.xml文件中配置一个标签:

   <!-- 处理静态资源文件的标签:表示如果springmvc处理不了这个静态文件,springmvc就会将这个请求交给tomcat服务器处理 -->
   <mvc:default-servlet-handler/>
   <mvc:annotation-driven/>

controller如何返回json数据
前后端交互

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值