1、编写web.xml,注册DispatchServlet。
2、编写一个Spring配置文件。
3、创建一个HelloController控制类, 此处使用注解@Controller方式。
4、完善视图和Controller之间的关系。
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">
<!-- 配置DispatchServlet;-->
<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>
<!-- 请求地址
/:只匹配所有的请求,不匹配jsp请求页面
/*:匹配所有请求,包括jsp页面
-->
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
springmvc-servlet.xml
<!-- 自动扫描包 让指定包下面的注解生效-->
<context:component-scan base-package="com.iflytek.contorller"></context:component-scan>
<!-- 让Spring MVC不处理静态资源 -->
<mvc:default-servlet-handler />
<mvc:annotation-driven />
<!-- 视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="InternalResourceViewResolver">
<!--前缀-->
<property name="prefix" value="/WEB-INF/jsp/"/>
<!--后缀-->
<property name="suffix" value=".jsp"/>
</bean>
</beans>
HelloController.java
@Controller
public class HelloController {
//RequestMapping请求路径的URL
@RequestMapping("/aa")
public String hello(Model model){
model.addAttribute("msg","Hello MVC...");
//return 交给视图解析器 跳转到对应的jsp页面
return "hello";
}
}
(1): 在HelloController中添加注解@Controller ,自动扫描包会自动扫到该文件.
(2):@RequestMapping("/aa")注解是请求的URL路径:http://localhost:8080/springmvc/aa
其中在地址栏输入aa后会根据return "hello" ,剩下的DispatchServlet会自动的调度到所需的jsp页面。
return "hello" 会自动交给视图解析器,视图解析器会补全路径为:/WEB-INF/JSP/hello.jsp,跳转到对应的jsp页面。
输出结果:
上面是在方法上注释URL路径,如果在类上面加上@RequestMapping("/aafather"),那么类和个别方法就是父子关系,路径应该是/父/子。
如:
这样才能请求到具体方法所对应的UR路径。
在运行是遇到错误,是因为lib包下面没有依赖,添加进去即可以。