SpringMVC 3.x
全注解的(annotation)全新的MVC框架;
M -model
模型,包括DAO,Service等部分
V -view
视图,JSP等部分
C -controller
控制器
Spring的web框架围绕DispatcherServlet设计。
DispatcherServlet的作用是将请求分发到不同的处理器。
相当于Struts中的中央控制器,Struts中的控制器是过滤器,而SpringMVC是一个Servlet;
SpringMVC的简单请求流程:
前台控制器(Front Controller)接收到请求(Incoming Request)让下面的具体的控制器(Controller)去完成相应操作,给出响应(model)给前台控制器,前台控制器把model交给视图模板(View Template),应用模板后给用户做出显示!
SpringMVC的请求方式:
1,普通的请求
浏览器发出普通请求,经过SpringMVC的Dispatcher跳转到相应的Controller,Controller调用Service去请求持久层,结合Model Bean(pojo等)产生视图,给用户做出响应;
2,Ajax请求
用户发出Ajax请求,到达Dispatcher,跳转Controller,调用Service结合Model Bean产生请求的资源信息,以XML或者JSON的形式给浏览器做出响应;
使用Maven搭建SpringMVC开发环境:
1,在pom.xml添加基本的jar和配置web服务器环境jetty
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>3.2.4.RELEASE</version> </dependency> <!-- 提供对c标签的支持 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!-- servlet api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> </dependency> <!-- javax提供的annotation --> <dependency> <groupId>javax.inject</groupId> <artifactId>javax.inject</artifactId> <version>1</version> </dependency> <build> <finalName>springmvc</finalName> <!-- maven的jetty服务器插件 --> <plugins> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <configuration> <scanIntervalSeconds>10</scanIntervalSeconds> <webApp> <contextPath>/</contextPath> </webApp> <!-- 修改jetty的默认端口 --> <connectors> <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector"> <port>80</port> <maxIdleTime>60000</maxIdleTime> </connector> </connectors> </configuration> </plugin> </plugins> </build>
2,在web.xml中配置基本的DispatcherServlet(注意修改默认的web.xml中的xsd约束)
<?xml version="1.0" encoding="UTF-8" ?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <display-name>Archetype Created Web Application</display-name> <!-- 配置springmvc servlet --> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <!-- / 表示所有的请求都要经过此serlvet --> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
配置完成,启动服务器!jetty:run
启动不会报错,启动完成后,在浏览器中输入:localhost访问默认页面!
提示:500错误
原因:
不能找到/WEB-INF/下的一个文件,文件叫作:springmvc-servlet.xml
意思是说:我们还需要一个配置文件
SpringMVC推荐加载此配置文件,在容器启动的时候!在web.xml中修改如下:
<!-- 配置springmvc servlet --> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <!-- / 表示所有的请求都要经过此serlvet --> <url-pattern>/</url-pattern> </servlet-mapping>
再次启动服务器,将会报错!!!仍然是缺配置文件!
配置文件的名称:springmvc-servlet.xml中的springmvc跟你配置的servlet-name保持一致;
我们在WEB-INF下建立我们的:springmvc-servlet.xml
使用springmvc的schema约束,基本结构如下:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> </beans>
添加这些约束的配置文件会变成一个树叶,表示这是springmvc的配置文件!
spring的配置文件:applicationContext.xml跟这个配置不冲突,这个配置文件跟spring的配置文件其实就是多了一个mvc项的配置
那么我们这个配置文件里面到底配置哪些东西呢?
<mvc:annotation-driven/>
表示我要使用基于注解的springmvc
<context:component-scan base-package="com.cn.controller"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> </context:component-scan>
base-package表示自动扫描com.cn.controller包中的注解
include-filter表示只扫描expression="org.springframeword.stereotype.Controller"的注解,也就是只扫描类上有@Controller注解的类:
package com.cn.controller; import org.springframework.stereotype.Controller; @Controller public class HomeController { }
spring配置文件中也有自动扫描,你可以设置以下内容排除掉扫描Controller注解:
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
如何请求我们的Controller中的方法呢?
通过如下注解进行实现:
@RequestMapping("/home") public String home(){ return null; }
springmvc中的url推荐不加后缀!
并且,你还可以使用下面的地址完成特定的请求:
/user/1 查看ID=1的用户
/del/1 删除ID=1的用户
这种方式是如何实现的呢?
我们知道浏览器只能发出get,post请求,但是我们可以通过程序发送其他请求,我们常用的有:
get 获取
post 保存
delete 删除
put 可以用来修改
/user/1
对于上面的url,如果你发送的是get请求,服务器就给你做出get响应
如果你发送的delete请求,服务器就给出删除响应
那么在springmvc中是什么样子的呢?
@RequestMapping(value="/user/1",method=RequestMethod.GET) public String getUser(){ System.out.println("get...获取用户"); return null; } @RequestMapping(value="/user/1",method=RequestMethod.DELETE) public String delUser(){ System.out.println("delete...删除用户"); return null; }
简单说了一下springmvc中的地址,下面我们来说如何请求我们的url;
配置home方法如下:
@RequestMapping("/home") public String home(){ System.out.println("home..."); return "home"; }
启动容器,确定不再报错了,然后在浏览器中请求:localhost/home
又报错了。
错误信息:
意思是:
检查你的视图解析器是否建立,你输入的url我无法解析;
什么是视图解析器呢?
仍然是在springmvc-servlet.xml中需要配置的一项;
<!-- 视图解析器 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="prefix" value="/WEB-INF/views/"/> <property name="suffix" value=".jsp"/> </bean>
视图解析器就是一个类:UrlBasedViewResolver,其中有三个属性:
viewClass,我们使用的是JstlView
prefix,前缀,就是我们请求的页面所在的地方
suffix,后缀,就是标识我们的视图是以什么后缀结尾,eg.home.jsp
这样定义完成之后,我们在/WEB-INF/下建立views文件夹,并新建一个home.jsp
再次启动容器,并请求:localhost/home就可以跳转到home.jsp页面了!
那么如何请求views/user/文件夹下的user.jsp呢?
很简单:
@RequestMapping(value="/user",method=RequestMethod.GET) public String getUser(){ System.out.println("get...获取用户"); return "user/user"; }
至此我们可以使用SpringMVC做网站了!最基本的配置就这些!
相关推荐
springmvc_4\springmvc_4.part1.rar
1. SpringMVC的环境搭建:包括添加依赖、配置web.xml和SpringMVC的配置文件。 2. Controller的创建与处理:了解如何使用@Controller和@RequestMapping注解。 3. Model和视图:理解ModelAndView类的作用,以及如何...
1. **创建 Maven 项目**:首先,你需要使用 Maven 的 archetype 命令或者 IDE(如 IntelliJ IDEA 或 Eclipse)的向导创建一个新的 Maven 项目。 2. **添加依赖**:在 POM.xml 文件中,你需要添加 Spring MVC 和其他...
《SpringMVC与Spring整合及Maven项目结构详解》 在Web开发领域,SpringMVC作为Spring框架的一部分,被广泛用于构建高效的、模块化的后端控制器。本项目以"tmp_springmvc_maven.rar"为载体,展示了如何利用SpringMVC...
总的来说,"SpringMVC_Upload.rar_shipvu7_springmvc_springmvc upload"示例涉及了Spring MVC框架下的多文件上传、返回值处理以及与数据库交互的关键知识点。通过学习和实践这些内容,你可以构建出健壮的Web应用程序...
SpringMVC是一个基于Java的轻量级Web应用框架,它为构建模型-视图-控制器(MVC)架构的应用程序提供了强大的支持。SpringMVC旨在简化开发,通过解耦业务逻辑、视图呈现和数据访问,使开发者可以更加专注于应用程序的...
SpringMVC是Spring框架的一部分,专门用于处理Web应用程序的请求和响应。在Java世界中,SpringMVC作为轻量级的MVC(Model-View-Controller)架构模式,被广泛应用于构建高性能、可维护的企业级应用。在这个...
【标题】:Tomcat部署WAR源文件:SpringMVC应用 【描述】:在Java Web开发中,Tomcat是一款广泛使用的轻量级应用服务器,它能够运行Servlet和JSP应用程序。这里我们关注的是如何在Tomcat上部署一个名为"springmvc_...
这个名为"SpringMVC_01.rar"的压缩包文件显然是一个针对初学者的Spring MVC学习项目,它包含了实现Spring MVC基本功能所需的代码示例,非常适合入门学习。 在Spring MVC中,主要涉及以下几个核心概念: 1. **...
springmvc
Spring、SpringMVC和Mybatis是Java开发中广泛使用的三大框架,它们的整合(SSM)为开发者提供了高效且灵活的Web应用开发解决方案。在这个案例中,我们将深入探讨这三个框架如何协同工作,以及如何实现基本的用户管理...
1. **Maven配置**:在`pom.xml`文件中,你会看到项目依赖的声明,包括SpringMVC、Spring核心、Spring上下文、Spring JDBC、MyBatis(如果使用的话)等。Maven会自动下载这些依赖并管理它们。 2. **SpringMVC配置**...
SpringMVC是Spring框架的一个模块,专为构建Web应用程序而设计。它提供了模型-视图-控制器(MVC)架构模式的实现,帮助开发者将业务逻辑、数据展示和用户界面分离,提高代码的可维护性和可测试性。下面将详细讨论...
《SpringMVC 入门教程:从零开始学习SpringMVC》 在IT行业中,SpringMVC作为一款强大的Web应用程序框架,被广泛应用于Java后端开发。本教程以"springmvc_day01_01_start.zip"为起点,旨在帮助初学者快速掌握...
1. **SpringMVC简介** SpringMVC是Spring框架的一部分,旨在简化Java Web开发。它提供了一种用于处理HTTP请求和响应的机制,通过DispatcherServlet作为入口点,负责调度请求到相应的处理器。 2. **MVC架构** MVC...
1. 添加依赖:在项目pom.xml文件中,添加SpringMVC和Beetl的相关依赖,包括SpringMVC的核心库、Beetl的主库以及其Spring插件。 2. 配置Beetl:在Spring的配置文件中,定义Beetl的配置bean,设置模板路径、编码格式...
1.1_SpringMVC_课程介绍.mp4 1.2_SpringMVC_导学.mp4 02_SpringMVC_回顾MVC.mp4 04_SpringMVC_SpringMVC的特点.mp4 06_SpringMVC_HelloWorld:创建maven工程.mp4 10_SpringMVC_HelloWorld:配置springMVC配置文件....
3. **SpringMVC与Netty集成**:在SpringMVC应用中集成Netty,通常是为了实现高效的后台服务,例如,通过TCP通信进行大数据传输或实时通信。集成的关键在于创建一个独立于SpringMVC的Netty服务器,作为后台服务,处理...
1. 登录验证,(同时ajax的异步验证) 2. 老师和学生登录后有不同的界面 3. 学生可以给老师留言,并查看自己留言的状态 4. 老师可以对学生进行增删改查,对留言进行处理 5.资源中提供数据库