IDEA搭建我的第一个Spring MVC应用(附使用注解实现)

新建项目

File——New——Project

Next

这里任意填写。

Finish

配置项目

配置前端控制器 DispatcherServlet

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <!--定义Spring MVC前端控制器-->
    <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-config.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>

配置Spring MVC的Controller

在WEB-INF下新建springmvc-config.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.xsd">
<!--配置Handle,映射"/hello"请求-->
<bean name="/hello" class="com.wen.controller.HelloController"/>
<!--处理映射器将bean的name作为url进行查找,需要在配置Handle是指定name(即url)-->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<!--SimpleControllerHandlerAdapter是一个处理器适配器,所有处理适配器都有实现HandlerAdapter-->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
<!--视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/>
<!--在Spring4.0后,可以不配置处理映射器、处理器适配器和视图解析器,也可以完成Spring内部MVC工作-->
</beans>

新建HelloController.java

package com.wen.controller;

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;

/**
 * 实现Controller接口的控制器,用来处理hello请求
 * 可以处理一个单一的请求动作
 */

public class HelloController implements Controller {
    private static final Log logger = LogFactory.getLog(HelloController.class);

    /**
     * handleRequest是Controller接口必须实现的方法
     */
    @Override
    public ModelAndView handleRequest(javax.servlet.http.HttpServletRequest httpServletRequest, javax.servlet.http.HttpServletResponse httpServletResponse) throws Exception {
        logger.info("handleRequest被调用");
        //创建预返回的ModelView对象
        ModelAndView mv =new ModelAndView();
        //添加模型数据
        mv.addObject("message","HelloWorld");
        //逻辑视图名
        mv.setViewName("/WEB-INF/pages/welcome.jsp");
        //返回对象、模型数据、视图名
        return mv;
    }
}

新建welcome.jsp,使用EL表达式用来接受Controller传递的message

<%--
  Created by IntelliJ IDEA.
  User: wen
  Date: 2019/1/27
  Time: 22:08
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Welcome</title>
</head>
<body>
${requestScope.message}
</body>
</html>

测试应用

Tips:使用MVC框架应该严格遵守MVC思想。MVC框架不赞成浏览器直接访问Web应用的视图页面,用户的所有请求都只应向控制器发送,由控制器调用模型组件、视图组件向用户呈现数据,即指向视图层。

基于注解的控制器

使用注解大大的提供了我们的开发效率,但是了解一点原始的配置,才能更好的了解他们的运行流程。

我们只需要修改两个地方~

1、Controller

我们不用需要Controller接口,改成使用注解来描述。用来处理/hello请求。

package com.wen.controller;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

/**
 * 基于注解的控制器
 * 可以同时处理多个请求动作,并且无需实现任何接口
 * org.springframework.stereotype.Controller 注解用于指示该类是一个控制器
 */

@Controller
public class HelloController {
    private static final Log logger= LogFactory.getLog(HelloController.class);
    @RequestMapping(value = "/hello")
    public ModelAndView hello(){
        logger.info("hello方法被调用");
        ModelAndView mv =new ModelAndView();
        mv.addObject("message","Hello World");
        mv.setViewName("/WEB-INF/pages/welcome.jsp");
        return mv;
    }
}

2、修改Spring MVC的配置文件

<?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"
       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">
    <!--spring可以自动去扫描base-pack下面的包或者子包下面的java文件-->
    <context:component-scan base-package="com.wen.controller"/>
    <!--配置annotation类型的处理映射器-->
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
    <!--配置annotation类型的处理器适配器-->
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
    <!--视图解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/>
    <!--在Spring4.0后,可以不配置处理映射器、处理器适配器和视图解析器,也可以完成Spring内部MVC工作-->
</beans>

测试应用

End~

原文地址:https://www.cnblogs.com/guowenrui/p/10363573.html

时间: 2024-10-16 21:40:04

IDEA搭建我的第一个Spring MVC应用(附使用注解实现)的相关文章

第一个Spring MVC程序

