注册页面的逻辑处理bean:doReg.java
其中包括apache上传组件1.2.1的应用
packagehuc.blog.servlet;

importhuc.blog.bean.User;
importhuc.blog.op.UserOp;

importjava.io.File;
importjava.io.IOException;
importjava.util.Date;
importjava.text.SimpleDateFormat;
importjava.util.List;

importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;

importorg.apache.commons.fileupload.FileItem;
importorg.apache.commons.fileupload.FileUploadException;
importorg.apache.commons.fileupload.disk.DiskFileItemFactory;
importorg.apache.commons.fileupload.servlet.ServletFileUpload;


publicclassDoRegextendsHttpServlet...{


/***//**
*
*/
privatestaticfinallongserialVersionUID=1L;

@Override
protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)

throwsServletException,IOException...{
doPost(req,resp);
}

@Override
protectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)

throwsServletException,IOException...{
SimpleDateFormatf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");
Useruser=newUser();
//设置保存上传文件的目录
StringuploadDir=getServletContext().getRealPath("/upload");

if(uploadDir==null)...{
System.out.println("该目录无法访问!");
return;
}

FilefileUploadDir=newFile(uploadDir);


if(!fileUploadDir.exists())...{

if(!fileUploadDir.mkdir())...{
System.out.println("无法创建目录!");
return;
}
}

//RequestContextrequestContext=newServletRequestContext(req);
//判断表单中是否为multipart/form-data类型的数据,非则终止

if(!ServletFileUpload.isMultipartContent(req))...{
System.out.println("不能处理非multipart/form-data类型的数据!");
return;
}

//创建DiskFileItemFactory对象,并进行一些设置
DiskFileItemFactoryfactory=newDiskFileItemFactory();
//设置直接能够存储的最大文件量,超出后采用临时文件缓存
factory.setSizeThreshold(1024*1024);//以字节为单位

/**//*Setsthedirectoryusedtotemporarilystorefilesthat
*arelargerthantheconfiguredsizethreshold.
*默认为tomcat的安装目录 emp下
*/
//factory.setRepository(java.io.Filerepository);

ServletFileUploadupload=newServletFileUpload(factory);
//设置最多上传的数据量
upload.setSizeMax(1024*1024*10);

/***//**
*Specifiesthecharacterencodingtobeused
*whenreadingtheheadersofindividualpart.
*Whennotspecified,ornull,therequestencodingisused.
*Ifthatisalsonotspecified,ornull,theplatformdefaultencodingisused.
*/
//upload.setHeaderEncoding("UTF-8");

List<?>items=null;
//得到表单字段的集合

try...{

items=upload.parseRequest(req);


}catch(FileUploadExceptione)...{
e.printStackTrace();
}

for(Objectitem:items)...{

FileItemfileItem=(FileItem)item;
//DetermineswhetherornotaFileIteminstancerepresentsasimpleformfield.

if(fileItem.isFormField())...{

//ReturnsthecontentsofthefileitemasaString,usingthespecifiedencoding.
Stringcontent=fileItem.getString("UTF-8");
StringfieldName=fileItem.getFieldName();


if(fieldName.equals("userName"))...{
user.setUserName(content);

}elseif(fieldName.equals("nickName"))...{
user.setNickName(content);

}elseif(fieldName.equals("userPass"))...{
user.setUserPass(content);

}elseif(fieldName.equals("email"))...{
user.setEmail(content);

}elseif(fieldName.equals("city"))...{
user.setCity(content);

}elseif(fieldName.equals("spaceName"))...{
user.setSpaceName(content);
}

}else...{
//Returnstheoriginalfilenameintheclient'sfilesystem,
//asprovidedbythebrowser(orotherclientsoftware).
Stringsource=fileItem.getName();

//如果没有选择文件,则不进行处理

if(source.trim().equals(""))...{
continue;
}

//得到上传的文件名
intpos=source.lastIndexOf("/");
StringfileName=source.substring(pos+1);
Filefile=newFile(uploadDir,fileName);

//writeanuploadeditemtodisk

try...{
fileItem.write(file);

}catch(Exceptione)...{
e.printStackTrace();

}finally...{
//Deletestheunderlying(潜在的)storageforafileitem,
//includingdeletinganyassociatedtemporarydiskfile
fileItem.delete();
}
}
}
Datedate=newDate();
user.setRegDate(f.format(date));
user.setUpdateTime(f.format(date));

UserOpuserOp=newUserOp();


if(!userOp.checkNotExist(user))...{
Stringmsg="该用户已存在,请重新填写!";
req.setAttribute("msg",msg);
req.getRequestDispatcher("../reg.jsp").forward(req,resp);
return;
}

if(userOp.add(user))...{
req.setAttribute("info","success");
req.getRequestDispatcher("../reginfo.jsp").forward(req,resp);

}else...{
req.setAttribute("info","failed");
req.getRequestDispatcher("../reginfo.jsp").forward(req,resp);
}
}

}































































































































































































