首页 > 其他分享 >SpringMVC-lesson04-hellospringmvc-注解开发-2023-03-22

SpringMVC-lesson04-hellospringmvc-注解开发-2023-03-22

时间:2023-03-22 22:13:33浏览次数:36  
标签:03 22 web SpringMVC 视图 Controller springframework 注解 hello

真实开发-注解开发

1、

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

    <!--1.注册servlet-->
    <servlet>
        <servlet-name>SpringMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--通过初始化参数指定SpringMVC配置文件的位置,进行关联-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc-servlet.xml</param-value>
        </init-param>
        <!-- 启动顺序,数字越小,启动越早 -->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <!--所有请求都会被springmvc拦截 -->
    <servlet-mapping>
        <servlet-name>SpringMVC</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>

2、关联springmvc-servlet

<?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
        https://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc
        https://www.springframework.org/schema/mvc/spring-mvc.xsd">
    <!-- 自动扫描包,让指定包下的注解生效,由IOC容器统一管理 -->
    <context:component-scan base-package="com.feijian.controller"/>
    <!-- 让Spring MVC不处理静态资源 -->
    <mvc:default-servlet-handler />
    <!--
    支持mvc注解驱动
        在spring中一般采用@RequestMapping注解来完成映射关系
        要想使@RequestMapping注解生效
        必须向上下文中注册DefaultAnnotationHandlerMapping
        和一个AnnotationMethodHandlerAdapter实例
        这两个实例分别在类级别和方法级别处理。
        而annotation-driven配置帮助我们自动完成上述两个实例的注入。
     -->
    <mvc:annotation-driven />
    <!-- 视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
          id="internalResourceViewResolver">
        <!-- 前缀 -->
        <property name="prefix" value="/WEB-INF/jsp/" />
        <!-- 后缀 -->
        <property name="suffix" value=".jsp" />
    </bean>
</beans>

3\创建controller, @Controller 会自动被spring 扫描到了,自动会去操作 。主要是写这里的代码,大部分用注解

package com.feijian.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HelloController {
@RequestMapping("/h1")  // url请求
    public String hello1(Model model){
        model.addAttribute("msg","hello new world! Annotation! feijian!");
        return "hello"; //返回的名字就是视图的名字,会被视图解析器处理
    }

}
  • @Controller是为了让Spring IOC容器初始化时自动扫描到;

  • @RequestMapping是为了映射请求路径,这里因为类与方法上都有映射所以访问时应该是/HelloController/hello;

  • 方法中声明Model类型的参数是为了把Action中的数据带到视图中;

  • 方法返回的结果是视图的名称hello,加上配置文件中的前后缀变成WEB-INF/jsp/hello.jsp

实现步骤其实非常的简单:

  • 新建一个web项目

  • 导入相关jar包

  • 编写web.xml , 注册DispatcherServlet

  • 编写springmvc配置文件

  • 接下来就是去创建对应的控制类 , controller

  • 最后完善前端视图和controller之间的对应

  • 测试运行调试.

使用springMVC必须配置的三大件:

处理器映射器、处理器适配器、视图解析器

通常,我们只需要手动配置视图解析器,而处理器映射器处理器适配器只需要开启注解驱动即可,而省去了大段的xml配置

标签:03,22,web,SpringMVC,视图,Controller,springframework,注解,hello
From: https://www.cnblogs.com/RUI2022/p/17245659.html

相关文章

  • 3.22 c++提高 4day
    1.对象模型成员函数不占用对象的内存-那么他们如何找到对象的成员呢因为虽然不是默认传参但是编译器会传入this指针来指向成员21: a.test();007E40B7lea......
  • 2023.3.22
     结对作业前两个功能做出最后的更新与调试,对最短路径问题的讨论和解决,并且进行了代码的完善,对辅助功能的完善。......
  • 2023.3.22每日总结
    importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;publicclassT......
  • 2023年3月22日软工日报
    今天下午写了会儿api,下午我们宿舍团建,晚上继续写那个安卓和自己的web选修作业。  cp之照: ......
  • 2023-03-23_并查集
    并查集两个点之间在树或图中是否连通的问题。1什么是并查集?连接问题网络中节点间的连接状态数学中的集合类实现连接问题与路径问题:解决路径问题便一定可以解......
  • 3.22 - 快手日常实习一面
     一、八股1.HTTPS和HTTP2.判断相等的方法、区别一共三种:==、===和Object.is() ==:双方类型不同时会强制转换。 强制转换规则:两个基础类型进行比较时,都转换成数字类......
  • 2023、03、22学习总结
    完成了app的页面设计 ......
  • 2023-03-22 顺序表基本操作
    #include<stdio.h>#include<stdlib.h>#include<stdbool.h>#defineinitsize10typedefstruct{int*data;intlength;intmaxsize;}SqList;......
  • 【Azure 应用服务】App Servie网站报403 ModSecurity Action错误
    问题描述AppService部署应用程序,然后通过AppGateway(WAF)提供公网访问,但是一直遇见403报错,刷新页面,回退,重新Web页面能缓解403问题。 问题分析通过浏览器F12抓取网......
  • 20201226马瑞婕《网络对抗》Exp2后门原理与实践
    目录1实验基础1.1基础知识1.1.1后门的概念常用后门工具2.实验目标3.实验环境4.实验过程4.1使用netcat获取主机操作Shell,cron启动4.1.1在主机中使用ncat-l-p1226(个人......