MacOS, Java和IDEAJava 杂谈

SpringMVC入门HelloWorld

2019-05-27  本文已影响3人  SpaceCat

1、新建工程

在IDEA中,File -> New -> Project...,这里我们需要通过Maven新建一个webapp骨架的项目。选中Maven,并勾选Create from archetype,选择org.apache.maven.archetypes:maven-archetype-webapp

springmvc1.png

输入GroupId和ArtifactId:


springmvc2.png

选中本地Maven的主目录(当然,也可以用Idea自带的Maven):


springmvc3.png

输入工程的名字,并选择工程的存储路径:


springmvc4.png

点击完成之后,Maven开始下载相关的依赖:


springmvc5.png

下载完成之后,Maven完成初步的构建,这时候,可以看到该项目的目录结构:


springmvc6.png

2、编写代码

2.1 Controller

首先,在前面新建的src/main目录下,新建一个java文件夹,用来存放工程中用到的java代码。这时候,需要在idea中选中这个新建的java目录,然后,右键,依次单击Mark Directory as -> Sources Root,将这个目录设置为源码目录,然后,新建如下java类,作为Controller:
MainController.java:

package com.spacecat.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * Created by chengxia on 2019/5/26.
 */
@Controller
public class MainController{

    @RequestMapping(value = "/helloworld")
    public String index(){
        return "helloworld";
    }
}

2.2 配置DispatcherServlet

在工程的web.xml文件中,配置成如下:

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
  <servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

注意这里配置了<servlet-name>mvc-dispatcher</servlet-name>,那么,就相当于确定了下面的WEB-INF/mvc-dispatcher-servlet.xml配置文件名称。该配置文件中,主要是View相关的配置。如下:

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

    <context:component-scan base-package="com.spacecat.controller"/>
    <mvc:annotation-driven/>

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

2.3 编写简单的jsp

WEB-INF目录下,新建jsp文件WEB-INF/pages/helloworld.jsp,充当简单的View视图:

<%--
  Created by IntelliJ IDEA.
  User: chengxia
  Date: 2019/5/26
  Time: 10:38 PM
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Hello World</title>
</head>
<body>
<h2>Hello World!</h2>
<h2>Page returned from controller.</h2>
</body>
</html>

2.4 最终的文件结构

最终的文件结构如下图:


springmvc7.png

2.5 新建Tomcat运行

单击Idea菜单Run,在下拉菜单中单击Run...,弹出如下窗口:

springmvc8.png

然后,新建运行时,如下图:


springmvc9.png

选择Deployment选项卡,然后添加Artifact:

springmvc10.png

在弹出的对话框中选中hellospringmvc:war

springmvc11.png

这时候,点击上面图片中的Run,就能够启动Tomcat服务器。
在服务器启动后,在浏览器窗口中输入http://localhost:8080/helloworld,就可以看到如下页面:

springmvc12.png

到这里,一个最简单SpringMVC工程就演示完毕。

3、简单解释

这里的Controller中定义了url的处理,对/helloworld这个url的请求,由index()方法处理,该方法返回了一个视图名字helloworld。
根据WEB-INF/mvc-dispatcher-servlet.xml文件中的配置,helloworld视图对应的是前缀为/WEB-INF/pages/,后缀为.jsp的文件,也就是WEB-INF/pages/helloworld.jsp
这样,当请求/helloworld这个url时,就得到了浏览器页面中的”HelloWorld!“。
在SpringMVC中,请求先到DispatcherServlet,然后再被分发到Controller。web.xml中,servlet-mapping,配置成<url-pattern>/</url-pattern>,意思是所有的请求都要先经过DispatcherServlet。

参考资料

上一篇 下一篇

猜你喜欢

热点阅读