3.SpringMVC入门程序
3.1 使用实现Controller接口方式编写入门程序
第一步:搭建环境,导入依赖(这里由于是父子工程,所以前面已经导入依赖了)
第二步:编写web.xml配置文件(前提是加入了添加web框架支持)
- 第一个配置核心是DispatcherServlet(由spring提供)
- 标签:是指定初始化的参数的键值对
- 标签:设置启动级别(可以正负。1级别最高)
- 中 标签:设置请求的路径(这里设置的是/表示除jsp可以请求)
<?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>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
<!--启动级别为1级别(为最高级别,启动就加载)-->
<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>
第三步:配置web.xm中标签指定的spring核心配置文件springmvc-servlet.xml
-
HandlerMapping:处理器映射器(根据请求的url查找Handler。)也就是找下面的/hello路径
-
HandlerAdapter: 处理器适配器(按照特定规则(HandlerAdapter要求的规则)去执行Handler)
也就是找下面注册Controller
-
ViewResolver:视图解析器(配置前缀后缀方便我们快速定位资源)
<?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-->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<!--将处理器适配器注册到bean-->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
<!--将视图解析器注册到bean-->
<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>
第四步:编写Controller
- 设置请求路径以及跳转页面
package com.xuan.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class HelloController {
@RequestMapping("/hello")
public ModelAndView handleRequest() {
//创建视图模型对象
ModelAndView mv = new ModelAndView();
//设置属性值键值对@Nullable表示值可以为空(源码)
mv.addObject("msg",@Nullable"hello SpringMVC!");
//设置跳转页面在视图解析器的前缀prifix上
mv.setViewName("hello");
//返回视图模型对象
return mv;
}
}
第五步:做测试
访问 localhost:8080/hello 会在页面显示hello SpringMVC!
- 如果出现错误,需要手动在Atifacts中手动添加lib目录并且将相应的jar包导入
3.2 使用注解方式编写入门程序
第一步:导入相关依赖(同上)
第二步:编写web.xml配置文件 同上
第三步:编写SpringMVC配置文件
- 可以当做固定配置,基本每一个SpringMVC配置都需要这些东西
- mvc:annotation-driven/标签:直接帮我们配置好了处理器映射器和处理器适配器
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!--开启扫描包-->
<context:component-scan base-package="com.xuan.controller"/>
<!--不处理静态资源 js css等等-->
<mvc:default-servlet-handler/>
<!--开mvc启注解扫描-->
<!--这个注解的开启帮我们做了一件事情在context上下文注册了HandlerMapping和HandlerAdapter-->
<mvc:annotation-driven/>
<!--将视图解析器注册到bean-->
<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>
第四步:编写controller类
- 注解@Controller:表示controller层的这个类添加到springIOC容器中(相当于在spring主配置中的bean标签)
- 注解@RequestMapping:里面属性值表示我们的请求路径真实访问地址
@Controller
public class HelloController {
@RequestMapping("/xuan")
public ModelAndView testHello(){
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("msg","使用注解开发测试SpringMVC");
modelAndView.setViewName("hello");
return modelAndView;
}
}
第五步:配置并启动服务器测试