Spring MVC教程第一篇

Java-Spring框架王 SpringMVC 发布时间:2021-04-28 09:27:25 阅读数:15382 1

Spring MVC是Java平台下的一个框架
Spring MVC是一个开源框架,它用于开发Java Web应用程序

Spring框架由Rod Johnson编写,在2003年6月采用Apache 2.0许可证首次发布
以下是笔者采用Spring Framework版本4.1.6编写

Spring web MVC框架提供MVC(模型 - 视图 - 控制器)架构,我们开采用此架构快速的开发Web应用程序 

  • 模型(Model):封装了应用程序数据
  • 视图(View):负责渲染模型数据,将返回的模型数据转换为HTML输出
  • 控制器(Controller):负责处理用户请求并构建适当的模型,并将其传递给视图转换为HTML

DispatcherServlet组件类

Spring Web模型 - 视图 - 控制器(MVC)框架是围绕DispatcherServlet设计的,
它处理所有的HTTP请求和响应。 Spring Web MVC DispatcherServlet请求流程如下所示:

SpringMVC处理httpRequest流程如下所示:

  1. 在接收到HTTP请求后,DispatcherServlet会检索HandlerMapping然后调用指定的Controller
  2. Controller接受请求并采用GETPOST方法进入相应的服务方法中, 服务方法根据业务逻辑设置相应的数据模型,然后返回viewName给DispatcherServlet
  3. DispatcherServlet将从ViewResolver
  4. 当视图完成DispatcherServlet将模型数据传递到最终的视图,浏览器中显示数据 

SpringMVC所需的配置

使用web.xml文件中的URL映射来映射DispatcherServlet处理的请求

例: 
    HelloWorld DispatcherServlet示例 

<web-app id="WebApp_ID" version="2.4"
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    <display-name>Spring MVC Application</display-name>

   <servlet>
      <servlet-name>HelloWeb</servlet-name>
      <servlet-class>
         org.springframework.web.servlet.DispatcherServlet
      </servlet-class>
      <load-on-startup>1</load-on-startup>
   </servlet>

   <servlet-mapping>
      <servlet-name>HelloWorld</servlet-name>
      <url-pattern>*.jsp</url-pattern>
   </servlet-mapping>

</web-app>

web.xml文件保存位置

web.xml文件将保存Web应用程序的WebContent/WEB-INF目录
HelloWeb DispatcherServlet初始化时,
框架将尝试从位于应用程序的WebContent/WEB-INF目录中的名为[servlet-name]-servlet.xml的文件加载应用程序上下文。
在本例中将使用的文件HelloWorld-servlet.xml 

SpringMVC会根据<servlet-mapping>标记指示哪些URL将由DispatcherServlet处理。

此例中规定使用 ***.jsp结尾的HTTP请求都将由HelloWorld DispatcherServlet处理。

注意事项:
       如不使用默认文件名 [servlet-name]-servlet.xml 或路径WebContent/WEB-INF
    需在web.xml中进行相关定义 ---添加servlet侦听器ContextLoaderlistener 定义配置文件的位置

<web-app...>

<!-------- DispatcherServlet definition goes here----->
....
<context-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>/WEB-INF/HelloWorld-servlet.xml</param-value>
</context-param>

<listener>
   <listener-class>
      org.springframework.web.context.ContextLoaderListener
   </listener-class>
</listener>
</web-app>
-

HelloWorld-servlet.xml 

<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:context="http://www.springframework.org/schema/context"
   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-3.0.xsd
   http://www.springframework.org/schema/context 
   http://www.springframework.org/schema/context/spring-context-3.0.xsd">

   <context:component-scan base-package="com.java265" />

   <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name="prefix" value="/WEB-INF/jsp/" />
      <property name="suffix" value=".jsp" />
   </bean>

</beans>
-----相关说明-----

HelloWorld-servlet.xml 

  • [servlet-name]-servlet.xml文件将用于创建定义的bean,它会覆盖在全局范围中使用相同名称定义的任何bean的定义。

  • <context:component-scan ...>标签将用于激活Spring MVC注释扫描功能,允许使用@Controller@RequestMapping等注释。

  • InternalResourceViewResolver将定义用于解析视图名称的规则。根据上面定义的规则,hello的逻辑视图将委托给位于/WEB-INF/jsp/helloworld.jsp这个视图来实现。

 

Controller定义

DispatcherServlet将请求委派给控制器以执行特定于其的功能 

@Controller
@RequestMapping("/hello")
public class HelloController{

   @RequestMapping(method = RequestMethod.GET)
   public String printHello(ModelMap model) {
      model.addAttribute("message", "Hello Spring MVC Framework!");
      return "helloWorld";
   }

}
 

创建JSP视图

Spring MVC支持许多类型的视图用于不同的表示技术。
包括 - JSP,HTML,PDF,Excel工作表,XML,Velocity模板,XSLT,JSON,Atom 和 RSS 源,JasperReports等。
 

<html>
   <head>
   <title>Spring MVC-Java265.com</title>
   </head>
   <body>
   <h2>${message}</h2>
   </body>
</html>

注意事项:
   此处${message}是Controller中设置的相关属性 
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/SpringMVC/2021-04-28/424.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者