SpringMVC(一)
SpringMVC(一)
MVC
-
模型(DAO,service)、视图(jsp)、控制器(Servlet)
-
MVC是一种软件设计规范,将业务逻辑、数据、显式分离的方法来组织代码
-
降低了视图与业务逻辑之间的双向耦合
MVC框架要做的事情
- 将url映射到java类或java类的方法
- 封装用户提交的数据
- 处理请求,调用相关的业务处理,封装响应数据
- 将响应的数据进行渲染,jsp/html等表示层数据
初识SpringMVC
SpringMVC的特点
- 轻量级,简单易学
- 高效,基于请求响应的MVC框架
- 与Spring兼容性好,无缝结合
- 约定优于配置
- 功能强大:RESTful、数据验证、格式化、本地化、主题等
- 简洁灵活
中心控制器
- Spring的web框架围绕DispatcherServlet设计
- 将请求分发到不同的处理器
- 从Spring2.5开始,使用Java5以上版本,可以采用基于注解的controller声明方式
- SpringMVC以请求为驱动,围绕一个中心Servlet分派请求及提供其他功能
HelloSpringMVC
- 在web.xml中注册DispatcherServlet
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!--注册DispatcherServlet-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--关联一个springmvc的配置文件:[servlet-name]-servlet.xml-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!--/ 匹配所有请求,不包括jsp-->
<!--/* 匹配所有请求,包括jsp-->
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
- 在Spring配置文件springmvc-servlet.xml中配置bean
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--添加处理映射器-->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<!--添加处理器适配器-->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
<!--添加视图解析器-->
<!--视图解析器DispatcherServlet给他的ModelAndView-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="InternalResourceViewResolver">
<!--前缀-->
<property name="prefix" value="/WEB-INF/jsp/"/>
<!--后缀-->
<property name="suffix" value=".jsp"/>
</bean>
</beans>
- 实现Controller接口
public class HelloController implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
//ModelAndVie 模型和视图
ModelAndView mv = new ModelAndView();
//封装对象,放在ModelAndView中
mv.addObject("msg", "HelloSpringMVC");
//封装要跳转的视图
mv.setViewName("hello");//WEB-INF/jsp/hello.jsp
return mv;
}
}
- 在Spring中绑定bean
<!--Handler-->
<bean id="/hello" class="com.yhr.controller.HelloController"/>
- 编写jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
${msg}
</body>
</html>
-
IDEA中配置项目结构
- Project Structure -> Project Settings -> Artifacts -> 当前模块
- WEB-INF下新建lib目录,添加所有的Library Files
-
运行请求
/hello测试

浙公网安备 33010602011771号