2018.4.18
仅为个人理解 不足之处欢迎指正~
一.新建Dynamic Web Project
二.将jar放在WebRoot下的WEB-INF的lib文件夹中
这里我用到的包比较多 有一些是这个项目没有用上的 具体需要哪些包请百度
三.在WEB-INF目录下创建web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
接下来解释一下配置文件中的部分问题
1.servlet-name
这个名字可随意配置 但之后会用到
2.load-on-startup
load-on-startup的含义是:
标记容器是否在启动时就加载这个servlet
当值大于等于0时表示加载
当值为负数或没有指定时表示在该servlet被选择时再加载
当值大于0时 值越小表示优先级越高
3.utr-pattern
/表示拦截所有请求
四.在WEB-INF目录下创建springmvc-servlet.xml
这个名字就是上一步中起的名字
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="simpleUrlHandlerMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/index">indexController</prop>
</props>
</property>
</bean>
<bean id="indexController" class="controller.IndexController"></bean>
</beans>
接下来解释一下配置文件中的部分问题
1.SimpleUrlHandlerMapping
配置请求与控制器的关系
2.prop key
表示如果访问路径/index 会让id为indexController的bean处理 这里还没有配置indexController
下面也可以配置更多的路径与控制器关系
3.bean的装配
这部分内容写在了Spring学习记录中~
五.创建控制器IndexController
package controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
public class IndexController implements Controller {
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
ModelAndView mav = new ModelAndView("index.jsp");
mav.addObject("message", "Test");
return mav;
}
}
什么是ModelAndView?
ModelAndView 从名字上看Model代表模型 View代表视图
ModelAndView类用来存储处理完后的结果数据(Model)以及显示该数据的视图(View)
业务处理器调用模型处理完用户请求后
把结果数据存储在该类的Model属性中
把要返回的视图信息存储在该类的View属性中
然后将整个ModelAndView类返回SpringMVC框架
框架再通过调用配置文件中定义的视图解析器 对该对象进行解析
最后把结果相数据显示在指定的页面上
ModelAndView具体有两个作用
- 返回所需数值
使用addObject()设置需要返回的值
- 返回指定页面
使用setViewName()方法跳转到指定的页面
我们此时返回的是一个数值
六.创建index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false"%>
<h1> ${message}</h1>
这里仅显示由IndexController返回的message信息 应该显示“Test1(index页面)”
七.使用Tomcat启动测试
简单的一个SpringMVC应用就这样完成了
后续会进行其他进一步的操作和改动
谢谢~