首页 > 其他分享 >初始spring MVC

初始spring MVC

时间:2023-02-28 19:59:08浏览次数:35  
标签:DispatcherServet web spring MVC import servlet javax 初始

一.spring  MVC的特点:

  1. 轻量级,简单易学
  2. 高效,基于请求响应的MVC架构
  3. 与spring的兼容性好,无缝结合
  4. 约定优于配置
  5. 功能强大:RESTful,数据验证,格式化,本地化,主题等;

Spring的web框架围绕DispatcherServet

 

 DispatcherServet相当于一个中心调度器,它简化了我们原来的配置,必须要配置多个servlet,现在就可以只配置一个DispatcherServet,然后由它去协调控制我们的这几个servlet,由他来统一请求和控制转发。

本质上DispatcherServet也是一个servlet,只是写他的人写了更多的功能,让他凌驾其它层以上,用于控制请求转发。

二.认识spring  MVC

环境搭建:由于springMVC简化了我们的配置,所以这里我们只用配置一个DispatcherServet由它来控制转发所以web.xml就显得很简单了

<?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="3.1"
         metadata-complete="true">

<servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <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>
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

 

我们的web.xml就简单的配置了一个DispatcherServet,然后的配置都在spring来配置了

springmvc-servlet.xml

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

       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">
    <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
    <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver">
        <!--前缀-->
        <property name="prefix" value="/page/"/>
        <!--后缀-->
        <property name="suffix" value=".jsp"/>
    </bean>
    <bean id="/hello" class="top.lostyou.controller.HellowController"/>
</beans>

 

这里的spring的配置,简单的看也不难,因为前三个<bean>都是springmvc的固定配置,不需要过多的深究,我们自己要的配置主要在下面;

每当我们需要访问一个页面的时候,就需要在spring中注册一个<bean>就可以了,简化了注册方式

控制层接口:

package top.lostyou.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class HellowController implements org.springframework.web.servlet.mvc.Controller {

    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
        ModelAndView mv = new ModelAndView();
        mv.addObject("msg","HelloSpringMvc!");

        mv.setViewName("hello");

        return mv;
    }
}

 

jsp内容:/hello

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

 

可能需要的依赖:

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.3.24</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.2</version>
        </dependency>
        <!--EL表达式,前端-->
        <!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>

 

标签:DispatcherServet,web,spring,MVC,import,servlet,javax,初始
From: https://www.cnblogs.com/5ran2yl/p/17162237.html

相关文章

  • 理论:第二章:Spring的AOP和IOC是什么?使用场景有哪些?Spring事务与数据库事务,传播行为,数据
    AOP:面向切面编程。即在一个功能模块中新增其他功能,比方说你要下楼取个快递,你同事对你说帮我也取一下呗,你就顺道取了。在工作中如果系统中有些包和类中没有使用AOP,例如日志......
  • Preparing for Spring Boot 3.0 | Spring Boot 3.0 升级 实战踩坑记录
    PreparingforSpringBoot3.0https://spring.io/blog/2022/05/24/preparing-for-spring-boot-3-0SpringBoot3.0.0的到来,我们将会面临着那些问题-掘金https://jue......
  • Spring事务管理的方式
    ①编程式事务管理:通过编写代码实现的事务管理,包括定义事务的开始、正常执行后的事务提交和异常时的事务回滚。②声明式事务管理:通过AOP技术实现的事务管理,其主要思想是将......
  • Spring/Spring Boot下如何动态配置计划任务
    和Spring对异步任务的支持一样,通过@EnableAsync 注解开启异步的支持,然后通过@Async 注解来指定异步的方法,而真正的异步任务的执行者是TaskExecutor接口 ,它的实现是Threa......
  • SpringBoot 访问html
    1、pom.xml文件配置<dependency><!--页面模板依赖--><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</a......
  • 【学习笔记】springmvc接收参数
    springmvc接收参数springmvc接收前端传来的数据,主要有三种情况:传来的参数名与处理方法的参数名一致、传来的参数名与处理方法的参数名不一致、传来的参数与已有的对象的属......
  • Spring自动注入
    在spring配置文件中,对引用属性进行自动注入。  一、配置方式1、在<bean>中通过autowire属性配置,只对这个bean生效2、在<beans>中通过default-autowire属......
  • springboot+mybatis+redis+mysql项目搭建,含示例Demo
    转载自:https://blog.csdn.net/qq_40772342/article/details/105049322========== redis在web开发中使用的场景很多,其中缓存是其中一个很重要的使用场景,之所以用作缓存,......
  • springboot整合shiro
    1.什么是ShiroShiro是一个基于Java的安全框架,它提供了身份验证、授权、加密和会话管理等安全功能,可以帮助Java应用程序实现安全性。2.根据Shiro的基本使用了解其基本......
  • Spring配置切面(AOP)
    AOP,面向接口的编程,实际上是代理模式的实现。参考:代理模式(Proxy)   一、使用Scheme-based方式配置需要实现接口重写指定方法,来确定通知所在位置。(一)、前置通知和......