基于注解的处理器
参考来自b站大佬:传送门
处理器handler基于@Controller 和@RequestMapping这两个注解
@Controller 用于声明一个控制器类 @RequestMapping 用于声明对应请求的映射关系
1.导包
所有可能需要的jar包:
spring-aop-4.3.6.RELEASE.jar
spring-beans-4.3.6.RELEASE.jar
spring-context-4.3.6.RELEASE.jar
spring-core-4.3.6.RELEASE.jar
spring-expression-4.3.6.RELEASE.jar
spring-aspects-4.3.6.RELEASE.jar
spring-jdbc-4.3.6.RELEASE.jar
spring-orm-4.3.6.RELEASE.jar
spring-tx-4.3.6.RELEASE.jar
spring-web-4.3.6.RELEASE.jar
spring-webmvc-4.3.6.RELEASE.jar
jar包下载方法:
2.配置servlet
(1)创建工程
(2) 在xml中配置DispatcherServlet:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>spring-8</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<!-- 配置Dispatcherservlet -->
<servlet>
<servlet-name>dispatcherservlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 初始化参数 -->
<init-param>
<param-name>contextConfigLocation</param-name><!-- 参数名 加载这个-->
<param-value>calsspath:springmvc.xml</param-value><!-- 参数值 -->
</init-param>
<load-on-startup>1</load-on-startup><!-- 作用:启动的时候加载 -->
</servlet>
<servlet-mapping>
<servlet-name>dispatcherservlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
(3)在项目spring-8的src目录下创建Spring MVC配置文件 springmvc.xml :
如果这一步跟我出了一样的错误:
9(参考解决办法:传送门
<?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:p= "http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd">
<!-- 开启springbean的自动扫描 -->
<context:component-scan base-package="com.springmv"></context:component-scan>
<!-- 配置视图解析器,将控制器方法返回的逻辑视图解析为物理视图 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--逻辑视图:success ,物理视图: /success.jsp -->
<property naem="prefix" value="/"></property>
<property naem="suffix" value=".jsp"></property>
</bean>
</beans>
(4) 创建处理请求的类,并使用注解标识为处理器
在src目录下创建包com.springmvc.controller,在包中创建类SpringMVCHandler
package com.springmvc.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
//声明一个控制器类
@Controller
public class SpringMVCHandler {
//地址映射
@RequestMapping(loWorld")
public String sayHello() {
System.out.println("Hello World");
return "success";//逻辑视图名称
}
}
(5) 编写视图,编辑index.jsp 在<body>元素添加一个超链接
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="helloWorld">helloWorld</a><!-- 超链接,跳到 "helloWorld的控制器 -->
</body>
</html>
以及success.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
欢迎学习spring-MVC
</body>
</html>
实验结果:
success.jsp的页面
部署项目,启动tomcat