四.使用注解开发
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层
@RequestMapping() get post等等
-
就是用来映射url到控制器或者一个特定的处理程序方法,可以用到类或者方法上。
-
-
此时输入这个才能访问到管理员的界面