SSM框架学习——【Spring MVC】——Spring mvc 入门

Spring mvc 入门


Servlet api jsp

public class MyServlet extends HttpServet{
    
    public void doGet(){
        
    }
    
    //req 代表请求
    // resp 代表响应
    public void doPost(HttpServletRequest req,HttpServletResponse resp){
        //
    }
    
    
}

intellij 创建 maven springmvc项目过程

1. 创建maven 项目

2.引入所需依赖

编辑 pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>day0207</artifactId>
    <version>1.0-SNAPSHOT</version>

    <!--创建spring的version参数-->
    <properties>
        <spring.version>5.2.3.RELEASE</spring.version>
    </properties>


    <dependencies>
        <!--spring的依赖-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!--AOP 的依赖-->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>1.9.4</version>
        </dependency>
        <!--springmvc  的依赖:spring-web spring-webmvc-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
    </dependencies>

</project>

3. 给intellij的项目引入web模块

  1. 创建webapp模块

在这里插入图片描述

添加web模块

在这里插入图片描述

指定web.xml和webroot的位置

在这里插入图片描述

创建构建

在这里插入图片描述

构建的输入与输出映射

在这里插入图片描述

最终在目录下会有webApp目录

在这里插入图片描述

4 intellij中加入tomcat和其依赖

选择右上角的add Confiuration

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-utCkV3PR-1581243665495)(点击add configuration.png)]

选择template中的tomcat,点击ok

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nyk4qxA5-1581243665496)(选择tomcat.png)]

再点击左上角的+号,选择tomcat server local

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T9I0hsub-1581243665454)(open moudule setting.png)]

设置tomcat名称和home

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nJgXG6rA-1581243665497)(tomcat home.png)]

选择构建项目day0207

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-40HZrpXW-1581243665497)(选择构建.png)]

配置项目的 context root为"/"

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CqKxdg8G-1581243665498)(配置context root.png)]

设置代码热更新

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oKOmj9j6-1581243665498)(设置代码热更新.png)]

再次打开 open module settings,加入tomcat 依赖

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jYWq9EsY-1581243665498)(添加tomcat的lib.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i47eDFlf-1581243665499)(添加tomcat依赖.png)]

hello springmvc项目

1. 编写jsp

在webApp下添加hello.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>hello jsp</title>
</head>
<body>
    <h1>${content}</h1>
</body>
</html>

2. 编写controller
package com.neuedu.hellomvc.web;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

/**
 * 一个处理请求的controller
 * controller需要添加@Controller注解来表明自己的身份,被springmvc识别到
 */
@Controller
public class HelloController {

    /**
     * 第一个控制器方法,返回modelandview
     * 声明该方法处理的请求地址:我们使用注解的方式
     * @return
     */
    @RequestMapping("/hello")
    public ModelAndView hello(){
        // 创建 modelandView对象:首先要有model:代表数据 其次要有view:代表逻辑视图名,对应指的是就是某一个jsp
        ModelAndView modelAndView = new ModelAndView();
        // 指定逻辑视图名view
        modelAndView.setViewName("/hello.jsp");

        //指定model content
        // addObject方法等价于request.setAttribute()
        modelAndView.addObject("content","hello spring mvc");

        return modelAndView;
    }
}

3. 编写spring主配置类
package com.neuedu.hellomvc;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ViewResolverRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.view.InternalResourceViewResolver;

/**
 * 这是spring的配置类,同时也是springmvc的配置类:需要去配置视图解析器,处理器适配器 处理器映射器
 * WebMvcConfigurer 用于让开发者方便的去配置springmvc的各个组件:包括视图解析器,处理器适配器 处理器映射器 消息解析器 拦截器 资源映射器
 */
@Configuration // 代表这是个配置类
@EnableWebMvc //这个注解默认帮助开发者配置了处理器映射器和处理器适配器 相当于xml当中<mvc:annotation-driven/>
@ComponentScan("com.neuedu.hellomvc") // 扫描该包之下的所有有注解的类,装入ioc容器中,显然controller包含在其中
public class AppConfig implements WebMvcConfigurer {


    // 配置视图解析qi
    // alt+insert 选择overrider
    //registry 代表注册机
    public void configureViewResolvers(ViewResolverRegistry registry) {
        // 创建视图解析器用于处理jsp的视图解析器叫做InternalResourceViewResolver
        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();

        // 将视图解析器通过注册机注册到spring ioc中
        registry.viewResolver(viewResolver);
    }
}

4. 创建web项目启动类替代web.xml
package com.neuedu.hellomvc;

import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;

import javax.servlet.ServletException;
import javax.servlet.ServletRegistration;

/**
 * 替代了web.xml 通过java代码的方式初始化web项目,必须实现接口WebApplicationInitializer
 */
public class WebInitializer implements WebApplicationInitializer {

    /**
     * 这个方法表明了具体的web项目的启动配置,包含对应的servlet和filter等等
     * @param servletContext
     * @throws ServletException
     */
    // 要运行servlet项目,我们需要servlet容器,也就是我们收悉的tomcat
    public void onStartup(javax.servlet.ServletContext servletContext) throws ServletException {
        // 配置dispatcherServlet以及ioc容器

        //创建web ioc容器
        AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
        // 指定主配置类AppConfig.class
        context.register(AppConfig.class);
        //将dispatcherServlet创建出来,并且用构造函数的方式指定servlet所使用的ioc容器
        DispatcherServlet dispatcherServlet = new DispatcherServlet(context);

        // 将servlet注册到servlet容器中去
        ServletRegistration.Dynamic dynamic = servletContext.addServlet("dispatcher", dispatcherServlet);
        // 配置dispatcherServlet的拦截请求为所有请求: /
        dynamic.addMapping("/");
        // 配置dispatcherServlet为第一个启动的servlet,优先级设为最高
        dynamic.setLoadOnStartup(1);
    }
}

5. 启动项目进行测试

点击之前设置好的tomcat右边的箭头按钮,在右上角

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rosoWJEz-1581243665499)(启动项目.png)]

项目运行状态会在控制台打印

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-04z03PZM-1581243665500)(运行状态.png)]

打开浏览器访问 http://localhost:8080/hello

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eOB1ly5x-1581243665500)(运行结果.png)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狮子座的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值