Spring 入门七 MVC注解入门程序的编写①注解形式映射类

本文详细介绍了SpringMVC框架的入门级实战操作,包括环境配置、核心组件解析、控制器示例及页面展示,适合初学者快速掌握SpringMVC的基础用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spring入门程序的编写

入门程序的步骤

  1. 配置环境
  2. 配置MVC的配置文件

配置环境

1.导入mvc需要依赖的jar包,因为springMVC是我们Spring中的一个web小服务,所以我们还是需要spring所依赖的环境。
在这里插入图片描述

如果只是需要我们MVC的环境的话我们就知道导入如下jar包就可以了

在这里插入图片描述


web.xml文件的配置

我们需要我们的web项目读到我们的SpringMVC的服务,这样我们才能使用我们的框架,因为这个是客户端跟服务端的一个交互,所以我们就叫这个是业务层的框架,需要我们将web跟servlet联系起来,而我们要使用框架,所以我们配置文件需要初始化我们的spring容器跟子容器MVC

<?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">

    <servlet>
        <servlet-name>dispatcherServlet</servlet-name>

        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvcNote.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>


    <!--解决Post乱码问题的拦截器
    CharacterEncodingFilter  在高版本的Spring中是可以解决 get请求 和Post请求 、
   低版本  比如说4.X中 只能解决Post请求  不能解决get请求
     -->
    <filter>
        <filter-name>Charac</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>utf-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>Charac</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

关于我们SpringMVC的核心的一个bean:
我们在使用SpringMVC的时候web端请求跟响应的数据会有一个乱码的问题,我们需要将请求跟响应拦截下来过滤一次,使用到filter标签,MVCjar包下的org.springframework.web.filter.CharacterEncodingFilter来解决我们的乱码问题,但是注意一个版本问题,这个问题我在注解中写了,配置文件具体的配置看一下就可以了


SpringMVC配置文件文件的配置

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

<!--注解来配置xml文件-->
<context:component-scan base-package="com.shangma"></context:component-scan>
<!--处理器(映射),适配器-->
<!--    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean>-->
<!--    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean>-->

<!--视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/pages/"/>
    <property name="suffix" value=".jsp"/>
</bean>
//这个代替了处理器适配器,写了这个就不用写处理器跟适配器那么长的代码了
<mvc:annotation-driven/>
</beans>

关于我们SpringMVC的核心的一个bean:
< bean class=“org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping”>
对url地址隐射到我们的某个bean的方法中去,遍历容器中的所有bean 怎么识别呢,带有注解的@requestmapping或者@contorller(控制)的bean类,然后再遍历这个bean类中的所有方法,如果方法带有requstmapping说明这个方法是需要被映射的
简而言之就是扫描的一个bean,符合要求的就会被扫描出来


Controller示例

package com.shangma.cn.entity;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@Controller
public class WeclomController  {
//我们可以通过地址加项目名加下面的这个hello直接访问这个controller层。
@GetMapping("hello")
   public ModelAndView name (){
   //新建一个modelAndview对象,将我们的属性装进去
   ModelAndView modelAndView = new ModelAndView();
   modelAndView.addObject("msg","醉眼看人间个个都温柔");
   //我们的这个对象会自动找到我们web下面的success.jsp
   modelAndView.setViewName("success");
   //返回这个视图对象,将自身给到success页面,String的形式
   return modelAndView;
   }
}


page页面

<%--
  Created by IntelliJ IDEA.
  User: JAVASM
  Date: 2019/8/19
  Time: 10:10
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

<h2>这是success页面</h2>
${msg}

</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值