:helloSpringMvc 第一个springMVC程序

springmvc

1:helloSpringMvc 第一个springMVC程序

在这里插入图片描述

springmvc的最主要的地方就是DispatcherServlet 请求转发的前端控制器

在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="4.0">



<!--    通常都是在这里面写SERVLET的配置 但是现在配置DispatcherServlet 这是springmvc的核心 请求分发器 前端控制器-->
    <!--注册DispatcherServlet-->
    <servlet>
        <servlet-name>springMvc</servlet-name>
<!--        这个类也是spring帮我们写好的  -->
        <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>


<!--    /* 与/ 也是有区别的
       / 只匹配所有的请求 不会去匹配JSP页面
         /* 匹配所有的请求 包括jsp页面
-->
    <servlet-mapping>
        <servlet-name>springMvc</servlet-name>
        <url-pattern>/</url-pattern>
     <!--        这样的话所有的请求都会经过这个DispatcherServlet-->
    </servlet-mapping>
</web-app>

然后在这个适配器的配置中 需要关联一个spring的配置文件!

在iniParam中可以看到!

<?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">
    <!--  就是spring的配置文件 配置文件知识,引用于该网址:https://www.cnblogs.com/afeng2010/p/10133797.html-->

    <!--处理器映射器-->
    <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>

    <!--处理器适配器-->
    <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>

    <!--视图解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>



    <bean id="/hello" class="com.gong.controller.controller"/>
</beans>

在这个spring容器中你就可以看到有三个非常重要的 在刚才的图示中很重要的三个类

第一个是映射器 BeanNameUrlHandlerMapping

第二个是适配器 SimpleControllerHandlerAdapter 调用Controller

第三个就是视图解析 InternalResourceViewResolver

那么在controller中就有 就相当于是业务处理 并且会返回视图

package com.gong.controller;

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

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

public class controller implements Controller {
    public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("mesg","helloSpring");
        modelAndView.setViewName("hello");
        return modelAndView;
    }
}

使用注解开发的版本:

<?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的配置 但是现在配置DispatcherServlet 这是springmvc的核心 请求分发器 前端控制器-->
    <!--注册DispatcherServlet-->
    <servlet>
        <servlet-name>springMvc</servlet-name>
        <!--        这个类也是spring帮我们写好的  -->
        <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>


    <!--    /* 与/ 也是有区别的
           / 只匹配所有的请求 不会去匹配JSP页面
             /* 匹配所有的请求 包括jsp页面
    -->
    <servlet-mapping>
        <servlet-name>springMvc</servlet-name>
        <url-pattern>/</url-pattern>
        <!--        这样的话所有的请求都会经过这个DispatcherServlet-->
    </servlet-mapping>
</web-app>

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"
       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">
    <!--  就是spring的配置文件 配置文件知识,引用于该网址:https://www.cnblogs.com/afeng2010/p/10133797.html-->

<!--    自动扫描包 在这个包下面的所有注解都会生效 有IOC容器统一管理-->
    <context:component-scan base-package="com.gong.controller"/>




<!--    其实在真实的开发仲是不用的 只要注明了是controller的接口就可以了!-->
<!--    默认资源过滤 让springmvc不处理静态资源 .css .js .mp3-->
<!--    <mvc:default-servlet-handler/>-->

<!--    是使用注解驱动 可以不直接注入之前spring写好的bean-->
<!--    <mvc:annotation-driven/>-->

    <!--视图解析器不变-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver">
        <property name="suffix" value=".jsp"/>
        <property name="prefix" value="WEB-INF/jsp/"/>
    </bean>
</beans>
package com.gong.controller;


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


//之前是在容器中手动的配置bean
@Controller //代表这个类会被spring接管 被这个注解的类中的所有方法 如果返回值是String 并且有具体的页面可以跳转那么就会被视图解析器解析
public class helloController {
    @RequestMapping("/hello")  //通过url可以hi接跳转到这个页面
    public String hello(Model model){

        model.addAttribute("msg","helloSpringMvc!");
        //封装数据!
        return "hello";  //返回的字符串就是视图的瓶子 会被视图解析器处理!
    }

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值