四.使用注解开发

1.配置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 核心调度器
    -->
    <servlet>
        <servlet-name>mvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--    当我们绑定类后,我们又要导入springMVC对应的配置文件-->
        <init-param>
            <!--         classpath:/ 当前类路径-->
            <!--         classpath*:/所有路径找-->
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath*:servlet-config.xml</param-value>
        </init-param>
        <!--    启动级别: 1,服务器启动他也跟着启动-->
        <load-on-startup>1</load-on-startup>
    </servlet>


    <servlet-mapping>
        <servlet-name>mvc</servlet-name>
        <!--        核心调度器对所有的请求进行过滤
        SpringMVC中: / 指的是匹配所有的请求 不包括诸如.jsp这样的
                     /* 指的是匹配所有的请求 包括.jsp页面
        -->
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

2.配置springmvc.xml

<?xml version="1.0" encoding="UTF8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       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">
    <!--    开启自动扫描包-->
    <context:component-scan base-package="com.why"/>
    <!--    开启让springMVC不处理静态资源 如 .css .mp3等等 因为这些东西交给handler处理是不对的-->
    <mvc:default-servlet-handler/>
<!--开启它 此时自动导入那2个handler 不用我们手动导入了-->
    <!--
       支持mvc注解驱动
       在spring中一般采用@RequestMapping注解来完成映射关系
       要想使@RequestMapping注解生效
       必须向上下文中注册DefaultAnnotationHandlerMapping
       和一个AnnotationMethodHandlerAdapter实例
       这两个实例分别在类级别和方法级别处理。
       而annotation-driven配置帮助我们自动完成上述两个实例的注入。
    -->
    <mvc:annotation-driven/>
    <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!--        前缀-->
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <!--        后缀-->
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>

类的实现:

package com.why;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
/**
 * @program: Spring_MVC
 * @description:
 * @author: @why
 * @create: 2020-08-17 21:02
 **/
@Controller
//如果加入这个 此时访问地址是localhost:8080/why/hello 先上在下
//只要返回的是String类型 并且能跳转到对应的页面,就会被视图解析器解析
//@RequestMapping("/why")
public class HelloController {
    @RequestMapping("/hello")
    public String Say(Model model)
    {
        model.addAttribute("msg","why");
        return  "hello";//返回值会被视图解析器处理 这个返回值就是jsp的文件名字嗷,已经在web-inf下建立jsp了
    }
}

controller层

  • 就是以前的servlet,可以通过继承接口或者注解来实现,推荐使用注解

@RequestMapping() get post等等

  • 就是用来映射url到控制器或者一个特定的处理程序方法,可以用到类或者方法上。

  • 以后我们的管理员界面 就可以给对应的类加上一个/admin/方法的位置

  • 此时输入这个才能访问到管理员的界面

posted @ 2020-09-02 13:06  why666  阅读(138)  评论(0编辑  收藏  举报