springMVC核心思想
Spring MVC随后笔记:
1. MVC原理图:
控制器:(Servlet)
模型:(JavaBean) <---> 数据库
视图:(JSP)
2. 核心点:
(1) 前端控制器(DispatcherServlet):
① 作用:接收web请求,响应结果(集中访问点);
② 实现:在web.xml文件中配置:
<!-- springmvc前端控制器 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 配置初始化参数:作用是配置springMVC配置文件的位置和名称 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<!-- 第一种:*.action,访问以.action结尾 由DispatcherServlet进行解析
第二种:/,所以访问的地址都由DispatcherServlet进行解析,对于静态文件的解析需要配置不让DispatcherServlet进行解析 -->
<url-pattern>*.action</url-pattern>
</servlet-mapping>
(2) 配置Handler适配器:(配置JavaBean)
① 在springmvc下配置:(springmvc.xml)
<bean class =
”org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter”>
</bean>
(3) 配置注解Handler映射器和适配器:
<bean class =
”org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping”> </bean>
<bean class =
”org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter”> </bean>
<-- 实际开发时使用mvc:annotation-driven -->
(4) 控制类:(可优化成注解的方式)
public class IndexController implements Controller {
Public ModelAndView handler(HttpServlet request, HttpServletResponse respomse) throws Exception{
ModelAndView mav = new ModelAndView(“index.jsp”);
mav.addObject(“message”, “Hello Spring MVC”);
return mav;
}
}
注:控制类实现Controller接口,提供handler方法请求
ModelAndView:视图(index.jsp)、模型(数据message,内容Hello Spring MVC)
(5) 视图:(index.jsp)
<h1>${message}<h1>
若要接收表单数据:
$<product.name><br>
$<product.price>
<product.jsp>
<form action=”addProduct”>
<input type=”text” name=”name” value=””><br/> “产品名称”
<input type=”text” name=”price” value=””><br/> “产品价格”
</form>
3. 采用注解方式:
控制类:
@Controller //表示是一个控制类
public class IndexController{
Public ModelAndView handler(HttpServlet request, HttpServletResponse respomse) throws Exception{
@RequestMapping(“/index”) //表示/index会映射到该方法上
ModelAndView mav = new ModelAndView(“index.jsp”);
mav.addObject(“message”, “Hello Spring MVC”);
return mav;
}
}
映射配置:
直接从包controller下扫描@Controller注解的类
<context:component-scan base-packege=”controller”>
<bean id=””
class=”org.springframework.web.servlet.handler.simpleUrlHandlerMapping”>
<property name=”prefix” value=”/WEB-INF/page”>
<property name=”suffix” value=”.jsp”>
</bean>