学会如何运用Servlet变量

ZDNet软件频道 时间:2003-03-05 作者:翻译:Java研究组织-sunsnake |  我要评论()
本文关键词:javatips
如果会话中的管理名称和请求参数/属性引发了隐蔽的程序缺陷并且难以证明,就使用两个界面来控制这些名称。
如果会话中的管理名称和请求参数/属性引发了隐蔽的程序缺陷并且难以证明,就使用两个界面来控制这些名称。

Servlet应用程序界面(API)提供了图形类型方法来存储会话中的值或者从一个请求中获得值。一个字符串做这些值的索引,代码中通常频繁使用特殊的字符串,比如:

String query = request.getParameter(“query”);

Person person = (Person) session.getAttribute(“current_person”);



这种类型的查询会产生问题,有两个原因。第一个原因是这是输入有误而不会察觉到,意思是如果不是网页开始奇怪地运行,那些错误的名称或者拼写是不会被注意到的。没有哪里可以看出来随后的代码中少了一个’e’:

String query = 
request.getParameter_
(“qury”);

或者这段代码包含了不正确的大写:

String query = 
request.getParameter_
(“Query”);

第二个原因是没有请求和会话变量的简易应用文档。

这两个问题都可以通过系统的使用界面控制变量名称来解决,也就是对它们的用途加以注释。例如:

package com.generationjava.application.jobspage;

public interface RequestVars{

//used to get the query field from a search box

static public String QUERY = “query”;

}

and

package com.generationjava.application.jobspage;

public interface SessionVars{

//the currently logged in person

static public String CURRENT_PERSON = “current_person”;

}

这些是打印和被说明的变量的用法:

String query = request.getParameter(RequestVars.QUERY);

Person person = (Person)session.getAttribute(SessionVars.CURRENT_PERSON);

通过坚持这种代码惯例,就会为混乱的请求和会话变量命名世界带来秩序。



责任编辑:炒饭

欢迎评论或投稿


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134