第一个springMVC程序
首先,创建一个Maven项目
自动生成一个webapp框架的基本目录
编辑web.xml文件
注册SpringMVC的核心对象Dispatcherservlet核心对象,配置tomcat启动的时候,创建对象的时候的执行顺序。
<load-on-startup>1</load-on-startup>
由于名字的名称为SpringMVC,需要自定义SpringMVC读取配置文件的位置,应该放到
resources目录下,我放在了WEB-INF目录下面。
由于编辑第一个SpingMVC框架的程序,需要配置servlet-mapping,我使用的是*do 的请求
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<!-- 使用框架的时候,url pattern 可以使用两种值-->
<!-- 1.使用扩展名方式, *.do *.action *.mvc-->
<!-- http://localhost:8080/springmvc/some.do-->
<url-pattern>*.do</url-pattern>
</servlet-mapping>
编辑pom.xml文件
创建MAVEN工程的时候有些已经写好了,只需要加入两个依赖。
<!--springmvc依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.5.RELEASE</version>
</dependency>
<!--servlet依赖-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
接下来就创建我的第一个index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<p> 第一个springmvc请求</p>
<p><a href="some.do">发起dosome请求</a></p>
</body>
</html>
可以看见,用户的请求时xxx.do,我需要在springMVC.xml文件里面加入组件扫描器
<!--声明组件扫描器-->
<context:component-scan base-package="com.wf.controller"/>
其次需要创建一个处理器对象,相当于servlet ,用注解@Controller修饰类;用@RequestMapping修饰方法。返回的ModelMapping对象
@Controller
public class MyController {
/*
* 处理用户请求,用方法,有多种返回值,多种参数
* */
//准备用dosome处理some.do的请求
//使用注解@RequestMapping:请求映射 参数value 推荐/开头
@RequestMapping(value = "/some.do")
public ModelAndView dosome(){
//处理some.do的请求
ModelAndView mv = new ModelAndView();
//添加数据,框架在请求的最后当道request作用域 相当于setAttribute()
mv.addObject("msg","欢迎使用SpringMVC");
mv.addObject("fun","执行的dosome方法");
//指定视图 放到mv里
// mv.setViewName("/WEB-INF/view/show.jsp");
//视图解析器,框架会使用前缀和后缀,组成完整路径。
mv.setViewName("show");
return mv;
}
}
创建show.jsp我放在了WEB-INF目录的下面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h3>show.jsp 获取数据</h3>
<h3>${msg}</h3>
<h3>${fun}</h3>
</body>
</html>
然后启动Tomca服务器,在浏览器输入本地地址 http://localhost:8080/first/index.jsp