已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第16章Spring的其他功能 16 1Spring的Web框架 16 2定时器的应用 16 1Spring的Web框架 16 1 1第一个Spring的MVC应用本节实例将要达到的效果非常简单 在 index jsp 中输入字符串 单击 提交 按钮 在结果页面 showMessage jsp 页面显示输入的字符串 如图16 1和图16 2所示 图16 1输入页面图16 2输出页面 16 1 1第一个Spring的MVC应用 1 建立Web项目在MyEclipse中建立Web项目 命名为 Spring MVC 2 添加Spring所需类库本例中 因为应用Spring的Web框架 所以不仅要把Spring的核心类库添加进来 还要导入Spring的Web类库 右击项目名 依次选择 BuildPath AddLibraries 弹出如图16 3所示的对话框 图16 3AddLibrary对话框 16 1 1第一个Spring的MVC应用 选中 MyEclipseLibraries 单击 Next 按钮 跳转到如图16 4所示的界面 供程序员选择所需的类库 选择 Spring2 5CoreLibraries 及 Spring2 5WebLibraries 单击 Finish 按钮 完成类库的添加 图16 4选择所需类库 16 1 1第一个Spring的MVC应用 3 编写web xml文件编写web xml文件 代码编写为 web xml配置文件解析如下 是XML的头 描述文件的字符编码及版本 紧跟后面的内容是一些Web程序部署描述格式 该例用的是2 5版本 用于定义一个Servlet 是为Servlet起的一个名称 指定定义Servlet的具体实现类 是的属性 用于定义Servlet的初始化参数 这里指定要初始化WEB INF下的 spring servlet xml 如果该配置文件的命名方式为 serlvet name servlet xml 这里的 servlet name 是Servlet的名称 则可以不定义该初始化参数 Spring默认会处理这个配置文件 例如 本例的配置文件为 spring servlet xml 故可以不配置该参数 16 1 1第一个Spring的MVC应用 是的属性 指定当Web启动时 加载Servlet的顺序 当它的值大于等于0时 Servlet容器先加载数值小的Servlet 若它的值小于0或没有设定 则Servlet容器将在Web首次访问时加载这个Servlet 用于指定访问Servlet的URL URL的值是由指定的 16 1 1第一个Spring的MVC应用 4 建立Spring配置文件在WEB INF文件夹下新建名为spring servlet xml的文件 内容 spring servlet xml是Spring的核心配置文件 其中 urlMappingURL映射和viewResolver视图解析是Spring应用中必须配置的 当然也可以使用其他的配置方法 而 hello Bean就是控制类 可以看到 在urlMapping中进行了url映射 hello do 请求将会由 hello Bean负责处理 在viewResolver中配置了 jsp为解析的视图 16 1 1第一个Spring的MVC应用 5 创建HelloWorldForm java文件在项目src下 创建org form包 在该包中创建 HelloWorldForm java 类文件 该类是POJO类 用来存储表单提交的信息 内容如下 packageorg form publicclassHelloWorldForm 存储页面的表单信息privateStringmessage publicStringgetMessage returnmessage publicvoidsetMessage Stringmessage this message message 16 1 1第一个Spring的MVC应用 6 创建控制器类HelloWorldController java在项目src下 创建org controller包 在该包中新建HelloWorldController java类文件 该类作为控制器 是表单提交的处理类 相当于Struts2中的Action类 该类代码编写 HelloWorldController控制类 继承了AbstractCommandController 当有请求提交时 执行HelloWorldController控制类的handle方法 该方法返回一个模型视图 ModelAndView 该模型视图 可以是具体文件 也可以是直接跳转 这里 返回视图showMessage jsp 同时在request中存储了helloworldform参数 16 1 1第一个Spring的MVC应用 7 编写输入页面index jsp编写输入页面index jsp 内容如下 HelloWorld 16 1 1第一个Spring的MVC应用 8 编写输出页面showMessage jsp在WebRoot文件夹下 新建showMessage jsp 内容如下 16 1 2SpringMVC的控制器 Spring控制器负责调用模型层来处理工作 Spring定义了一个接口org springframework web servlet mvc Controller 所有Spring提供的控制器和开发人员自己实现的控制器都必须实现这个接口 该接口的代码如下 publicinterfaceController ModelAndViewhandleRequest HttpServletRequestrequest HttpServletResponseresponse throwsException 16 1 2SpringMVC的控制器 1 表单控制器 SimpleFormController 表单控制器SimpleFormController继承了AbstractCommandController 该类中提供了3个onSubmit 方法 分别有不同的参数 根据程序员的不同需求来覆盖不同的onSubmit 方法 该类中不同onSubmit 方法的代码为 在HelloWorld实例中 若使用该控制器 则代码可修改为 配置文件spring servlet xml中要应用该控制器 定义控制器的Bean代码修改为 showMessage 16 1 2SpringMVC的控制器 2 多动作控制器 MultiActionController 在很多情况下 页面的表单中有多个提交按钮 若用其他的控制器就必须增加很多的判断代码 Spring提供了多动作控制器 可以很方便地解决这一问题 例如 在HelloWorld实例中输入页面修改为 HelloWorld 16 1 2SpringMVC的控制器 上面页面的表单中有多个按钮 提交后控制器根据不同的动作来决定要使用哪个处理方法 控制器代码实现为 在配置文件中进行配置 spring servlet xml代码实现为 显示页面showMessage jsp代码为 16 1 2SpringMVC的控制器 部署该项目 启动Tomcat服务器 在浏览器中输入 http localhost 8080 Spring MVC index jsp 出现如图16 5所示的界面 在输入框中输入 HelloWorld 单击 insert 按钮 出现如图16 6所示的界面 图16 5程序运行初界面图16 6单击 insert 的输出界面 16 1 2SpringMVC的控制器 应用了控制器中的 insert 方法 单击 update 按钮 出现如图16 7所示的界面 可以看出 应用了控制器中的 update 方法 单击 delete 按钮 出现如图16 8所示的界面 可以看出 应用了控制器中的 delete 方法 图16 7单击 update 的输出界面图16 8单击 delete 的输出界面 16 1 3SpringMVC的分发器 在程序的web xml文件中 配置了一个Servlet 代码为 Servlet的实现类就是SpringMVC的分发器类 根据配置 所有以 do 结尾的请求都会由DispatcherServlet处理 当然也可以将 do 改为 form 或其他形式 这样以 form 结尾的请求就会被分发器处理 中的value指定的值为初始化参数 也可以指定多个配置文件 用 隔开即可 分发器的工作流程 当DispatcherServlet接收到请求后 首先搜索WebApplicationContext 并将它绑定到请求的一个属性上 以便控制器能够使用WebApplicationContext 接着会绑定本地化的信息 主题信息等信息 然后会搜索合适的处理器 并准备ModelAndView 业务逻辑处理完毕后 根据WebApplicationContext中绑定的视图信息显示对应的视图 16 1 4数据绑定 建立Web工程 命名为Spring Login 添加Spring的类库 核心类库及Web类库 修改web xml 代码为 index jsp页面代码为 模型类User java代码为 控制器SimpleController java代码为 该文件的setErrorPage 中设置了一个formView 是SimpleFormController的默认页面 也可以在配置文件中注入formView 如果没有设置该值 那么请求转交到该控制器后就会寻找simpleController jsp error的rejectValue Stringfield StringerrorCode StringdefaultMessage 方法是返回错误的相关信息 第一个参数为绑定的属性名称 第二个参数为错误信息代码 从资源文件中获取 第三个是默认错误信息 如果没有从资源文件中获取信息 则返回默认信息 配置文件spring servlet xml代码为 16 1 4数据绑定 创建成功页面success jsp 代码编写为 SpringMVC实例登录成功 欢迎您 16 1 4数据绑定 部署项目 启动Tomcat服务器 由于用到了Spring的标签 所以不能直接运行JSP文件 故需要运行 do 在浏览器中直接输入 http localhost 8080 Spring Login login do 会出现如图16 9所示的界面 因为设置了默认页面为index jsp 所以第一次访问时就会跳转到默认页面 输入用户名和密码 单击 提交 按钮 跳转到如图16 10所示的成功界面 读者可以自己验证 直接提交页面 就会回到原页面 并显示错误信息 图16 9程序运行首页面图16 10成功页面 16 1 4数据绑定 在绑定页面index jsp中应用了标签来绑定一个 path 属性表示要绑定的对象的名称 这个是在控制器类中指定的 publicSimpleController this setCommandClass User class 表明与User对象绑定 SimpleFormController中默认的commandName是command 所以在页面中应用了 command username 及 command password 来绑定User类的 username 属性及 password 属性 也可以自己设置commandName 只需把上面的代码改写为 publicSimpleController this setCommandName user this setCommandClass User class 则index jsp代码需要改写为 16 1 5Validator应用 在前一节中 应用了数据绑定的方法进行数据的验证 在Spring中还可以通过验证器进行验证 Spring提供了Validator接口来实现验证器的实现 该接口的代码如下 publicinterfaceValidator booleansupports Classclazz voidvalidate Objecttarget Errorserrors 该接口第一个方法supports 用于返回参数中的类是否支持该验证器 如果支持 执行validate 方法进行验证 validate 方法的第一个参数表示表单对象 实际上是对应一个实体类 第二个参数是对验证错误信息的回传 同数据绑定相同 可以使用rejectValue 方法返回相关的错误信息 例如 可以把控制器SimpleController java修改为 去掉所有的验证代码 并编写UserValidator java验证器类 该类实现Validator接口 代码实现为 编写完验证器类后 要在配置文件中进行相关配置 spring servlet xml文件修改为 16 2定时器的应用 16 2 1使用程序启动Timer定时器创建定时器非常简单 首先创建一个任务类 实现定时要执行的任务 然后创建一个主方法类 来定时执行任务 例如 在程序中有这样一个任务类 packageorg time importjava util TimerTask publicclassMainTaskextendsTimerTask publicvoidrun 这里只输出一句话 在程序中该处就编写要定时执行的任务System out println 该句是定时执行的 16 2 1使用程序启动Timer定时器 然后编写主方法类 代码如下 packageorg time importjava util Timer publicclassMainTest publicstaticvoidmain String ar
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB-T 36030-2018制药机械(设备)在位清洗、灭菌通 用技术要求专题研究报告
- 调味品品评师岗前班组建设考核试卷含答案
- 2025年大学二年级脑机接口工程专业《脑科学基础》期末考试测验卷及答案
- 宠物健康护理员安全防护模拟考核试卷含答案
- 家用音频产品维修工安全培训测试考核试卷含答案
- 《GB-T 40894-2021化妆品中禁用物质甲巯咪唑的测定 高效液相色谱法》专题研究报告
- 湖盐采掘工职业健康、安全、环保技术规程
- 公司射孔取心工岗位应急处置技术规程
- 石英玻璃制品加工工班组安全模拟考核试卷含答案
- 《GBT 3810.16-2016 陶瓷砖试验方法 第 16 部分:小色差的测定》专题研究报告
- 速效救心丸不良反应分析-洞察分析
- 2013年北大核心期刊目录
- 巴特综合征医学课件
- 中建质量样板策划实施方案
- 会计案例分析-终结性考核-国开(SC)-参考资料
- 小王子(中英文对照版)
- 2024年大型风力发电项目EPC总承包合同
- 2024年时事政治考试100题及参考答案
- 中国融通集团招聘笔试题库2024
- 西方音乐史智慧树知到期末考试答案章节答案2024年四川音乐学院
- 初中《心理健康教育》全册教学设计
评论
0/150
提交评论