SpingMVC请求和响应


前言

提示:这里可以添加本文要记录的大概内容:


提示:以下是本篇文章正文内容,下面案例可供参考

web.xml中配置

<servlet>
	<servlet-name>springmvc</servlet-name>
	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	<init-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:springmvc-config.xml</param-value>
	</init-param>
	<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
	<servlet-name>springmvc</servlet-name>
	<url-pattern>*.action</url-pattern>
</servlet-mapping>

页面提交数据方法

1、直接通过url请求地址通过 “?” 拼接请求参数的方式。

2、通过页面的form表单 submit类型的按钮提交的方式(get和post)。
登录按钮的类型(type属性)必须为“submit”

3、通过JavaScript (JQuery) ,Ajax异步请求提交数据。
(数据来源可以是通过form表单,或通过其他方式获得的数据)

系统功能编码流程

在这里插入图片描述

控制层接收数据的几种方法:

1、通过简单类型参数绑定的方式。
例如:控制器方法名(Stringname)。还可以借助于@RequestParam注解进行间接绑定。
2、通过pojo类,即封装数据类型的方式进行请求参数绑定。
例如:控制器方法名(User user) 。
3、通过默认数据类型的方式进行绑定,
例如:控制器方法名(HttpServletRequest req)
4、Restful编程风格(把请求参数放到请求路径中)

注解

@Controller注解

@Controller 注解类型用于指示Spring类的实例是一个控制器。使用时不需要再实现Controller 接口,只需要将 @Controller注解加入到控制器类上,通过Spring的扫描机制找到标注了该注解的控制器即可。

package com.controller;
import org.springframework.stereotype.Controller;
...

@Controller
public class Hello {
    
    
...
}

注意:
使用注解方式时,程序的运行需要依赖 Spring的 AOP包
因此需要向lib目录中添加spring-aop-4.3.6.RELEASE.jar,否则程序运行时会报错!

为保证Spring能够找到控制器类,需要在 Spring MVC的配置文件中添加相应的扫描配置信息:

<!-- 配置扫描器 -->
<context:component-scan base-package="springmvc.controller"/>

@RequestMapping注解

Spring通过 @Controller注解找到相应的控制器类后,还需要知道控制器内部对每一个请求是如何处理的,这就需要使用 @RequestMapping注解,它用于映射一个请求或一个方法。使用时,可以标注在一个方法或一个类上

1.标注在方法上:作为请求处理方法在程序接收到对应的URL请求时被调用:

package com.itheima.sontroller;
import org.springframework.stereotype.Controller;
import org.springframework.wsb.bind.annotation.RequestMapping;
...
@Controller
@RequestMapping(value="/hello")
public class FirstController{
    
    
	@RequestMapping(value="/firstController")
	public ModelAndView handleRequest(HttpServletRequest request,
				HttpServletR.esponse response){
    
    
		...
		return mav;
	}
}

由于在类上添加了@RequestMapping注解,并且其value属性值为 “/hello”,
所以上面代码方法的请求路径将变为: http://localhost:8080/chapter12/ hello/firstController

@RequestMapping注解的属性

请添加图片描述

组合注解

@GetMapping:匹配 GET方式的请求
@PostMapping:匹配 POST方式的请求
@PutMapping:匹配 PUT方式的请求
@DeleteMapping:匹配 DELETE方式的请求
@PatchMapping:匹配 PATCH方式的请求

举例:

@RequestMapping(value = "/login.action", method = RequestMethod.POST)
//这两个注解的作用一样
@PostMapping("/login.action")


@RequestMapping(value = "/login.action", method = RequestMethod.GET)
//这两个注解的作用一样
@GetMapping("/login.action")

在控制层对用户响应页面或数据的方式

对用户响应页面或数据的方式,即请求处理方式的返回类型。常见类型有三种:
ModelAndView
String:使用String来表示要返回的界面,使用Model返回界面需要的值。
void:用于异步请求,只返回数据,不跳转页面。

使用String表示要返回的界面
Action的方法返回值类型为String,在方法中返回表示输出界面的字符串,与ModelAndView中的第一个参数相同

@RequestMapping("studentAddView.do")
public String addView(){
    
    
return "studentAdd";
}

如果要实现上面这段代码,就要实现视图解析器
把下面这段代码放在配置文件中(.xml)

<!-- 配置视图解析器 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>

猜你喜欢

转载自blog.csdn.net/rej177/article/details/125508510