ZKX's LAB

struts2和springmvc有什么区别 如果要实现struts2的数据校验功能

2020-07-23知识7

面试的时候Struts2面试官一般会出什么问题? 转载自:Struts2的工作原理一、说说Struts2的工作流程1、Struts 2框架本身大致可以分为3个部分:核心控制…struts2 是什么?有什么作用 作为web层框架应该大体实现以下功能:1.获取表单内容,并组织生成参数对象 2.根据请求的参数转发请求给适当的控制器 3.在控制器中调用业务接口 4.将业务接口返回的结果包装。struts2和springmvc有什么区别 从Struts2的发展过程来看,Struts2继承了Struts与WebWork的血脉,Struts2取两者之精华,形成新德框架,但是struts2还是更多的继承了struts的设计思想,并加入了WebWork的优点。在了解Struts2体系之前,让我们先看看struts2对struts做了哪些修改。Struts2与struts的不同主要体现在以下几个方面。(1)Action类1》在struts中都是使用抽象类编程而不是接口,因此他要求开发Action类继承一个抽象的基类,如DispatchAction等。2》Struts2则基于接口编程,我们的Action类可以实现一个Action接口,使可选和定制的服务成为可能。Struts2提供一个ActionSupport基类去实现常用的接口。更加强大的是,在struts2中Action接口不是必需的,任何有execute()函数的pojo对象都可以用作struts2的Action类来使用。(2)线程模式1》struts的Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求。单列策略限制了struts Action能做的事,并且要在开发时特别小心,Action资源必须是线程安全的或同步的;2》struts2的Action对象为每一个请求产生一个实例,因此没有线程安全问题。(3)Servlet依赖1》struts的Action依赖于Servlet API,当一个Action被调用时。请介绍一下struts2中输入校验的实现方法有哪些 struts中提供两种校验方法:硬编码和校验框架;硬编码就是直接写validate()进行验证,validate()方法对应execute()方法。在action里也可以重新定义method方法,这样在对应的逻辑处理类中直接定义该方法对应的validate()方法。如定义了方法abc()public String abc(){System.out.print(\"hello\");return SUCCESS;}public void validateAbc(){/方法名为validate+方法名(第一个字母大写)System.out.println(\"vailidate abc\");首先执行validateAbc(),再执行validate()方法,再在执行abc();解决方法有两个:一是去掉validate()方法;二是将validate()方法重命名为validateExecute();}public void validate(){if(null=username|username.length()|username.length()>;10){表单中只显示FILED级别的错误信息,不显示ACTION级别的错误信息两种验证,FILEDERROR存放在MAP中会在标签库中显示,而actionerror是存放在LIST里,不会在标签库默认显示,所以页面中不会有错误提示this.addFieldError(\"username\",\"username invalid\");this.addActionError(\"username invalid\");}if(null=password|password.length()|password.length()>;10){this.addFieldError(。为什么要使用Struts2的 Struts2 是一个相当强大的Java Web开源框架,是一个基于POJO的Action的MVC Web框架。它基于当年的Webwork和XWork框架,继承其优点,同时做了相当的改进。1.Struts2基于MVC架构,框架结构清晰,开发流程一目了然,开发人员可以很好的掌控开发的过程。2使用OGNL进行参数传递。OGNL提供了在Struts2里访问各种作用域中的数据的简单方式,你可以方便的获取Request,Attribute,Application,Session,Parameters中的数据。大大简化了开发人员在获取这些数据时的代码量。3强大的拦截器Struts2 的拦截器是一个Action级别的AOP,Struts2中的许多特性都是通过拦截器来实现的,例如异常处理,文件上传,验证等。拦截器是可配置与重用的,可以将一些通用的功能如:登录验证,权限验证等置于拦截器中以完成一些Java Web项目中比较通用的功能。在我实现的的一Web项目中,就是使用Struts2的拦截器来完成了系统中的权限验证功能。4易于测试Struts2的Action都是简单的POJO,这样可以方便的对Struts2的Action编写测试用例,大大方便了5Java Web项目的测试。易于扩展的插件机制在Struts2添加扩展是一件愉快而轻松的事情,只需要将所需要的Jar包放到WEB-INF/lib文件夹中,在struts.xml。struts2连接数据库实现用户注册与登录 DOCTYPEhtml PUBLIC \"-//W3C//DTDHTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">;html;。Struts2中自定义Action三种方法中,都在啥时候用? ActionSupport类是一个工具类,它已经实现了Action接口。除此之外,它还实现了Validateable接口,提供了数据校验功能。通过继承该ActionSupport类,可以简化Struts 2的Action开发。在Validatable接口中定义了一个validate()方法,重写该方法,如果校验表单输入域出现错误,则将错误添加到ActionSupport类的fieldErrors域中,然后通过OGNL表达式负责输出。

#struts2#validate#struts2标签#线程安全

随机阅读

qrcode
访问手机版