java注册头像_注册页面头像上传的实现(javaweb相关)
注冊頁面頭像上傳的實現:
1. 注冊頁面:register.jsp
兩種方式實現圖片上傳:
pageEncoding="UTF-8"%>
registerbody{
margin-left:700px;
margin-top:100px;
}
table{
width:500px;
height:320px;
border:1px solid #009999;
}
table tr{
border:1px solid #009999;
}
table tr td{
border:1px solid #009999;
text-align:left;
}
/* var xhr;
//1.創建xmlhttprequest(xhr)對象
function checkuser(){
try{
xhr=new XMLHttpRequest();
}catch(e){
xhr=new ActiveXObject("Microsoft.XMLHTTP");
}
//alert(xhr);
//2.設置狀態改變回調函數
xhr.onreadystatechange=cb;
var uname=document.getElementById("uname");
//3.設置請求方式和路徑
//xhr.open("GET","CheckUserServlet?un="+uname.value);
xhr.open("POST","CheckUserServlet");
//如果是post請求必須加上請求頭
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
//4.發送請求
xhr.send("un="+uname.value);
}
//5.處理響應內容
function cb(){
//完成響應
if(xhr.readyState==4){
//成功響應
if(xhr.status==200){
var resText=xhr.responseText;
var msg=document.getElementById("msg");
//alert(resText);
if(resText=="t"){
msg.style.color="red";
msg.innerHTML="此用戶名太受歡迎,請更換一個";
}else{
msg.style.color="green";
msg.innerHTML="恭喜您:賬號可以使用";
}
}
}
//alert(xhr.readyState);
} */
$(function(){
$("#uname").blur(function(){
$.post("CheckUserServlet",{un:this.value},function(resText){
if(resText=="t"){
$("#msg").css("color","red").html("此用戶名太受歡迎,請更換一個");
}else{
$("#msg").css("color","green").html("恭喜您:賬號可以使用");
}
})
})
})
| 創建用戶名: | |
| 創建密碼: | |
| 注冊郵箱: | |
| 地址: | |
| 愛好: | |
| 頭像: | |
2.RegisterServlet:
package com.xintouyun.jweb.servlet;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;
import java.util.UUID;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
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 com.xintouyun.jweb.entity.User;
import com.xintouyun.jweb.service.UserService;
import com.xintouyun.jweb.service.impl.UserServiceImpl;
public class RegServlet extends HttpServlet{
public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException{
// Create a factory for disk-based file items
DiskFileItemFactory factory = new DiskFileItemFactory();
// Configure a repository (to ensure a secure temp location is used)
ServletContext servletContext = this.getServletConfig().getServletContext();
File repository = (File) servletContext.getAttribute("javax.servlet.context.tempdir");
factory.setRepository(repository);
// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);
// Parse the request
try {
User user=new User();
List items = upload.parseRequest(request);
for (FileItem item : items) {
//如果是普通的form元素
if(item.isFormField()) {
String filename=item.getFieldName();
String value=item.getString("utf-8");
//System.out.println("普通form元素"+filename+":"+value);
if(filename.equals("username")) {
user.setUsername(value);
}else if(filename.equals("userpwd")) {
user.setUserpwd(value);
}else if(filename.equals("mail")) {
user.setEmail(value);
}else if(filename.equals("address")) {
user.setAddress(value);
}else if(filename.equals("hobby")) {
user.setHobby(value);
}
}else {
String filename=item.getName();
System.out.println("文件"+filename);
//獲取文件名的后綴
String suffix=filename.substring(filename.lastIndexOf('.'));
//為了防止上傳到服務器中的文件重名,所以在上傳的時候我們可以將文件進行自動生成前綴,只保留后綴,再拼接到一塊的方法,來避免文件重名
UUID uuid=UUID.randomUUID();
String prefix=uuid.toString();
//拼接后的文件名
String savefilename=prefix+suffix;
savefilename=savefilename.replace("-", "");
//System.out.println("要保存的文件名為"+savefilename);
String path=servletContext.getRealPath("/Images");
user.setPhoto(savefilename);
System.out.println("path"+path);
InputStream is=item.getInputStream();
OutputStream os=new FileOutputStream(new File(path+File.separator+savefilename));
byte[] b=new byte[1024];
int len;
while((len=is.read(b))!=-1) {
os.write(b, 0, len);
}
is.close();
os.close();
}
}
System.out.println("userpwd"+user.getUserpwd());
UserService userservice=new UserServiceImpl();
boolean result=userservice.saveUser(user);
if(result) {
//request.getRequestDispatcher("LoginPreServlet").forward(request, response);
response.sendRedirect("LoginPreServlet");
}else {
response.sendRedirect("RegisterPreServlet");
}
} catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException{
this.doPost(request, response);
}
}
3.配置xml文件
4.重啟服務器,瀏覽器訪問
總結
以上是生活随笔為你收集整理的java注册头像_注册页面头像上传的实现(javaweb相关)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 巴适得板是什么意思(四川话巴适得板解释)
- 下一篇: java读取对象失败_jsp excep