setinfo.jsp
开头依旧是这些,记得把user取出来
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@include file="loginJudge.jsp" %>
<%
User user = (User) session.getAttribute("user");
%>
要提交的东西用form都包起来~
action提交到dosetinfo.jsp
性别那里是两个单选按钮
要记住每个input的name哟
<form id="form2" name="form2" method="post" action="dosetinfo.jsp" enctype="multipart/form-data">
<table width="250" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100" height="30" align="right">真实姓名:</td>
<td><%=user.getRealName() %></td>
</tr>
<tr>
<td height="30" align="right">性别:</td>
<td><label>
<input type="radio" name="gender" value="男" />
男
<input type="radio" name="gender" value="女" />
女
</label></td>
</tr>
<tr>
<td height="30" align="right">年龄:</td>
<td><input name="age" type="text" class="inputTextW110H22" /></td>
</tr>
<tr>
<td height="30" align="right">地址:</td>
<td><input name="address" type="text" class="inputTextW110H22" /></td>
</tr>
<tr>
<td height="30" align="right">电话:</td>
<td><input name="phone" type="text" class="inputTextW110H22" /></td>
</tr>
<tr>
<td height="30" align="right">上传头像:</td>
<td><input name="header" type="file" class="inputTextW110H22" /></td>
</tr>
<tr>
<td height="30" colspan="2" align="center"><label>
<input type="image" name="imageField2" src="images/finish.jpg" />
</label></td>
</tr>
</table>
</form>
dosetinfo.jsp
com.jspsmart.upload.*是用来上传下载文件的,这里实现了这个功能
取user
初始化上传对象SmartUpload类的
初始化上传数据,数据在pageContext里
upload()准备上传
用RenameFile()中的rename()获取新的以当前时间(到毫秒)命名的文件名
获取要上传文件的后缀名getFiles().getFile(0).getFileExt()
设置文件新名称,用名字加上后缀
直接组出图片在数据库中的相对位置 headerimg/名字
获取头像文件在系统中的保存位置headerImgPath = this.getServletContext().getRealPath("/") + "headerimg/" + headerImgName;
保存文件 sp.getFiles().getFile(0).saveAs(headerImgPath)
然后从request中得到各个属性的值
声明user对象,存到user里
然后声明userDAO对象,更新user
再在session中更新user
然后重定向到showinfo.jsp
<%@ page language="java" import="java.util.*,cn.edu.model.*,cn.edu.dao.*,cn.edu.util.*,com.jspsmart.upload.*" contentType="text/html; charset=UTF-8" pageEncoding="GB18030"%>
<%@include file="loginJudge.jsp"%>
<%
User user = (User) session.getAttribute("user");
%>
<%
// 1. 初始化上传对象
SmartUpload sp = new SmartUpload();
// 2. 初始化上传数据
sp.initialize(pageContext);
// 3. 准备上传
sp.upload();
// 4. 获取新的文件名称
String fileName = new RenameFile().rename();
// 5. 获取上传文件的后缀名称;如:上传文件名称为suolun.jpg。这里拿到的ext是:jpg
String ext = sp.getFiles().getFile(0).getFileExt();
// 6. 设置文件新名称---20140102145324180 + . + jpg = 20140102145324180.jpg
String headerImgName = fileName + "." + ext;
// 7. 组装在数据库中图片的相对位置
String headerImg = "headerimg/" + headerImgName;
// 8. 获取头像文件在系统中的保存位置
String headerImgPath = this.getServletContext().getRealPath("/") + "headerimg/" + headerImgName;
// 9. 保存文件
sp.getFiles().getFile(0).saveAs(headerImgPath);
//request.setCharacterEncoding("utf-8");
String gender=sp.getRequest().getParameter("gender");
String age=sp.getRequest().getParameter("age");
int ageint=0;
if(age != null)
ageint=Integer.parseInt(age);
String address=sp.getRequest().getParameter("address");
String phone=sp.getRequest().getParameter("phone");
UserDAO udao=new UserDAO();
user.setGender(gender);
user.setAge(ageint);
user.setAddress(address);
user.setPhone(phone);
user.setHeaderImg(headerImg);
udao.updateUser(user);
session.setAttribute("user",user);
response.sendRedirect("showinfo.jsp");
%>
这个类是自己写的,用来根据当前时间为文件命名
RenameFile.java
package cn.edu.util;
import java.text.SimpleDateFormat;
import java.util.Date;
/*
* 获取文件名称的类
*/
public class RenameFile {
/*
* 调用方法返回文件新的按照时间命名的名称
*/
public String rename(){
return new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
}
}
showinfo.jsp
这页主要用来展示修改后的信息
从user中取出来
<%=user.getUsername() %>
********
<%=user.getRealName() %>
%=user.getGender() %>
<%=user.getAge() %>
<%=user.getAddress() %>
<%=user.getPhone() %>
<table width="900" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="900" valign="top"><table width="900" border="0" cellpadding="0" cellspacing="1" bgcolor="#dddddd">
<tr>
<td height="350" align="center" bgcolor="#fcfcfc"><table width="500" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><table width="500" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="10"><img src="images/topleft.gif" width="10" height="28" /></td>
<td width="480" bgcolor="#ddddcc">设置用户信息</td>
<td width="10"><img src="images/topright.gif" width="10" height="28" /></td>
</tr>
</table></td>
</tr>
<tr>
<td><table width="500" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="1" bgcolor="#ddddcc">
</td>
<td width="498" height="250" align="center">
<table width="250" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100" height="30" align="right">用户名:</td>
<td><%=user.getUsername() %></td>
</tr>
<tr>
<td width="100" height="30" align="right">密码:</td>
<td>********</td>
</tr>
<tr>
<td width="100" height="30" align="right">真实姓名:</td>
<td><%=user.getRealName() %></td>
</tr>
<tr>
<td height="30" align="right">性别:</td>
<td><%=user.getGender() %></td>
</tr>
<tr>
<td height="30" align="right">年龄:</td>
<td><%=user.getAge() %></td>
</tr>
<tr>
<td height="30" align="right">地址:</td>
<td><%=user.getAddress() %></td>
</tr>
<tr>
<td height="30" align="right">电话:</td>
<td><%=user.getPhone() %></td>
</tr>
</table>
</td>
<td width="1" bgcolor="#ddddcc">
</td>
</tr>
</table></td>
</tr>
<tr>
<td height="5" bgcolor="#ddddcc">
</td>
</tr>
</table></td>
</tr>
</table></td>
<td> </td>
<td></td>
</tr>
</table></td>
</tr>
</table>