知識儲備
1瞭空、j2ee基礎(chǔ)
2、spring框架基礎(chǔ)
3、JDBC
4、Eclipse+Maven+Tomcat
前端控制器:DispatcherServlet
DispatcherServlet詳解
1念秧、作用分析
????????分發(fā),攔截請求布疼,委托請求給處理器摊趾;
????????將處理器返回的model給view
2、集成web環(huán)境的web.xml中的配置
????????<context-param>
????????????<param-name>contextConfigLocation</param-name>
????????????<param-value>classpath:spring-common.xml</param-value>
????????</context-param>
????????<listener>
????????????<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
????????</listener>
注意點(diǎn):
此時common管理的bean與springmvc管理的bean會在同一個容器中游两,<context:component-scan>中的地址有重疊則會重復(fù)加載bean砾层,需要分離管理地址。
spring-common.xml:
spring-mvc.xml:
Controller處理器詳解
????????@Controller注解聲明了這個類是個controller處理器
????????@Scope注解:
????????在原有的spring中有的singleton(單例)和prototype(原型)的基礎(chǔ)上增加了request級別和session級別
????????singleton:單例贱案,永遠(yuǎn)只有一個對象服務(wù)梢为;
????????prototype:每一個請求都會創(chuàng)建一個實(shí)例對象服務(wù);
????????session:一個session創(chuàng)建一個對象服務(wù)轰坊;
????????@requestMapping(value="..."params="...",method=...)
????????params:參數(shù)限定? (不常用,了解即可)
????????在method中可有RequestMethod.GET和RequestMethod.POST也可有{RequestMethod.GET,RequestMethod.POST}復(fù)合型
注:prototype 原型模式的生命周期由JVM的GC來銷毀祟印,不會在容器關(guān)閉時調(diào)用destroy-method肴沫。
視圖解析器
????????spring-mvc.xml配置
????????<!-- 視圖解析器 -->? ? ? ? ? ? ? ?
????????????<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
? ? ???? ????<!-- 配置從項(xiàng)目根目錄到指定目錄一端路徑 ,建議指定淺一點(diǎn)的目錄-->
? ? ???? ????<property name="prefix" value="/WEB-INF/jsp/"></property>
? ? ???? ????<!-- 文件的后綴名 -->
? ????????? <property name="suffix" value=".jsp"></property>
????</bean>
????????通過ModeAndView對象獲得和返回參數(shù)
????????ModelAndView mav = new ModelAndView();
????????mav.setViewName("welcome");
????????mav.addObject("message","參數(shù)傳遞到頁面");
????????return mav;
????freemarket視圖配置
????????<!-- 配置freeMarker的模板路徑 -->
????????<bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
? ? ? ?????<property name="templateLoaderPath" value="/WEB-INF/ftl/"/>
? ? ? ???? <property name="defaultEncoding" value="UTF-8"/>
????????</bean>
????????<!-- freeMarker視圖解析器 -->
????????<bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
? ? ? ????<property name="suffix" value=".ftl"/>
? ? ? ???? <property name="contentType" value="text/html;charset=UTF-8"/>
????????</bean>
ajax返回對象json數(shù)據(jù)
????需導(dǎo)包jackson-core和jackson-databind
????@RequestMapping(value="empJson")
????public @ResponseBody Emp ajax() {
????????Emp emp = new Emp();
????????emp.setName("jack");
????????emp.setAge(12);
????????return emp;
????}