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
<!-- 配置初始化引數:作用是配置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>