• SpringMVC系列(一)SpringMVC概述和搭建SpringMVC的第一个helloWord入门程序


    一、SpringMVC 概述

    • Spring为展现层提供的基于MVC设计理念的优秀的Web框架,是目前最主流的MVC框架之一

    • Spring3.0 后全面超越 Struts2,成为最优秀的 MVC 框架

    • Spring MVC 通过一套 MVC 注解,让 POJO 成为处理请求的控制器,而无须实现任何接口。

    • 支持 REST 风格的 URL 请求

    • 采用了松散耦合可插拔组件结构,比其他 MVC 框架更具扩展性和灵活性

    二、搭建SpringMVC的第一个helloWord入门程序

    1. 新建一个名称为SpringMVC的web项目,项目结构如下:

     2.在pom.xml里面引入Spring相关的依赖

     1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     2   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     3   <modelVersion>4.0.0</modelVersion>
     4   <groupId>com.study</groupId>
     5   <artifactId>SpringMVC</artifactId>
     6   <packaging>war</packaging>
     7   <version>0.0.1-SNAPSHOT</version>
     8   <name>SpringMVC Maven Webapp</name>
     9   <url>http://maven.apache.org</url>
    10   <dependencies>
    11     <!-- 添加Spring相关的依赖 begin-->
    12         <dependency>
    13           <groupId>org.springframework</groupId>
    14           <artifactId>spring-aop</artifactId>
    15           <version>4.3.12.RELEASE</version>
    16         </dependency>
    17         
    18         <dependency>
    19           <groupId>org.springframework</groupId>
    20           <artifactId>spring-beans</artifactId>
    21           <version>4.3.12.RELEASE</version>
    22         </dependency>
    23         
    24         <dependency>
    25             <groupId>org.springframework</groupId>
    26             <artifactId>spring-context</artifactId>
    27             <version>4.3.12.RELEASE</version>
    28         </dependency>
    29         
    30         <dependency>
    31             <groupId>org.springframework</groupId>
    32             <artifactId>spring-core</artifactId>
    33             <version>4.3.12.RELEASE</version>
    34         </dependency>
    35         
    36         <dependency>
    37           <groupId>org.springframework</groupId>
    38           <artifactId>spring-expression</artifactId>
    39           <version>4.3.12.RELEASE</version>
    40         </dependency>
    41         
    42         <dependency>
    43           <groupId>org.springframework</groupId>
    44           <artifactId>spring-web</artifactId>
    45           <version>4.3.12.RELEASE</version>
    46         </dependency>
    47         
    48         <dependency>
    49           <groupId>org.springframework</groupId>
    50           <artifactId>spring-webmvc</artifactId>
    51           <version>4.3.12.RELEASE</version>
    52         </dependency>
    53         
    54         <dependency>
    55           <groupId>commons-logging</groupId>
    56           <artifactId>commons-logging</artifactId>
    57           <version>1.1.3</version>
    58         </dependency>
    59     <!-- 添加Spring相关的依赖 end-->    
    60         
    61   </dependencies>
    62   <build>
    63     <finalName>SpringMVC</finalName>
    64   </build>
    65 </project>

    3.配置web.xml

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     3     xmlns="http://java.sun.com/xml/ns/javaee"
     4     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
     5     id="WebApp_ID" version="2.5">
     6 
     7     <!-- 配置 DispatcherServlet -->
     8     <servlet>
     9         <servlet-name>dispatcherServlet</servlet-name>
    10         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    11         <!-- 配置 DispatcherServlet 的一个初始化参数: 配置 SpringMVC 配置文件的位置和名称 -->
    12         <!-- 
    13             实际上也可以不通过 contextConfigLocation 来配置 SpringMVC 的配置文件, 而使用默认的.
    14             默认的配置文件为: /WEB-INF/<servlet-name>-servlet.xml
    15         -->
    16         <init-param>
    17             <param-name>contextConfigLocation</param-name>
    18             <param-value>classpath:springmvc.xml</param-value>
    19         </init-param>
    20         <!-- 加载时创建 -->
    21         <load-on-startup>1</load-on-startup>
    22     </servlet>
    23 
    24     <!-- dispatcherServlet可以应答所有请求 -->
    25     <servlet-mapping>
    26         <servlet-name>dispatcherServlet</servlet-name>
    27         <url-pattern>/</url-pattern>
    28     </servlet-mapping>
    29 
    30 </web-app>

    4. 在src/main/resources目录下新建springmvc.xml并配置

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns="http://www.springframework.org/schema/beans"
     3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4     xmlns:context="http://www.springframework.org/schema/context"
     5     xmlns:mvc="http://www.springframework.org/schema/mvc"
     6     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
     7         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
     8         http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
     9 
    10     <!-- 配置自动扫描的包 配置以后才能使用Spring的注解-->
    11     <context:component-scan base-package="com.study.springmvc"></context:component-scan>
    12 
    13     <!-- 配置视图解析器: 如何把 handler 方法返回值解析为实际的物理视图 -->
    14     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    15         <property name="prefix" value="/WEB-INF/views/"></property>
    16         <property name="suffix" value=".jsp"></property>
    17     </bean>
    18     
    19 
    20 </beans>

    5. 在src/main/java目录下新建一个com.study.springmvc.handlers包,创建请求处理器类HelloWorld.java

     1 package com.study.springmvc.handlers;
     2 
     3 import org.springframework.stereotype.Controller;
     4 import org.springframework.web.bind.annotation.RequestMapping;
     5 
     6 @Controller
     7 public class HelloWorld {
     8 
     9     /**
    10      * 1. 使用 @RequestMapping 注解来映射请求的 URL
    11      * 2. 返回值会通过视图解析器解析为实际的物理视图, 对于 InternalResourceViewResolver 视图解析器, 会做如下的解析:
    12      * 通过 prefix + returnVal + 后缀 这样的方式得到实际的物理视图, 然会做转发操作
    13      * 
    14      * /WEB-INF/views/success.jsp
    15      * 
    16      * @return
    17      */
    18     @RequestMapping("/helloworld")
    19     public String hello(){
    20         System.out.println("hello world");
    21         return "success";
    22     }
    23     
    24 }

    6. 在index.jsp里面配置超链接请求

    1 <html>
    2 <body>
    3 <!-- href="helloworld"和HelloWorld.java的@RequestMapping("/helloworld")对应 -->
    4 <a href="helloworld">Hello World</a>
    5 </body>
    6 </html>

    7. 编写请求成功跳转的/WEB-INF/views/success.jsp,由springmvc.xml配置的视图解析器和HelloWorld.java的hello()方法的返回值决定跳转到哪个jsp

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3     
     4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     5 <html>
     6 <head>
     7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     8 <title>Insert title here</title>
     9 </head>
    10 <body>
    11     
    12     <h4>Sucess Page</h4>
    13     
    14 </body>
    15 </html>

    8. 输入地址http://127.0.0.1:8080/SpringMVC/ 进入index.jsp,点击超链接,跳转到success.jsp,到次SpringMVC的第一个程序完成

  • 相关阅读:
    C++之路进阶——codevs2439(降雨量)
    C++之路进阶——codevs2933(诗人小G)
    C++之路进阶——bzoj2879(美食节)
    C++之路进阶——bzoj1934(善意的投票)
    C++之路进阶——bzoj3876(支线剧情)
    C++之路进阶——codevs1281(Xn数列)
    八数码难题
    道路游戏
    细胞分裂
    最长链
  • 原文地址:https://www.cnblogs.com/leeSmall/p/7795466.html
Copyright © 2020-2023  润新知