
用Filter吧,它的名字是过滤器,可以批量拦截修改servlet的请求和响应。
我们编写一个EncodingFilterjava,来批量设置请求编码。
package anni; import javaioIOException;
import javaxservletFilter; import javaxservletFilterChain;
import javaxservletFilterConfig; import javaxservletServletException;
import javaxservletServletRequest;
import javaxservletServletResponse;
public class EncodingFilter implements Filter {
public void init(FilterConfig config) throws ServletException {}
public void destroy() {}
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain)
throws IOException, ServletException {
requestsetCharacterEncoding("gb2312");
chaindoFilter(request, response);
}
}
在此EncodingFilter实现了Filter接口,Filter接口中定义的三个方法都要在EncodingFilter中实现,其中doFilter()的代码实现主要的功能:为请求设置gb2312编码并执行chaindoFilter()继续下面的 *** 作。
与servlet相似,为了让filter发挥作用还需要在webxml进行配置。
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>anniEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/</url-pattern>
</filter-mapping>
filter标签部分定义使用的过滤器,filter-mapping标签告诉服务器把哪些请求交给过滤器处理。这里的/表示所有请求,/表示根路径,(星号)代表所有请求,加在一起就变成了根路径下的所有请求。
这样,所有的请求都会先被EncodingFilter拦截,并在请求里设置上指定的gb2312编码。
可用性设计
任何应用程序的可用性基本上由用户决定。界面设计是需多次反复的过程;在为应用程序设计界面时,第一步就设计出非常完美的界面的情况非常少见。用户参与设计过程越早,花的气力越少,创建的界面越好、越可用。
什么是好的界面
设计用户界面时,开始时是先看看 Microsoft 或其他公司的一些卖得很好的应用程序。毕竟,界面很差的应用程序不会卖得很好。将会发现许多通用的东西,比如:工具栏、状态条、工具提示、上下文菜单以及标记对话框。Visual Basic 具有把所有这些东西添加到应用程序中的能力,这并不偶然。
也可以凭借自己使用软件的经验。想一想曾经使用过的一些应用程序,哪些可以工作、哪些不可以以及如何修改它。但要记住个人的喜好不等于用户的喜好,必须把自己的意见与用户的意见一致起来。
还要注意到大多数成功的应用程序都提供选择来适应不同的用户的偏爱。例如,Microsoft Windows“资源管理器”允许用户通过菜单、键盘命令或者拖放来复制文件。提供选项会扩大应用程序的吸引力,至少应该使所有的功能都能被鼠标和键盘所访问。
Windows 界面准则
Windows *** 作系统的主要的优点就是为所有的应用程序提供了公用的界面。知道如何使用基于 Windows 的应用程序的用户,很容易学会使用其他应用程序。而与已创建的界面准则相差太远的应用程序不易让人明了。
菜单就是这方面很好的例子——大多数基于 Windows 的应用程序都遵循这样的标准:“文件”菜单在最左边,然后是“我”、“工具”等可选的菜单,最右边是“帮助”菜单。如果说 Documents 会比 File 更好,或者“帮助”菜单要放在最前,这就值得讨论一下了。没有任何事情阻止您这样做,但这样做会引起用户的混淆,降低应用程序的可用性。每当在应用程序与其他程序之间切换时,用户都不得不停下来想一想。
子菜单的位置也很重要。用户本期望在“我”菜单下找到“复制”、“剪切”与“粘贴”等子菜单,若将它们移到“文件”菜单下会引起用户的混乱。不要偏离已经创建的准则太远,除非有很好的理由这样做。
可用性的检测
测试界面可用性的方法是在整个设计过程中请用户参与。不论是正在设计大型的压缩包应用程序,还是小型的有限使用的应用程序,设计的过程应当完全相同。使用已创建的设计准则,界面设计应从纸上开始。
下一步是创建一个或者多个原型,在 Visual Basic 中设计窗体。还需要增加足够的代码来启动原型:显示窗体、用示例数据填充列表框等等。然后准备可用性测试。
可用性测试可以是个不拘形式的过程:与用户一道审查设计;也可以是在已创建的可用性实验室中进行的正式的过程。这两种方法目的是一样的:从用户那儿了解哪儿设计得很好,哪儿还需要改进的第一手材料。放开,让用户与应用程序在一起,然后观察它们;这种方式比询问用户更为有效。当用户试图完成一系列任务时让他们表达其思考过程:“要想打开新文档,所以要在‘文件’菜单中找一找。”记下哪些地方的界面设计没有反应他们的思考过程。与不同类型的用户一起测试,如果发现用户完成某个特定的任务有困难,该任务可能需要多加关照。
下一步,复查一下记录,考虑如何修改该界面使它更加可用。修改界面并再测试。一旦对应用程序可用性满意,就准备开始编码。在开发的过程中也需要不时地测试来确保对原型的设想是正确的。
功能的可发现性
可用性测试的关键的概念是可发现性。如果用户不能发现如何使用某个功能(或者甚至不知道有此功能存在),则此功能很少有人去使用。例如,Windows 31 的大多数用户都从来不知道 ALT 和 TAB 的组合键可以用于在打开的应用程序之间切换。界面中没有任何地方可提供线索来帮助用户发现这一功能。
为了测试功能的可发现性,不解释如何做就要求用户完成一个任务(例如,使用“窗体模板”创建新文档)。如果他们不能完成这个任务,或者尝试了好多次,则此功能的可发现性还需要改进。
当用户或系统出错时与用户交互
在理想世界里,软件与硬件都会无故障地一直工作下去,用户也从不出错。而现实中错误总是难免的。决定当事情出毛病时应用程序如何响应,是用户界面设计的一部分。
常用的响应是显示一个对话框,要求用户输入应用程序该如何处理这个问题。不太常用(但更好)的响应是简单地解决问题而不打扰用户。毕竟,用户主要关心的是完成任务,而不是技术细节。在设计用户界面时,考虑可能出现的错误,并判断哪一个需要用户交互作用,哪一个可以按事先安排的方案解决 。
创建容易理解的对话框
偶尔应用程序中会出现错误,需要为解决这种情况做出判断。这通常作为代码的分支出现——IfThen 语句或者 Case 语句。如果这个判断需要与用户交互,此问题通常用对话框来提交用户。对话框是用户界面的一部分,像界面的其他部分一样,它们的设计在应用程序可用性中发挥了作用。
一个软件从开始到最后一共需要以下几个流程:
1、计划
2、分析
3、设计
4、编码
5、测试
6、维护
1、计划
对所要解决的问题进行总体定义,包括了解用户的要求及现实环境,从技术、经济和社会因素等3个方面研究并论证本软件项目的可行性,编写可行性研究报告,探讨解决问题的方案,并对可供使用的资源(如计算机硬件、系统软件、人力等)成本,可取得的效益和开发进度作出估计,制订完成开发任务的实施计划。
2、分析
软件需求分析就是对开发什么样的软件的一个系统的分析与设想。它是一个对用户的需求进行去粗取精、去伪存真、正确理解,然后把它用软件工程开发语言(形式功能规约,即需求规格说明书)表达出来的过程。本阶段的基本任务是和用户一起确定要解决的问题,建立软件的逻辑模型,编写需求规格说明书文档并最终得到用户的认可。需求分析的主要方法有结构化分析方法、数据流程图和数据字典等方法。本阶段的工作是根据需求说明书的要求,设计建立相应的软件系统的体系结构,并将整个系统分解成若干个子系统或模块,定义子系统或模块间的接口关系,对各子系统进行具体设计定义,编写软件概要设计和详细设计说明书,数据库或数据结构设计说明书,组装测试计划。在任何软件或系统开发的初始阶段必须先完全掌握用户需求,以期能将紧随的系统开发过程中哪些功能应该落实、采取何种规格以及设定哪些限制优先加以定位。系统工程师最终将据此完成设计方案,在此基础上对随后的程序开发、系统功能和性能的描述及限制作出定义。
3、设计
软件设计可以分为概要设计和详细设计两个阶段。实际上软件设计的主要任务就是将软件分解成模块是指能实现某个功能的数据和程序说明、可执行程序的程序单元。可以是一个函数、过程、子程序、一段带有程序说明的独立的程序和数据,也可以是可组合、可分解和可更换的功能单元。模块,然后进行模块设计。概要设计就是结构设计,其主要目标就是给出软件的模块结构,用软件结构图表示。详细设计的首要任务就是设计模块的程序流程、算法和数据结构,次要任务就是设计数据库,常用方法还是结构化程序设计方法。
4、编码
软件编码是指把软件设计转换成计算机可以接受的程序,即写成以某一程序设计语言表示的“源程序清单”。充分了解软件开发语言、工具的特性和编程风格,有助于开发工具的选择以及保证软件产品的开发质量。
当前软件开发中除在专用场合,已经很少使用二十世纪80年代的高级语言了,取而代之的是面向对象的开发语言。而且面向对象的开发语言和开发环境大都合为一体,大大提高了开发的速度。
5、测试
软件测试的目的是以较小的代价发现尽可能多的错误。要实现这个目标的关键在于设计一套出色的测试用例(测试数据与功能和预期的输出结果组成了测试用例)。如何才能设计出一套出色的测试用例,关键在于理解测试方法。不同的测试方法有不同的测试用例设计方法。两种常用的测试方法是白盒法测试对象是源程序,依据的是程序内部的的逻辑结构来发现软件的编程错误、结构错误和数据错误。结构错误包括逻辑、数据流、初始化等错误。用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果。白盒法和黑盒法依据的是软件的功能或软件行为描述,发现软件的接口、功能和结构错误。其中接口错误包括内部/外部接口、资源管理、集成化以及系统错误。黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。
6、维护
维护是指在已完成对软件的研制(分析、设计、编码和测试)工作并交付使用以后,对软件产品所进行的一些软件工程的活动。即根据软件运行的情况,对软件进行适当修改,以适应新的要求,以及纠正运行中发现的错误。编写软件问题报告、软件修改报告。
一个中等规模的软件,如果研制阶段需要一年至二年的时间,在它投入使用以后,其运行或工作时间可能持续五年至十年。那么它的维护阶段也是运行的这五年至十年期间。在这段时间,人们几乎需要着手解决研制阶段所遇到的各种问题,同时还要解决某些维护工作本身特有的问题。做好软件维护工作,不仅能排除障碍,使软件能正常工作,而且还可以使它扩展功能,提高性能,为用户带来明显的经济效益。然而遗憾的是,对软件维护工作的重视往往远不如对软件研制工作的重视。而事实上,和软件研制工作相比,软件维护的工作量和成本都要大得多。
在实际开发过程中,软件开发并不是从第一步进行到最后一步,而是在任何阶段,在进入下一阶段前一般都有一步或几步的回溯。在测试过程中的问题可能要求修改设计,用户可能会提出一些需要来修改需求说明书等。
以上就是关于有了filter,还需要在界面上设置编码吗全部的内容,包括:有了filter,还需要在界面上设置编码吗、VisualBasic程序设计、软件开发步骤等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)