一.搭建Spring MVC 环境
基于注解方式搭建MVC环境
1.jar包
2.在web.xml中配置DispacherServlet
<servlet>
<servlet-name>dispatcherServlet</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>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
3.加入Spring MVC配置文件
<!-- 配置Spring MVC自动扫描的路径 -->
<context:component-scan base-package="com.znsd.springmvc" />
<!-- 配置视图解析器 将视图返回字符串解析到:/WEB-INF/view/返回值.jsp 下-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 视图前缀 -->
<property name="prefix" value="/WEB-INF/views/" />
<!-- 视图后置 -->
<property name="suffix" value=".jsp" />
</bean>
4.编写请求处理器,并标示为处理器
Spring MVC使用@RequestMapping注解为控制器指定请求的URL
5.添加视图
二.基本配置
1.@Controlol注解
作用:将当前类作为一个控制器类
如果使用注解方式,必须在Spring中添加自动扫描的路径
2.@RequestMaping注解
Spring MVC使用@RequestMapping注解为控制器指定请求的URL
在控制器的类定义及方法定义处都可以标记
类定义处:提供初步的映射信息,为该类下所有请求方法添加前缀
方法定义处:提供进一步的映射信息,提供方法的请求路径
3.Servlet API
将ServletAPI作为方法的参数,方法中就可以使用api所对应的方法
@RequestMapping("/test")
public String testServletAPI(HttpServletRequest request,HttpServletResponse response,HttpSession session){
//ServletAPI作为方法的参数获取request session response 一般不用
request.setAttribute("g", "request hello");
session.setAttribute("age", 18);
return "test";
}
ModelAndView 控制器处理方法如果返回ModelAndView,即包含视图信息,也包含模型信息
@RequestMapping("/testModelAndView")
public ModelAndView testModelAndView(){
ModelAndView modelAndView = new ModelAndView("test");
//添加单个值
modelAndView.addObject("h","Hello Spring MVC"); //放入reuqest
return modelAndView;
}
Map形参 Spring MVC在内部使用了一个Model接口存储模型数据
@RequestMapping("/testMap")
public String testMap(Map<String,Object> map){
map.put("map", "map data"); //放入request
return "test";
}
@SessionAttributes 保存用户到Session中
@SessionAttributes("user")
@Controller
@RequestMapping("world")
public class HelloWorld {
@RequestMapping("/testSession")
public String testSession(Map<String,Object> map){
User user = new User();
user.setUsername("zhangsan");
user.setUserpass("123");
user.setAge(20);
map.put("user", user);
return "hello";
}
}