Spring和第一个spring项目

Spring MVC

MVC将一个应用分成三个基本邠:Model(模型),View(试图),Controller(控制器)。

 

MVC有如下特点:

1.  多个视图可以对应一个模型。这样减少了代码的复制以及代码的维护量,易于维护。

2.  模型返回的数据与现实逻辑分离。例如我们经常使用JSP页面。

3.  应用被分为三层,这降低了各层之间的耦合,提供了应用的可扩展性。

4.  控制层的概念也很有效,它把不同的试图组合在一起,完成不同的请求。因此,控制层可以说也包含了用户请求权限的概念

5.  MVC更加符合软件工程化管理的精神。不同的层各司其职,大大提高了效率。

 

Spring MVC的优势

1.      有强大的灵活性、非侵入性和可配置性。(这里的侵入性是指耦合强度,侵入性越高则耦合越强,所以,非侵入性就是耦合性低)

2.      可以自动绑定用户输入,并正确地转换数据类型。例如:能自动解析字符创,并将其设置为模型的int或float类型的属性。

3.      SpringMVC使用一个名称/值的Map对象实现更加邻国的模型数据传输。

4.      支持多试图技术,最常见的就是JSP技术。

5.      有一个强大的标签库。

 

SpringMVC的DispatcherServlet

DispacherServlet是一前端控制器,用户所有的请求驱动围绕这个DispatcherServlet来分派请求。DispatcherSerlet是一个Servlet(它继承自HttpServlet基类),因此使用时需要把它噢诶之在Web应用的博士描述符web.xml,配置信息如下:

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
      <!--配置springMVC的dispatcherServlet-->  
     <servlet>  
           <servlet-name>springmvc</servlet-name>  
           <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param>  
        <param-name>contextConfigLocation</param-name>  
        <param-value>/WEB-INF/springmvc.xml</param-value>  
    </init-param>  
    	<load-on-startup>1</load-on-startup>  
    </servlet>  
    <!-- 让Spring MVC的前端控制器拦截所有请求 -->
    <servlet-mapping>
    	<servlet-name>springmvc</servlet-name>
    	<url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

配置一个DispacherServlet,该servlet在Web程序启动是会自动立即加载,加载时会需要一个SpringMVC的配置文件,默认情况下,应用汇去应用横须文件夹的WEB-INF下查找赌赢的[servlet-name]-servlet.xml文件。例如本实例就是的<servlet-name>就是springmvc,默认查找的就是/WEB-INF/springmvc-servlet.xml。

解析该配置文件会根据文件信息创建一个ApplicationContext容器对象,就是我们一般看见的上下文环境。有了WebApplicationContext容器,开发者就可以很自认地使用Spring的IOC,AOP等其他功能了。


第一个Spring项目

springmvc.xml配置文件,在在WEB-INF下,和web.xml同目录,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
	http://www.springframework.org/schema/beans/spring-beans-4.3.3.xsd">
    
    <!-- 配置Handle,映射"/hello"请求 -->
    <bean name="/hello" class="org.fkit.comtorller.HelloControllor"/>
    <!-- 处理映射器将bean的name作为url进行查找,需要在配置Handle是指定name(即url) -->
    <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
    <!-- SimpleControllerHandlerAdapter是一个处理适配器,所有处理适配器都要事先HandlerAdapter -->
    <bean class="org.springframework.web.servlet.mvc.SimpleConterllerHandlerAdapter"/>
    <!-- 试图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalReaourceViewResolver"/>
</beans>
Controller类的实现,代码如下:

package org.fkit.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

public class HelloController implements Controller{

	private static final Log logger = LogFactory.getLog(HelloController.class);
	/**
	 * handleRequest是Controller接口必须实现的方法
	 * 该方法的参数是对应请求的HttpServletRequest和HTTPServletResponse
	 * 该方法必须返回一个包含视图名或视图名和模型的ModelndView对象
	 */
	@Override
	public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
		logger.info("handleRequest 被调用");
		//创建准备返回的ModelAndView对象,该对象通常包含了返回视图名,模型的名称以及迷行对象
		ModelAndView mv = new ModelAndView();
		//添加模型数组,可以是任意的POJO对象
		mv.addObject("message","Hello World");
		//设置逻辑视图名,驶入解析器会根据该名字解析到具体的试图界面
		mv.setViewName("/WEB-INT/content/welcome.jsp");
		//返回ModelAndView对象
		return mv;
	}
	
}

最后自己再写一哥jsp页面就可以进行部署了.


希望各位继续关注,暑假期间写的主要内容是SSM框架,LInux系统操作基础和算法编程题.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值