发表于: 2016-08-02 22:56:54
1 2139
今天完成的事情:
准备工作
在eclipse下创建动态web工程spring
第一步:前端控制器配置
在WEB-INF\web.xml中配置前端控制器,
<servlet>
<servlet-name>spring</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>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
-------contextConfigLocation:指定springmvc配置的加载位置,如果不指定则默认加
载WEB-INF/[DispatcherServlet 的Servlet 名字]-servlet.xml。
第二步:springmvc配置文件
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
第三步 配置处理器映射器
<!-- 处理器映射器 -->
<!-- 根据bean的name进行查找Handler 将action的url配置在bean的name中 -->
<bean
class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
BeanNameUrlHandlerMapping:表示将定义的Bean名字作为请求的url,需要将编写的controller在spring容器中进行配置,且指定bean的name为请求的url,且必须以.action结尾。
第四步 配置处理器适配器
在springmvc-servlet.xml文件配置如下:
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
-------SimpleControllerHandlerAdapter:即简单控制器处理适配器,所有实现了org.springframework.web.servlet.mvc.Controller 接口的Bean作为
Springmvc的后端控制器。
第五步 配置视图解析器
在springmvc-servlet.xml文件配置如下:
<!-- ViewResolver -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
-------InternalResourceViewResolver:支持JSP视图解析
viewClass:JstlView表示JSP模板页面需要使用JSTL标签库,所以classpath中必须包含jstl的相关jar 包;
prefix 和suffix:查找视图页面的前缀和后缀,最终视图的址为:
前缀+逻辑视图名+后缀,逻辑视图名需要在controller中返回ModelAndView指定,比如逻辑视图名为hello,则最终返回的jsp视图地址 “WEB-INF/jsp/hello.jsp”
第六步 后端控制器开发
后端控制器即controller,也有称为action。
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importorg.springframework.web.servlet.ModelAndView;
importorg.springframework.web.servlet.mvc.Controller;
public class HelloWorldController implements Controller {
@Override
publicModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws
Exception {
ModelAndView mv = new ModelAndView();
//添加模型数据
mv.addObject("message", "Hello World!");
//设置逻辑视图名,最终视图地址=前缀+逻辑视图名+后缀
mv.setViewName("hello");
returnmv;
}
}
-------org.springframework.web.servlet.mvc.Controller:处理器必须实现Controller 接口。
ModelAndView:包含了模型数据及逻辑视图名
第七步 后端控制器配置
在springmvc-servlet.xml文件配置如下:
<!--处理器-->
<bean name="/hello.action"
class="springmvc.action.HelloWorldController"/>
name="/hello.action":前边配置的BeanNameUrlHandlerMapping,表示如过请求的URL 为“上下文/hello.action”,则将会
交给该Bean进行处理。
第八步:视图开发
创建/WEB-INF/jsp/hello.jsp视图页面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>第一个程序</title>
</head>
<body>
<!-- 显示一行信息hello world!!!! -->
${message}
</body>
</html>
-------${message}:表示显示由HelloWorldController处理器传过来的模型数据。
第九步:部署在tomcat测试
明天计划的事情:明天梳理springMVC和mybatis的整合,在进一步学习spring的知识,并且复习之前所学。
遇到的问题:今天在最后部署tomcat的最后时候总是出一些奇葩的错误,通过一中午外加小半个下午的时间通过搜索资料,以及请教丁杰师兄的大力帮助下才解决掉,真心感谢丁杰师兄的帮忙。最终竟然是没有生成 .class文件,导致找不到文件,然后原因竟然是没有自动编译。。。,project--Automatically勾选就解决了,大家不要犯我这样低级错误。。。
收获:springMvc才刚刚入门,还差的很远。
评论