SpringMVC入门(一)之HelloWorld(IDEA版)

Spring MVC 入门(一)

helloworld

​ IDEA创建工程:

在这里插入图片描述

选择SpringMVC即可,等待创建

编写前端控制器

由于SpringMVC需要一个前端控制器(相当于医院分诊台)来拦截前端请求,并且智能分发。

前端控制器是一个Servlet,所以应该在Web.xml中配置servlet进行拦截

在WEB-INF目录下的web.xml文件中,有一个叫做dispatcher的东西,内容如下(初始状态可能没有< init-param >以及其子模块)

<servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>index.jsp</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

接下来是该部分的详细讲解:

<load-on-startup>1</load-on-startup>

load-on-startup 代表服务器启动时创建对象,其数值代表优先级,数值越小,优先级越高,越先创建对象。不加该标签则在第一次访问时创建对象

<init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>index.jsp</param-value>
</init-param>

该部分指定配置文件位置,因此我们在src 文件下创建一个SpringBean 文件,创建方法如图:

在这里插入图片描述
然后将< param-value >该为:classpath: springmvc.xml;

如下:

 <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc.xml</param-value>
 </init-param>

将< servlet-mapping >中的对应 < url-pattern> 改为/

    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
        <!-- /*与/都是拦截所有请求,但是“/*”会拦截jsp页面,一旦拦截,jsp页面将无法显示
 			/不会拦截jsp,保证jsp访问正常
		-->
    </servlet-mapping>

然后在springmvc.xml< bean>中添加:

 xmlns:context="http://www.springframework.org/schema/context"

添加后的结果应该是:

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

添加扫描所有组件:

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

其中base-package中写想要扫描的包

编写处理器

为了测试,我选择在WEB-INF下添加文件,目录结构如图:
在这里插入图片描述

success.xml文件内容如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Success!</title>
</head>
<body>
    <a href="/hello">Hello world</a>
</body>
</html>

然后在src文件下创建Java文件,

目录结构如图

在MyFirstController 中添加方法,并且添加@Controller注解

@Controller是用来表示哪个组件是控制器,

代码如下:

@Controller
public class MyFirstController {
    @RequestMapping("/hello")
    //处理当前项目下的Hello请求
    public String myFirstController(){
        System.out.println("Get");
        return "/WEB-INF/pages/success.jsp";
    }

}

请求处理完返回success页面

注意:此处由于/WEB_INF/pages/success.jsp请求前缀是/WEB-INF/pages,后缀是.jsp,所以可以在springmvc.xml中配置一个视图解析器,这样返回时,可以直接返回网页文件名。代码如下:

    <!--  配置一个视图解析器,能帮助拼接页面地址 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/pages"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>

prefix代表前缀,suffix代表后缀

运行前的准备:

在运行前,需要在IDEA环境中配置Apache服务器步骤如下:

1、

点击右上角Add Configuration并在左侧选择+

在这里插入图片描述

在这里插入图片描述

2、

选中TomcatServer

在这里插入图片描述

3、

选择本地Tomcat文件
在这里插入图片描述

4、

选择Deployment,并点击右侧加号,然后点击Artifact…

在这里插入图片描述
配置完成

运行

在这里插入图片描述

运行成功!

发布了33 篇原创文章 · 获赞 27 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/eclipse9527/article/details/101707684
今日推荐