六、初学SpringMVC+Mybatis之SpringMVC基于XML的配置
2016-03-25 15:08
435 查看
1、搭建环境
导入SpringMVC相关的Jar包到WEB-INF下面的lib目录,包含spring的IOCjar包、webMVC的jar包。
2、在web.xml中配置DispatcherServlet 前端控制器组件
DispatcherServlet组件在SpringMVC中已经提供,只需要配置即可.org.springframework.web.servlet.DispatcherServlet。
3、编写Controller组件
建立一个实现 Controller接口的java类。Controller组件负责执行具体的业务方法,可调用其他组件完成具体业务。
4、applicationContext中配置注册bean
1)、配置注册helloController
2)、配置处理映射的HandlerMapper
除了prop里面的值自己写以外,其他的都是固定写法。key是访问路径,里面的value是调用处理的bean。
3)、配置视图解析器
除了property里面的值自己写以外,其他的都是固定写法。
5、新建jsp页面,完成跳转的功能
访问web项目时,在端口后面跟的其实不是项目名,而是项目名的一个别名。
不过一般我们把开发时的项目名和访问时的项目名写到一样,建立web项目时默认的也是一样的。
这个名字可以在以下路径中修改和查看
项目名→MyEclipse→Project Facets→Web→Context Root→Web Context-root→访问的项目名
例如此项目,我们改成了SpringMVC03
访问http://localhost/SpringMVC03/hello/a.do
→ 请求到达web.xml
→ web.xml根据类型匹配决定是否访问application.xml
→ 请求到达handlerMapping
→ handlerMapping根据类型匹配确定访问的Controller
→ 匹配到Controller的类型为helloController,去根据helloController的bean的配置访问HelloController类
→ HelloController返回了视图first
→ hello去视图解析器里面根据prefix和suffix确定要返回的具体页面的路径和后缀
→ 此例确定返回的页面是/first.jsp,即返回WebRoot下面的first.jsp页面
得到http://localhost/SpringMVC03/first.jsp,但地址栏还是http://localhost/SpringMVC03/hello/a.do
访问http://localhost/SpringMVC03/hello/*.do都会返回上面的页面
但访问http://localhost/SpringMVC03/hello/*.jsp或*.html等就会返回404错误
导入SpringMVC相关的Jar包到WEB-INF下面的lib目录,包含spring的IOCjar包、webMVC的jar包。
2、在web.xml中配置DispatcherServlet 前端控制器组件
DispatcherServlet组件在SpringMVC中已经提供,只需要配置即可.org.springframework.web.servlet.DispatcherServlet。
<servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 在servlet中把初始化参数加载进去 --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </init-param> <!-- 设置加载的优先级 --> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <!-- *.do后缀匹配模式 --> <url-pattern>*.do</url-pattern> </servlet-mapping>
3、编写Controller组件
建立一个实现 Controller接口的java类。Controller组件负责执行具体的业务方法,可调用其他组件完成具体业务。
package pers.zky.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller; /** * 编写Controller组件 * @author Zky * @version */ public class HelloController implements Controller{ /** * ModelAndView里面封装了我们要返回的视图和数据 */ @Override public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception { System.out.println("进入了HelloController"); return new ModelAndView("first"); } }
4、applicationContext中配置注册bean
1)、配置注册helloController
<bean id="helloController" class="pers.zky.controller.HelloController"></bean>
2)、配置处理映射的HandlerMapper
除了prop里面的值自己写以外,其他的都是固定写法。key是访问路径,里面的value是调用处理的bean。
<bean id="handlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <!-- 在bean中注入要对应的关系 --> <property name="mappings"> <props> <prop key="/hello/hello.do">helloController</prop><span style="font-family: Arial, Helvetica, sans-serif;"> </span> <!-- web.xml里面配置了.do页面的访问模式,故请求到达web.xml后将根据spring的配置转到访问application.xml --> <prop key="/hello/*.do">helloController</prop> <!-- 由于web.xml里面没配置.jsp页面的访问模式,故请求到达web.xml后将终止 --> <prop key="/hello/*.jsp">helloController</prop> </props> </property> </bean>
3)、配置视图解析器
除了property里面的值自己写以外,其他的都是固定写法。
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- prefix前缀 /代表WebRoot目录下面 这下面安全性不高,客户端可以输入地址直接访问 /WEB-INF/代表WebRoot/WEB-INF目录下面 suffix后缀 .jsp代表后缀为.jsp页面 --> <property name="prefix" value="/"></property> <property name="suffix" value=".jsp"></property> </bean>
5、新建jsp页面,完成跳转的功能
访问web项目时,在端口后面跟的其实不是项目名,而是项目名的一个别名。
不过一般我们把开发时的项目名和访问时的项目名写到一样,建立web项目时默认的也是一样的。
这个名字可以在以下路径中修改和查看
项目名→MyEclipse→Project Facets→Web→Context Root→Web Context-root→访问的项目名
例如此项目,我们改成了SpringMVC03
访问http://localhost/SpringMVC03/hello/a.do
→ 请求到达web.xml
→ web.xml根据类型匹配决定是否访问application.xml
→ 请求到达handlerMapping
→ handlerMapping根据类型匹配确定访问的Controller
→ 匹配到Controller的类型为helloController,去根据helloController的bean的配置访问HelloController类
→ HelloController返回了视图first
→ hello去视图解析器里面根据prefix和suffix确定要返回的具体页面的路径和后缀
→ 此例确定返回的页面是/first.jsp,即返回WebRoot下面的first.jsp页面
得到http://localhost/SpringMVC03/first.jsp,但地址栏还是http://localhost/SpringMVC03/hello/a.do
访问http://localhost/SpringMVC03/hello/*.do都会返回上面的页面
但访问http://localhost/SpringMVC03/hello/*.jsp或*.html等就会返回404错误
相关文章推荐
- spring 的权限控制:security
- eclipse maven 导出项目依赖的jar包
- 20非常有用的Java程序片段
- JavaWeb项目开发案例精粹-第2章投票系统-001设计
- 浅析Java中的final关键字
- Jaxb2 实现JavaBean与xml互转
- java 小结 (四)
- Java学习总结---反射
- java 实现两个日期之间所有日期的遍历
- 整理的一些常用的Java日期时间上面的操作
- java编写文件路径用的File.separator和直接打“\\”有什么区别啊?
- Java 里氏替换原则
- java小过
- java数据库操作
- Struts2 实现JSP页面之间的传值
- spring MVC配置详解
- java 小结 (三)
- java设计模式之创建型模式-简单工厂模式
- 使用eclipse开发Android时,打开layout文件闪退
- Java基础------知识点整理(一)