Spring MVC
spring 的一款基于MVC设计的web框架
开发流程:
1.加入jar包
2.在web.xml中DispatcherServlet(核心控制器)可以处理所有的请求
3.加入Spring MVC配置文件,必须与配置在web.xml中的DispatcherServlet中的配置文件路径与名称相符
4.编写请求处理器并标识为控制器
5.编写视图
2.web.xlm
springDispatcherServlet的配置使用插件快速集成
注意事项:
1.初始化参数的配置:
通过标签<init-param>来标识,通过name名称和value具体值来定位到具体位置的具体文件。
告知了springmvc的配置文件路径
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:指向内路径下的某个配置文件,例如: springmvc.xml</param-value>
</init-param>
2.配置当前servlet映射,url-pattern修改为/
<servlet>
<servlet-name>springDispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:指向内路径下的某个配置文件,例如: springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springDispatcherServlet</servlet-name>
<url-pattern>描述springDispatcherServlet可以处理哪些请求,例如:/,标识处理所有的请求</url-pattern>
</servlet-mapping>
3.springmvc.xml
根据在web.xml中的DispatcherServlet中的配置文件名称,在指定路径下创建配置文件
在JavaResources => src => 通过Spring Bean Configuration File 快速构建xml配置文件
常用配置:
1.通过spring tools suit 快速继承命名空间配置与资源文件配置
1.1 通过General => Editors => File Associations => 配置默认的xml文件打开方式为Spring Config Editor即可
1.2 或者直接选中需要编辑的xml文件右键,open with => Spring config Editor即可
2.在xml中进行基础配置:
<!-- 配置项目中哪些包的spring注解可以被识别
spring 中常用的一些标注
@Controller 控制器
@Servlet
...
使用*表示在当前项目中所有目录中的spring注解都可以被识别
-->
<context:component-scan base-package="*"></context:component-scan>
<!-- 添加视图解析器
视图分为:
1.逻辑视图 => 对于每一个物理视图都可以起一个逻辑视图,逻辑视图通过视图解析器,解析成物理视图
2.物理视图 => 真实存在的视图文件,例如jsp,html等
-->
<!-- 最常用的视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 配置两个常用属性:前缀与后缀
举例:
逻辑视图名称为index
则通过视图解析器获取的物理视图为/index.jsp 即根目录下的index.jsp文件
-->
<property name="prefix" value="/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
4.@controller
spring mvc 允许任意一个java类作为控制器,只要该java类可以处理请求并做出响应
4.1 创建java类,并使用@Controller标注为注解
4.2 创建控制器处理业务方法
4.3 根据逻辑处理方法返回值与视图解析器,找到指定的物理视图
实例:
@Controller
public class HelloWorldHandler {
/**
* 控制器处理业务请求的方法格式:
* public String 方法名 () {...}
* 返回值String: 当前方法处理完毕后,将会返回的逻辑视图名称
*/
@RequestMapping(value="/hello")
public String hello () {
System.out.println("进入到hello方法中!");
return "success";
}
}
对应的在根目录下要有success.jsp文件作为被逻辑视图映射的物理视图存在,作为requestMapping的请求结果