搭建Spring Web MVC简单测试

113 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

MVC :
Model(模型):负责业务逻辑,包含两层:业务数据和业务处理逻辑,比如实体类、Dao、Service都属于模型层
View(视图):负责显示界面和用户交互(收集用户信息),属于视图层的组件是不包含业务逻辑和控制逻辑的Jsp.
Controller(控制器):负责模型层和视图层之间的桥梁,用于控制流程.
Spring Web MVC有五大组件:
DispatcherServlet(控制器,请求入口):请求交给前端控制器DispatcherServlet处理
HandlerMapping(控制器,请求派发):控制器通过HandlerMapping找到相应的Controller组件处理请求,维护着一个HTTP请求和Controller映射关系表(map结构).
Controller(控制器,请求处理流程):执行Controller组件约定方法处理请求,在调用方法完成业务逻辑处理后,返回一个ModelAndView对象,封装了处理结果数据和视图名称信息,编写时需要实现Controller接口.
ModelAndView(模型,封装业务处理结果和视图):封装处理数据和视图名称信息,ModelAndView(String viewName),viewName就是jsp页面的名字,Model的数据存储在request的attribute中.
ViewResolver(视图,视图显示处理器):控制器接收到ModelAndView后,调用ViewResolver组件,定位到Jsp(视图)位置并传递数据信息,生成相应界面.

在Web.xml中配置DispatcherServlet\

image.png
在Spring-mvc.xml中配置HandlerMapping、Controller和ViewResolver\

image.png
HelloController

public class HelloController implements Controller{

	public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
		System.out.println("Hello Spring MVC");
		return new ModelAndView("jsp/hello");
	}
}

hello.Jsp

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Spring Web MVC</title>
</head>
<body>
	<h1>Hello,SpringMVC</h1>
</body>

测试
在这里插入图片描述
以上是基于配置的开发,下面是基于注解的开发
注解:
@Controller注解:声明Controller组件,这样可以使Controller的定义更加灵活,可以不实现Controller接口,请求处理的方法也可以灵活定义.需要在配置文件中开启组件扫描,并制定Controller组件的所在包.
@RequestMapping可以用在类定义和方法定义上,标定这个类或方法与哪一个请求对应,需要在配置文件中定义RequestMappingHandlerMapping和RequestMappingHandlerAdapter两个bean组件,简化为:>mvc:annotation-driven />

Web.xml不变,还是配置DispatcherServlet.
Spring-mvc2.xml
在这里插入图片描述
DemoController

@Controller
@RequestMapping("/demo")
public class DemoController {
	@RequestMapping("/hello.do")
	public ModelAndView execute() {
		return new ModelAndView("jsp/demo");
	}
	@RequestMapping("/hello1.do")
	public ModelAndView execute1() {
		return new ModelAndView("jsp/demo1");
	}
}

demo.jsp

<body>
	<h1>Hello,我是demo</h1>
</body>

demo1.jsp

<body>
	<h1>Hello,我是demo1</h1>
</body>

测试
在这里插入图片描述
在这里插入图片描述