我在项目中发现:在控制页面,使用request.getAttribute() 来获取 显示页面中form 的数据,感觉很奇怪,因为form 表单中的数据只能通过 request.getParameter()来获取,为什么在我们的系统中可以使用 request.getAttribute() 获取form中的数据呢?经过一番分析,有以下发现:
一、在系统中的控制页面,有一个对操作权限检测的方法,在这个方法里面,就把表单中的数据做了处里,以下是处理的方法:
Enumeration en = request.getParameterNames ( ) ;
while (en.hasMoreElements ( ))
{
String strName = (String) en.nextElement ( ) ;
String strValue = request.getParameter ( strName ) ;
String lowerCaseName = strName.toLowerCase();
if (iToChinese == 1)
{
strValue = DataFormat.toChinese ( strValue ) ;
}
if (request.getAttribute ( strName ) == null)
{
request.setAttribute ( strName , strValue ) ;
if (iToChinese == 1)
{
log4j.info ( "====== request.parameter < " + strName + " : " + request.getAttribute ( strName ) + " >" ) ;
m_CurrentAllURL.append("&" + strName + "=" + request.getAttribute ( strName ));
}
}
}
二、需要说明的是:上述代码中有冗余代码,但是不影响大家的学习。