springMVC--入门程序
来源:互联网 发布:淘宝怎么一键铺货 编辑:程序博客网 时间:2024/04/30 00:39
springMVC入门程序
1、创建一个javaweb工程
2、导入spring的jar包
3、配置DispatcherServlet核心分发器(web.xml)
在web.xml配置前端控制器:DispatcherServlet:
<servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 默认加载方式 默认加载必须规范: * 文件命名:servlet-name-servlet.xml====springmvc-servlet.xml * 路径规范:必须在WEB-INF目录下面 --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping>
可以实现现在很流行的REST风格。很多互联网类型的应用很喜欢这种风格的URL。
弊端:会导致静态文件(jpg,js,css)被拦截后不能正常显示。想实现REST风格,事情就是麻烦一些。后面有解决办法还算简单。
拦截/*,这是一个错误的方式,请求可以走到Action中,但转到jsp时再次被拦截,不能访问到jsp。
4、配置handlerMapping映射器
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd "><!-- 处理器映射器 --><!-- 根据bean的name进行查找Handler 将action的url配置在bean的name中 --><!-- 这是一个默认的映射处理器,即使不配置,那么也是默认就是这个 --><bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
5、配置handlerAdapter适配器
//注意:这个适配器不是必须配置的,这是默认的、他在servlet容器已启动就被加载。<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
6、编写一个controller类
public class TestController implements Controller{@Overridepublic ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response) throws Exception {/*** 1.收集参数、验证参数* 2.绑定参数到命令对象* 3.将命令对象传入业务对象进行处理* 4.选择视图*/ModelAndView mv = new ModelAndView();//添加模型数据,那么这个数据可以是任意的POJO对象。mv.addObject("hello","hello world!!");//返回物理视图//mv.setViewName("/WEB-INF/jsps/index.jsp");//返回逻辑视图//mv.setViewName("index");//设置逻辑视图名,视图解析器会根据该名字解析到具体的视图界面mv.setViewName("/WEB-INF/jsps/hello.jsp");return mv;}
7、配置自定义控制器
<!-- 配置自定义controller ,使用beanName:name=”/hello.do”进行进行请求映射匹配--><bean name="/hello.do" class="cn.itcast.test.TestController"></bean>
8、定义一个响应页面
<body>${hello } <br></body>
9、配置视图解析器
使用视图解析器解析逻辑视图,这样更方便,易于扩展。
配置sprigmvc视图解析器:解析逻辑试图
后台返回逻辑试图:index
视图解析器解析出真正物理视图:前缀+逻辑试图+后缀====/WEB-INF/jsps/index.jsp
在springmvc.xml中添加:
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!--逻辑视图前缀--><property name="prefix" value="/WEB-INF/jsps/"></property><!--逻辑视图后缀,匹配模式:前缀+逻辑视图+后缀,形成完整路径名--><property name="suffix" value=".jsp"></property>
10、访问
11、分析程序执行流程
1、 首先用户发送请求http://localhost:9080/springmvc-01/hello——>web容器,web容器根据“/hello”路径映射到DispatcherServlet(url-pattern为/)进行处理;
2、 DispatcherServlet——>BeanNameUrlHandlerMapping进行请求到处理的映射,BeanNameUrlHandlerMapping将“/hello”路径直接映射到名字为“/hello”的Bean
进行处理,即HelloWorldController,BeanNameUrlHandlerMapping将其包装为HandlerExecutionChain(只包括HelloWorldController处理器,没有拦截器)
3、DispatcherServlet——>SimpleControllerHandlerAdapter,SimpleControllerHandlerAdapter将HandlerExecutionChain中的处理器(HelloWorldController)适配为SimpleControllerHandlerAdapter;
4、 SimpleControllerHandlerAdapter——> HelloWorldController处理器功能处理方法的调用,SimpleControllerHandlerAdapter将会调用处理器的handleRequest方法
进行功能处理,该处理方法返回一个ModelAndView给DispatcherServlet;
5、 hello(ModelAndView的逻辑视图名)——>InternalResourceViewResolver,InternalResourceViewResolver使用JstlView,具体视图页面在/WEB-INF/jsp/hello.jsp;
6、 JstlView(/WEB-INF/jsp/hello.jsp)——>渲染,将在处理器传入的模型数据(message=HelloWorld!)在视图中展示出来;
7、 返回控制权给DispatcherServlet,由DispatcherServlet返回响应给用户,到此一个流程结束。
到此HelloWorld就完成了,我们主要进行了如下配置:
1、 前端控制器DispatcherServlet;
2、 HandlerMapping
3、 HandlerAdapter
4、 ViewResolver
5、 处理器/页面控制器
6、 视图
- SpringMVC入门程序(二)
- SpringMVC 入门程序
- springmvc入门程序
- Springmvc入门小程序
- springMVC--入门程序
- springmvc入门程序
- SpringMvc入门小程序
- SpringMVC入门程序
- SpringMVC入门程序
- springmvc入门程序
- springMVC 入门程序 helloworld!
- SpringMVC-入门程序
- springMVC入门程序
- SpringMvc简单入门程序
- springmvc入门程序HelloWord
- Springmvc框架(入门程序)
- springMVC入门程序helloworld
- SpringMVC入门程序
- linux定时删除前几天日志的定时任务
- 第一行安卓代码——活动的生命周期2.4
- js中的正则表达式入门
- MySQL批量SQL插入性能优化
- smarty中section的使用
- springMVC--入门程序
- java 企业网站源码模版 有前后台 springmvc SSM 生成静态化
- Leetcode 217. Contains Duplicate
- 拉格朗日插值查找法-C描述
- android studio获取sha1值
- Android 解决APP字体随系字体大小改变造成的布局错位问题。
- WordPress调用指定分类下的文章
- 自己写一个安卓仿苹果界面的应用
- struts2拦截器实现权限控制