package servlet;
import com.google.gson.Gson;
import data.UserBean;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
@WebServlet(name = "RegisterServlet", value = "/register.do")
public class RegisterServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setHeader("Content-type", "text/html;charset=UTF-8");
/*判断request 的请求方式是否为post并且contentType是否以multipart/开头
*
* 如果不是说明是普通的表单提交
* */
if (!ServletFileUpload.isMultipartContent(request)) {
return;
}
/*创建一个DiskFileItemFactory对象,这里我们使用默认配置*/
DiskFileItemFactory factory = new DiskFileItemFactory();
/*创建一个ServletFileUpload对象*/
ServletFileUpload servletFileUpload = new ServletFileUpload(factory);
try {
/*解析request对象,返回FileItem集合*/
List<FileItem> items = servletFileUpload.parseRequest(request);
/*创建一个UserBean 用于封装用户数据*/
UserBean userBean = new UserBean();
/*该集合用于存储提交的爱好数据*/
List<String> hobbyList = new ArrayList<>();
/*遍历FileItem集合*/
for (FileItem item : items) {
String filedName = item.getFieldName();//获取name属性
System.out.println("filedName=" + filedName);
if (item.isFormField()) {
/*处理表单项*/
String value = item.getString("utf-8");
System.out.println("value=" + value);
if (filedName.equals("account")) {
userBean.setAccount(value);
} else if (filedName.equals("pwd")) {
userBean.setPwd(value);
} else if (filedName.equals("gender")) {
userBean.setGender(value);
} else if (filedName.equals("hobbies")) {
hobbyList.add(value);
}
} else {
/*处理文件上传*/
if (filedName.equals("img")) {
/*获取上传文件的名字*/
String fileName = item.getName();
System.out.println("上传的文件名称为:" + fileName);
/*获取后缀名*/
int index = fileName.lastIndexOf(".");
String endWith = fileName.substring(index);
System.out.println("后缀名:" + endWith);
/*重新命名*/
String newFileName = System.currentTimeMillis() + endWith;
System.out.println("新文件名称:" + newFileName);
String path = getServletContext().getRealPath("./") + File.separator + "upload";
/*保存文件*/
File dir = new File(path);
if (!dir.exists()) {
System.out.println("文件夹不存在 创建");
dir.mkdir();
}
String filePath = path + File.separator + newFileName;
File file = new File(filePath);
item.write(file);
userBean.setImg(filePath);
}
}
}
userBean.setHobbies(hobbyList);
System.out.println("注册完成" + userBean.toString());
/*保存注册的数据*/
List<UserBean> userList = (List<UserBean>) getServletContext().getAttribute("userList");
userList.add(userBean);
/*返回注册信息*/
response.getWriter().append("<h1>");
response.getWriter().append("注册成功:" + new Gson().toJson(userBean));
response.getWriter().append("</h1>");
System.out.println("目前注册的用户个数:" + userList.size());
} catch (FileUploadException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
RegisterAndLogin.zip (48个子文件)
RegisterAndLogin
src
servlet
RegisterServlet.java 5KB
InitServlet.java 816B
LoginServlet.java 2KB
data
UserBean.java 1KB
.idea
artifacts
RegisterAndLogin_war_exploded.xml 539B
libraries
commons_fileupload_1_3_3.xml 258B
commons_io_2_6.xml 238B
gson_2_8_5.xml 230B
servlet_api.xml 232B
misc.xml 273B
workspace.xml 35KB
modules.xml 272B
vcs.xml 188B
web
WEB-INF
lib
servlet-api.jar 272KB
commons-fileupload-1.3.3.jar 69KB
commons-io-2.6.jar 210KB
gson-2.8.5.jar 236KB
web.xml 404B
register.jsp 1KB
login.jsp 674B
loginSuccess.jsp 1KB
RegisterAndLogin.iml 1KB
out
artifacts
RegisterAndLogin_war_exploded
WEB-INF
classes
servlet
LoginServlet.class 3KB
InitServlet.class 1KB
RegisterServlet.class 6KB
data
UserBean.class 2KB
lib
servlet-api.jar 272KB
commons-fileupload-1.3.3.jar 69KB
commons-io-2.6.jar 210KB
gson-2.8.5.jar 236KB
web.xml 404B
upload
1532594252896.png 60KB
1532598729052.jpg 35KB
1532596626131.png 60KB
1532598937301.jpg 35KB
1532597642907.png 60KB
1532598361271.png 60KB
1532598757109.jpg 35KB
1532598598602.jpg 35KB
1532597757771.png 60KB
1532598893751.jpg 35KB
register.jsp 1KB
login.jsp 674B
loginSuccess.jsp 1KB
production
RegisterAndLogin
servlet
LoginServlet.class 3KB
InitServlet.class 1KB
RegisterServlet.class 6KB
data
UserBean.class 2KB
共 48 条
- 1
资源评论
XeonYu
- 粉丝: 1983
- 资源: 57
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功