最近公司项目要开始使用Spring MVC替代Struts2了,就学习了一下Spring MVC的使用.这是第一个Spring mvc程序,分别使用xml和注解两种方式. 一.使用xml格式进行构建 1.使用SpringMVC,首选需要在web.xml中配置拦截器和过滤器 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XM

Myeclipse/STS 首次在本地部署配置一个Spring MVC 项目 (十二)

1. 在本地新创建一个文件夹 ,做为项目工作空间; 2. 用 Myeclipse 或 STS 进入该文件夹,该文件夹就成为项目的工作空间: 3. 就要进 窗口-首选项,配置: 环境默认编码: 1>. 常规下面 内容类型 .txt 文本 UTF-8 更新 2>. 常规 – 工作空间 , 文本文件编码 3>. 常规 – 编辑器 – 文本编辑器 – 拼写 配置 java JDK 为 项目需要的版本 比如 (1.7) : 配置 Myeclipse 下的 Servers 及 validation 

Spring MVC 中的基于注解的 Controller【转】

原文地址:http://my.oschina.net/abian/blog/128028 终于来到了基于注解的 Spring MVC 了.之前我们所讲到的 handler,需要根据 url 并通过 HandlerMapping 来映射出相应的 handler 并调用相应的方法以响应请求.实际上,ControllerClassNameHandlerMapping, MultiActionController 和选择恰当的 methodNameResolver(如 InternalPathMetho

在web项目中搭建一个spring mvc + spring + mybatis的环境

介绍:本文中示范搭建一个ssm环境的框架:使用流程就是客户端通过http请求访问指定的接口,然后由服务器接受到请求处理完成后将结果返回. 本项目请求流程细节介绍:由客户端请求到指定的接口,这个接口是个jsp的页面,在jsp页面中会自动请求jsp中指定的接口,请求到达comcat服务器后由spring mvc提供的DispatchServlet类进行接受,然后将请求交给HandierMapping接口的实现类去解析当前请求的所有参数,再交给HandlerAdaper接口的实现类去将所有参数和对象(

利用maven构建一个spring mvc的helloworld实例

刚开始学习maven和spring mvc,学的云里雾里的 这里提供一个hello world实例,记录自己的学习之路 首先看maven官网的介绍 Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and do

使用Maven创建一个Spring MVC Web 项目

使用Maven创建java web 项目(Spring MVC)用到如下工具: 1.Maven 3.2 2.IntelliJ IDEA 13 3.JDK 1.7 4.Spring 4.1.1 released 5.Tomcat7 6.Logback 1.0.13 日志输出组件 接下来开始演示如何用Maven模板创建web项目 1.使用maven-archetype-webapp模板快速创建web项目的骨架结构 打开控制台,进入到你想要创建web项目的目录,然后运行如下命令: 1 $ mvn ar

快速创建一个 spring mvc 示例

1. 创建一个 servlet 项目 参考 http://www.cnblogs.com/zno2/p/5908589.html 2. 引入 spring mvc 依赖 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.3.3.RELEASE</version> <

Spring学习之第一个Spring MVC程序(IDEA开发环境)

回顾Java平台上Web开发历程来看,从Servlet出现开始,到JSP繁盛一时,然后是Servlet+JSP时代,最后演化为现在Web开发框架盛行的时代.一般接触到一个新的Web框架,都会想问这个框架优势在哪?或者比其他框架好在哪里?如果没有使用Spring MVC框架,而是使用其他框架并且能够很好地满足要求,这样转换框架或许不是一个好主意.如果像我这样首次接触Web开发框架,Spring MVC还是值得优先考虑的. Web层,更确切说是在框架处理器方面,Spring MVC对请求处理期间涉及

Java框架搭建-Maven、Mybatis、Spring MVC整合搭建

1. 下载eclipse 到网站下载 http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/marsr 选择自己所要的版本 2. 新建Maven项目 选择File –> New –> Maven Project 可看到下面界面 点击Next,可看到下面界面,我们选择maven-archetype-webapp 点击Next,可看到.Group Id为包名,Artifact Id为项目名.这里我们输入Gr