Spring和第一个spring项目

来源:互联网 发布:搜索引擎优化流程 编辑:程序博客网 时间:2024/06/14 10:40

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对象 */@Overridepublic 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系统操作基础和算法编程题.

原创粉丝点击