jsp实现仿QQ空间新建多个相册名称并向相册中添加照片功能

发布时间 - 2026-01-11 00:36:14    点击率:

工具:Eclipse,Oracle,smartupload.jar;语言:jsp,Java;数据存储:Oracle。

实现功能介绍:

主要是新建相册,可以建多个相册,在相册中添加多张照片,删除照片,删除相册,当相册下有照片时先删除照片才能删除相册。

因为每个相册和照片要有所属人,所以顺带有登录功能。

声明:只是后端实现代码,前台无任何样式,代码测试可行,仅供参考。

代码:

数据库连接帮助类:

public class JDBCHelper { 
 public static final String DRIVER = "oracle.jdbc.driver.OracleDriver"; 
 public static final String URL = "jdbc:oracle:thin:@localhost:1521:xxxx"; 
 public static final String DBNAME = "scott"; 
 public static final String PASSWORD = "xxxx"; 
 public static Connection getConn() throws Exception{ 
 Class.forName(DRIVER); 
 Connection conn = DriverManager.getConnection(URL, DBNAME, PASSWORD); 
 return conn; 
 } 
} 

图片上传时,要修改图片名称,防止上传重名图片将上一张覆盖,这里的做法是将图片名改为由用户ID和精确到毫秒的时间组成,修改图片名的帮助类:

public class PhotoName { 
 private String ip; 
 public PhotoName(String ip) { 
 super(); 
 this.ip = ip; 
 } 
 public String getIp() { 
 return ip; 
 } 
 public void setIp(String ip) { 
 this.ip = ip; 
 } 
 public String getTime(){ 
 Date date = new Date(); 
 DateFormat df = new SimpleDateFormat("yyyyMMddHHmmssSSS"); 
 return df.format(date); 
 } 
 public String getPhotoName(){ 
 return this.ip + this.getTime(); 
 } 
} 

实现所有这些的接口类:

public interface UpDAO { 
 /** 
 * 创建相册名称 
 * 
 */ 
 public int creAlbum(AlbumPOJO ap); 
 /** 
 *显示所创建的所有相册名称 
 */ 
 public List<AlbumPOJO> findAllAlbum(int id); 
 public List<PhotoPOJO> findAllPhoto(int id); 
 /** 
 * 上传照片 
 */ 
 public int upPhoto(PhotoPOJO pp); 
 /** 
 * 删除相册 
 * @param id 相册id 
 * @return 
 */ 
 public int delAlbum(int id); 
 /** 
 * 删除照片 
 * @param id 照片id 
 * @return 
 */ 
 public int delPhoto(int id); 
 /** 
 * 登录 
 * @param username 
 * @param password 
 * @return 
 */ 
 public UserPOJO login(String username,String password); 
} 

接口的具体实现类:

public class UpDAOImpl implements UpDAO { 
 /* (non-Javadoc) 
 * @see cn.jvsun.DAO.UpDAO#creAlbum(cn.jvsun.POJO.AlbumPOJO) 
 * 创建相册名称 
 */ 
 public int creAlbum(AlbumPOJO ap) { 
 int albumNum=this.getAlbumNum(); 
 Connection conn = null; 
 PreparedStatement pstate = null; 
 try { 
  conn=JDBCHelper.getConn(); 
  conn.setAutoCommit(false); 
  String sql="insert into album(id,a_name,user_id)values(?,?,?)"; 
  pstate = conn.prepareStatement(sql); 
  pstate.setInt(1, albumNum); 
  pstate.setString(2,ap.getA_name()); 
  pstate.setInt(3, ap.getUser_id()); 
  pstate.execute(); 
  conn.commit(); 
 } catch (Exception e) { 
  e.printStackTrace(); 
  try { 
  conn.rollback();//出问题就撤回,全不提交 
  } catch (SQLException e1) { 
  e1.printStackTrace(); 
  } 
 }finally{ 
  try { 
  pstate.close(); 
  conn.close(); 
  } catch (SQLException e) { 
  e.printStackTrace(); 
  } 
 } 
 return albumNum; 
 } 
 /* (non-Javadoc) 
 * @see cn.jvsun.DAO.UpDAO#upPhoto(java.lang.String, java.lang.String, int) 
 * 上传照片 
 */ 
 public int upPhoto(PhotoPOJO pp) { 
 int pNum=this.getPhotoNum(); 
 Connection conn = null; 
 PreparedStatement pstate = null; 
 try { 
  conn=JDBCHelper.getConn(); 
  conn.setAutoCommit(false); 
  String sql="insert into photo(id,p_name,p_url,p_albumid)values(?,?,?,?)"; 
  pstate = conn.prepareStatement(sql); 
  pstate.setInt(1, pNum); 
  pstate.setString(2,pp.getP_name()); 
  pstate.setString(3, pp.getP_url()); 
  pstate.setInt(4, pp.getP_albumId()); 
  pstate.execute(); 
  conn.commit(); 
 } catch (Exception e) { 
  e.printStackTrace(); 
  try { 
  conn.rollback();//出问题就撤回,全不提交 
  } catch (SQLException e1) { 
  e1.printStackTrace(); 
  } 
 }finally{ 
  try { 
  pstate.close(); 
  conn.close(); 
  } catch (SQLException e) { 
  e.printStackTrace(); 
  } 
 } 
 return pNum; 
 } 
 /* (non-Javadoc) 
 * @see cn.jvsun.DAO.UpDAO#delAlbum(int) 
 * 删除相册 
 */ 
 public int delAlbum(int id) { 
 int result=0; 
 Connection conn = null; 
 PreparedStatement pstate = null; 
 String sql="delete from album where id="+id+""; 
 try { 
  conn=JDBCHelper.getConn(); 
  pstate = conn.prepareStatement(sql); 
  result=pstate.executeUpdate(); 
 } catch (SQLException e) { 
  e.printStackTrace(); 
 } catch (Exception e) { 
  // TODO Auto-generated catch block 
  e.printStackTrace(); 
 }finally{ 
  try { 
  pstate.close(); 
  conn.close(); 
  } catch (SQLException e) { 
  // TODO Auto-generated catch block 
  e.printStackTrace(); 
  } 
 } 
 return result; 
 } 
 /* (non-Javadoc) 
 * @see cn.jvsun.DAO.UpDAO#delPhoto(int) 
 * 删除照片 
 */ 
 public int delPhoto(int id) { 
 int result=0; 
 Connection conn = null; 
 PreparedStatement pstate = null; 
 String sql="delete from photo where id="+id+""; 
 try { 
  conn=JDBCHelper.getConn(); 
  pstate = conn.prepareStatement(sql); 
  result=pstate.executeUpdate(); 
 } catch (SQLException e) { 
  e.printStackTrace(); 
 } catch (Exception e) { 
  // TODO Auto-generated catch block 
  e.printStackTrace(); 
 }finally{ 
  try { 
  pstate.close(); 
  conn.close(); 
  } catch (SQLException e) { 
  // TODO Auto-generated catch block 
  e.printStackTrace(); 
  } 
 } 
 return result; 
 } 
 /* (non-Javadoc) 
 * @see cn.jvsun.DAO.UpDAO#login(java.lang.String, java.lang.String) 
 * 用户登录 
 */ 
 public UserPOJO login(String username, String password) { 
 UserPOJO user=null; 
 Connection conn = null; 
 PreparedStatement pstate = null; 
 ResultSet res = null; 
 try { 
  conn=JDBCHelper.getConn(); 
  String sql="select id,username from userinfo where username=? and password=?"; 
  pstate = conn.prepareStatement(sql); 
  pstate.setString(1, username); 
  pstate.setString(2, password); 
  res = pstate.executeQuery(); 
  while(res.next()){ 
  user=new UserPOJO(res.getInt(1),username,null); 
  } 
 } catch (Exception e) { 
  e.printStackTrace(); 
 }finally{ 
  try { 
  res.close(); 
  pstate.close(); 
  conn.close(); 
  } catch (SQLException e) { 
  e.printStackTrace(); 
  } 
 } 
 return user; 
 } 
 /** 
 * 相册序列号 
 */ 
 public int getAlbumNum(){ 
 int albumNum=-1; 
 Connection conn = null; 
 PreparedStatement pstate = null; 
 ResultSet res = null; 
 try { 
  conn=JDBCHelper.getConn(); 
  String sql="select aid.nextval from dual"; 
  pstate=conn.prepareStatement(sql); 
  res=pstate.executeQuery(); 
  while(res.next()){ 
  albumNum=res.getInt(1); 
  } 
 } catch (Exception e) { 
  e.printStackTrace(); 
 }finally{ 
  try { 
  res.close(); 
  pstate.close(); 
  conn.close(); 
  } catch (SQLException e) { 
  e.printStackTrace(); 
  } 
 } 
 return albumNum; 
 } 
 /** 
 *照片序列号 
 */ 
 public int getPhotoNum(){ 
 int photoNum=-1; 
 Connection conn = null; 
 PreparedStatement pstate = null; 
 ResultSet res = null; 
 try { 
  conn=JDBCHelper.getConn(); 
  String sql="select pid.nextval from dual"; 
  pstate=conn.prepareStatement(sql); 
  res=pstate.executeQuery(); 
  while(res.next()){ 
  photoNum=res.getInt(1); 
  } 
 } catch (Exception e) { 
  e.printStackTrace(); 
 }finally{ 
  try { 
  res.close(); 
  pstate.close(); 
  conn.close(); 
  } catch (SQLException e) { 
  e.printStackTrace(); 
  } 
 } 
 return photoNum; 
 } 
 /* (non-Javadoc) 
 * @see cn.jvsun.DAO.UpDAO#findAll() 
 * 显示所创建的相册名 
 */ 
 public List<AlbumPOJO> findAllAlbum(int id) { 
 List<AlbumPOJO> list= new ArrayList<AlbumPOJO>(); 
 Connection conn = null; 
 PreparedStatement pstate = null; 
 ResultSet res = null; 
 try { 
  conn=JDBCHelper.getConn(); 
  String sql="select id,a_name,user_id from album where user_id=?"; 
  pstate = conn.prepareStatement(sql); 
  pstate.setInt(1, id); 
  res = pstate.executeQuery(); 
  while(res.next()){ 
  AlbumPOJO ap=new AlbumPOJO(res.getInt(1),res.getString(2),res.getInt(3)); 
  list.add(ap); 
  } 
 } catch (Exception e) { 
  e.printStackTrace(); 
 }finally{ 
  try { 
  res.close(); 
  pstate.close(); 
  conn.close(); 
  } catch (SQLException e) { 
  e.printStackTrace(); 
  } 
 } 
 return list; 
 } 
 /* (non-Javadoc) 
 * @see cn.jvsun.DAO.UpDAO#findAllPhoto(int) 
 * 显示照片 
 */ 
 public List<PhotoPOJO> findAllPhoto(int aid) { 
 List<PhotoPOJO> list= new ArrayList<PhotoPOJO>(); 
 Connection conn = null; 
 PreparedStatement pstate = null; 
 ResultSet res = null; 
 try { 
  conn=JDBCHelper.getConn(); 
  String sql="select id,p_name,p_url from photo where P_ALBUMID=?"; 
  pstate = conn.prepareStatement(sql); 
  pstate.setInt(1, aid); 
  res = pstate.executeQuery(); 
  while(res.next()){ 
  PhotoPOJO pojo=new PhotoPOJO(res.getInt(1),res.getString(2),res.getString(3), aid); 
  list.add(pojo); 
  } 
 } catch (Exception e) { 
  e.printStackTrace(); 
 }finally{ 
  try { 
  res.close(); 
  pstate.close(); 
  conn.close(); 
  } catch (SQLException e) { 
  e.printStackTrace(); 
  } 
 } 
 return list; 
 } 
} 

用户,相册,照片三个POJO类:

/** * 用户实体类 
 * 
 */ 
public class UserPOJO implements Serializable{ 
 private static final long serialVersionUID = 7554548269035753256L; 
 private int id; 
 private String username; 
 private String password; 
 public int getId() { 
 return id; 
 } 
 public void setId(int id) { 
 this.id = id; 
 } 
 public String getUsername() { 
 return username; 
 } 
 public void setUsername(String username) { 
 this.username = username; 
 } 
 public String getPassword() { 
 return password; 
 } 
 public void setPassword(String password) { 
 this.password = password; 
 } 
 public UserPOJO(int id, String username, String password) { 
 super(); 
 this.id = id; 
 this.username = username; 
 this.password = password; 
 } 
 public UserPOJO(String username, String password) { 
 this.username = username; 
 this.password = password; 
 } 
 public UserPOJO() { 
 super(); 
 // TODO Auto-generated constructor stub 
 } 
} 
/** 
 * 相册实体类 
 * 
 */ 
public class AlbumPOJO implements Serializable{ 
 private int id; 
 private String a_name; 
 private int user_id; 
 public int getId() { 
 return id; 
 } 
 public void setId(int id) { 
 this.id = id; 
 } 
 public String getA_name() { 
 return a_name; 
 } 
 public void setA_name(String a_name) { 
 this.a_name = a_name; 
 } 
 public int getUser_id() { 
 return user_id; 
 } 
 public void setUser_id(int user_id) { 
 this.user_id = user_id; 
 } 
 public AlbumPOJO(int id, String a_name, int user_id) { 
 super(); 
 this.id = id; 
 this.a_name = a_name; 
 this.user_id = user_id; 
 } 
 public AlbumPOJO(String a_name, int user_id) { 
 this.a_name = a_name; 
 this.user_id = user_id; 
 } 
 public AlbumPOJO() { 
 super(); 
 // TODO Auto-generated constructor stub 
 } 
} 
/** 
 *照片实体类 
 * 
 */ 
public class PhotoPOJO implements Serializable{ 
 private static final long serialVersionUID = 5937149639009957458L; 
 private int id; 
 private String p_name; 
 private String p_url; 
 private int p_albumId; 
 public int getId() { 
 return id; 
 } 
 public void setId(int id) { 
 this.id = id; 
 } 
 public String getP_name() { 
 return p_name; 
 } 
 public void setP_name(String p_name) { 
 this.p_name = p_name; 
 } 
 public String getP_url() { 
 return p_url; 
 } 
 public void setP_url(String p_url) { 
 this.p_url = p_url; 
 } 
 public int getP_albumId() { 
 return p_albumId; 
 } 
 public void setP_albumId(int p_albumId) { 
 this.p_albumId = p_albumId; 
 } 
 public PhotoPOJO(int id, String p_name, String p_url, int p_albumId) { 
 super(); 
 this.id = id; 
 this.p_name = p_name; 
 this.p_url = p_url; 
 this.p_albumId = p_albumId; 
 } 
 public PhotoPOJO(String p_name, String p_url, int p_albumId) { 
 this.p_name = p_name; 
 this.p_url = p_url; 
 this.p_albumId = p_albumId; 
 } 
 public PhotoPOJO() { 
 super(); 
 // TODO Auto-generated constructor stub 
 } 
} 

login.jsp实现登录

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 
<%@ page import="cn.jvsun.DAO.Impl.*" %> 
<%@ page import="cn.jvsun.POJO.*" %> 
<%@ page import="cn.jvsun.DAO.*" %> 
<% 
String path = request.getContextPath(); 
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 
%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
 <head> 
 <base href="<%=basePath%>" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" > 
 <title>login</title> 
 </head> 
 <body> 
 <% 
 request.setCharacterEncoding("utf-8"); 
 String action=request.getParameter("action"); 
 UpDAO ud=new UpDAOImpl(); 
 String username=request.getParameter("username"); 
 String password=request.getParameter("password"); 
 UserPOJO pojo=ud.login(username, password); 
 if("log".equals(action)){ 
 if(pojo==null){ 
  %> 
  <h1>登录失败</h1> 
  <% 
 }else{ 
  request.getSession().setAttribute("username", username); 
  request.getSession().setAttribute("userid", pojo.getId()); 
  response.sendRedirect("index.jsp"); 
 } 
 } 
 %> 
 <form action="login.jsp?action=log" method="post"> 
 <input type="text" name="username" placeholder="请输入用户名"/> 
 <input type="password" name="password" placeholder="请输入密码"/> 
 <input type="submit"/> 
 </form> 
 </body> 
</html> 

index.jsp实现显示相册

代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 
<%@ page import="cn.jvsun.DAO.Impl.*" %> 
<%@ page import="cn.jvsun.POJO.*" %> 
<%@ page import="cn.jvsun.DAO.*" %> 
<% 
String path = request.getContextPath(); 
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 
%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
 <head> 
 <base href="<%=basePath%>" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" > 
 <title>person message</title> 
 </head> 
 <body> 
 <center>相册界面</center> 
 当前用户:<%=request.getSession().getAttribute("username")%> <br> 
 <a href="cre.jsp" rel="external nofollow" >去创建相册</a><br> 
 我的所有相册:<br> 
 <% 
 int userid=(Integer)request.getSession().getAttribute("userid"); 
 UpDAO dao=new UpDAOImpl(); 
 List<AlbumPOJO> list=dao.findAllAlbum(userid); 
 for(AlbumPOJO pojo:list){ 
 %> 
 <tr> 
 <a>相册id:</a><td><%=pojo.getId() %></td> 
 <a>相册名称:</a><td><%=pojo.getA_name() %></td> 
 <a>创建者id:</a><td><%=pojo.getUser_id() %></td> 
 <td><a href="up.jsp?aid=<%=pojo.getId() %>" rel="external nofollow" >添加照片</a></td> 
 <td><a href="show.jsp?phid=<%=pojo.getId() %>" rel="external nofollow" >查看照片</a></td> 
 <td><a href="del.jsp?aid=<%=pojo.getId() %>" rel="external nofollow" >删除相册</a></td> 
 </tr><br> 
 <% 
 } 
 %> 
 </body> 
</html> 

cre.jsp创建相册

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 
<%@ page import="cn.jvsun.DAO.Impl.*" %> 
<%@ page import="cn.jvsun.POJO.*" %> 
<%@ page import="cn.jvsun.DAO.*" %> 
<% 
String path = request.getContextPath(); 
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 
%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
 <head> 
 <base href="<%=basePath%>" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" > 
 <title>up photo</title> 
 </head> 
 <body> 
 <% 
 request.setCharacterEncoding("utf-8"); 
 String action=request.getParameter("action"); 
 UpDAO ud=new UpDAOImpl(); 
 String toCre=request.getParameter("cre"); 
 int userId=(Integer)request.getSession().getAttribute("userid"); 
 if("cre".equals(action)){ 
 AlbumPOJO ap=new AlbumPOJO(toCre,userId); 
 int aNum=ud.creAlbum(ap); 
 if(aNum!=-1){ 
  response.sendRedirect("index.jsp"); 
 }else{ 
  %> 
  <h1>创建相册失败</h1> 
  <% 
 } 
 } 
 %> 
 <form action="cre.jsp?action=cre" method="post"> 
 <input type="text" name="cre" placeholder="请输入您要创建的相册名称"/> 
 <input type="submit" value="确定"> 
 </form> 
 </body> 
</html> 

up.jsp上传照片

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 
<%@ page import="cn.jvsun.DAO.Impl.*" %> 
<%@ page import="cn.jvsun.POJO.*" %> 
<%@ page import="cn.jvsun.DAO.*" %> 
<%@ page import="cn.jvsun.tools.*" %> 
<%@page import="org.lxh.smart.*" %> 
<% 
String path = request.getContextPath(); 
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 
%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
 <head> 
 <base href="<%=basePath%>" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" > 
 <title>上传照片</title> 
 </head> 
 <body> 
 <% 
 int aid=Integer.parseInt(request.getParameter("aid")); 
 %> 
 <form action="upCheck.jsp" method="post" enctype="multipart/form-data"> 
 <input type="hidden" name="aid" value="<%=aid %>"/> 
 <input type="file" name="photo"/> 
 <input type="submit" value="确认上传"/> 
 </form> 
 </body> 
</html> 

upCheck.jsp上传照片的处理页

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 
<%@ page import="cn.jvsun.DAO.Impl.*" %> 
<%@ page import="cn.jvsun.POJO.*" %> 
<%@ page import="cn.jvsun.DAO.*" %> 
<%@ page import="cn.jvsun.tools.*" %> 
<%@page import="org.lxh.smart.*" %> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
 <head> 
 <title></title> 
 </head> 
 <body> 
 <% 
 String ip = request.getRemoteAddr(); 
 ip = ip.replaceAll(":",""); 
 PhotoName pn=new PhotoName(ip); 
 String pName = pn.getPhotoName();//照片名字,是由IP加当前时间组成 
 SmartUpload smartupload = new SmartUpload();//实例化上传操作的对象 
 //初始化上传文件 
 smartupload.initialize(pageContext); 
 //准备上传 
 smartupload.upload(); 
 int albumId=Integer.parseInt(smartupload.getRequest().getParameter("aid")); 
 //取得文件的后缀 
 String endName = smartupload.getFiles().getFile(0).getFileExt(); 
 //文件保存的路径 
 /*String p_url = getServletContext().getRealPath("/")+ 
   "file/"+pName+"."+endName;*/ 
 String p_url="K:/workspace/Xiangce/WebRoot/file/"+pName+"."+endName; 
 //保存文件 
 smartupload.getFiles().getFile(0).saveAs(p_url); 
 UpDAO ad=new UpDAOImpl(); 
 PhotoPOJO pojo=new PhotoPOJO(pName+"."+endName,p_url,albumId); 
 int photoNum=ad.upPhoto(pojo); 
 if(photoNum != -1){ 
  request.getSession().setAttribute("phid", albumId); 
  response.sendRedirect("show.jsp"); 
  } else { 
 %> 
 上传失败 
 <% 
  } 
 %> 
 </body> 
</html> 

show.jsp显示照片及信息页:

代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 
<%@ page import="cn.jvsun.DAO.Impl.*" %> 
<%@ page import="cn.jvsun.POJO.*" %> 
<%@ page import="cn.jvsun.DAO.*" %> 
<% 
String path = request.getContextPath(); 
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 
%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
 <head> 
 <base href="<%=basePath%>" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" > 
 <title>My JSP 'show.jsp' starting page</title> 
 </head> 
 <body> 
 <center>相册界面</center> 
 当前用户:<%=request.getSession().getAttribute("username")%> <br> 
 <% 
 int phid=(Integer)request.getSession().getAttribute("phid"); 
 UpDAO dao=new UpDAOImpl(); 
 List<PhotoPOJO> list=dao.findAllPhoto(phid); 
 for(PhotoPOJO pojo:list){ 
 %> 
 <tr> 
 <a>照片id:</a><td><%=pojo.getId() %></td><br> 
 <a>照片名称:</a><td><%=pojo.getP_name() %></td><br> 
 <a>照片路径:</a><td><%=pojo.getP_url() %></td><br> 
 <a>照片所属相册名称:</a><td><%=pojo.getP_albumId() %></td><br> 
 <td><img src="<%=path%>/file/<%=pojo.getP_name() %>" width="100" height="100"/></td> 
 <a href="photo_del.jsp?pid=<%=pojo.getId() %>" rel="external nofollow" >删除照片:</a></td><br> 
 </tr><br> 
 <%} %> 
 </body> 
</html> 

photo_del.jsp删除照片

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 
<%@ page import="cn.jvsun.DAO.Impl.*" %> 
<%@ page import="cn.jvsun.POJO.*" %> 
<%@ page import="cn.jvsun.DAO.*" %> 
<% 
String path = request.getContextPath(); 
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 
%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
 <head> 
 <base href="<%=basePath%>" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" > 
 <title>del</title> 
 </head> 
 <body> 
 <% 
 int pid=Integer.parseInt(request.getParameter("pid")); 
 int result=0; 
 UpDAO dao=new UpDAOImpl(); 
 result=dao.delPhoto(pid); 
 if(result==1){ 
 out.println("<script>alert('删除成功');window.location.href('show.jsp');</script>"); 
 }else{ 
 out.println("<script>alert('出错了');window.location.href('show.jsp');</script>"); 
 } 
 %> 
 </body> 
</html> 

del.jsp删除相册

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 
<%@ page import="cn.jvsun.DAO.Impl.*" %> 
<%@ page import="cn.jvsun.POJO.*" %> 
<%@ page import="cn.jvsun.DAO.*" %> 
<% 
String path = request.getContextPath(); 
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 
%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
 <head> 
 <base href="<%=basePath%>" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" > 
 <title>del</title> 
 </head> 
 <body> 
 <% 
 int aid=Integer.parseInt(request.getParameter("aid")); 
 int result=0; 
 UpDAO dao=new UpDAOImpl(); 
 result=dao.delAlbum(aid); 
 if(result==1){ 
 out.println("<script>alert('删除成功');window.location.href('index.jsp');</script>"); 
 }else{ 
 out.println("<script>alert('删除失败,请先把相册中的照片删掉');window.location.href('index.jsp');</script>"); 
 } 
 %> 
 </body> 
</html> 

数据库的建表语句:

-- Create table 
create table USERINFO 
( 
 ID NUMBER, 
 USERNAME VARCHAR2(30), 
 PASSWORD VARCHAR2(30) 
) 
tablespace USERS 
 pctfree 10 
 initrans 1 
 maxtrans 255 
 storage 
 ( 
 initial 64 
 minextents 1 
 maxextents unlimited 
 ); 
-- Create/Recreate primary, unique and foreign key constraints 
alter table USERINFO 
 add constraint PID primary key (ID) 
 disable; 
--上传者 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
-- Create table 
create table ALBUM 
( 
 ID NUMBER not null, 
 A_NAME VARCHAR2(30), 
 USER_ID NUMBER 
) 
tablespace USERS 
 pctfree 10 
 initrans 1 
 maxtrans 255 
 storage 
 ( 
 initial 64 
 minextents 1 
 maxextents unlimited 
 ); 
-- Create/Recreate primary, unique and foreign key constraints 
alter table ALBUM 
 add constraint AL_PID primary key (ID) 
 using index 
 tablespace USERS 
 pctfree 10 
 initrans 2 
 maxtrans 255 
 storage 
 ( 
 initial 64K 
 minextents 1 
 maxextents unlimited 
 ); 
alter table ALBUM 
 add constraint USERID foreign key (USER_ID) 
 references USERINFO (ID) 
 disable; 
--相册表 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
-- Create table 
create table PHOTO 
( 
 ID NUMBER, 
 P_NAME VARCHAR2(30), 
 P_URL VARCHAR2(50), 
 P_ALBUMID NUMBER(30) 
) 
tablespace USERS 
 pctfree 10 
 initrans 1 
 maxtrans 255 
 storage 
 ( 
 initial 64 
 minextents 1 
 maxextents unlimited 
 ); 
-- Create/Recreate primary, unique and foreign key constraints 
alter table PHOTO 
 add constraint ALB_ID foreign key (P_ALBUMID) 
 references ALBUM (ID); 
--相片表 

好了,所有代码就写完了,切记,需要smartupload.jar包,没有的童鞋可以去下载:

smartuploadjar包

以上所述是小编给大家介绍的jsp实现仿QQ空间新建多个相册名称并向相册中添加照片功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# jsp仿qq空间新建相册  # jsp新建相册  # 上传照片  # 上传  # 多个  # 请输入  # 小编  # 实体类  # 好了  # 片时  # 在此  # 是由  # 要有  # 错了  # 给大家  # 先把  # 无任何  # 并向  # 用户登录  # 所述  # 给我留言  # 上传者 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  Python高阶函数应用_函数作为参数说明【指导】  利用JavaScript实现拖拽改变元素大小  googleplay官方入口在哪里_Google Play官方商店快速入口指南  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】  详解jQuery停止动画——stop()方法的使用  高性价比服务器租赁——企业级配置与24小时运维服务  如何生成腾讯云建站专用兑换码?  Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  微信公众帐号开发教程之图文消息全攻略  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  再谈Python中的字符串与字符编码(推荐)  焦点电影公司作品,电影焦点结局是什么?  b2c电商网站制作流程,b2c水平综合的电商平台?  javascript日期怎么处理_如何格式化输出  JavaScript实现Fly Bird小游戏  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  BootStrap整体框架之基础布局组件  太平洋网站制作公司,网络用语太平洋是什么意思?  C++用Dijkstra(迪杰斯特拉)算法求最短路径  在Oracle关闭情况下如何修改spfile的参数  Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】  如何快速上传建站程序避免常见错误?  网站建设要注意的标准 促进网站用户好感度!  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  网站建设保证美观性,需要考虑的几点问题!  php做exe能调用系统命令吗_执行cmd指令实现方式【详解】  香港服务器建站指南:免备案优势与SEO优化技巧全解析  深入理解Android中的xmlns:tools属性  Laravel storage目录权限问题_Laravel文件写入权限设置  如何在腾讯云服务器快速搭建个人网站?  html5的keygen标签为什么废弃_替代方案说明【解答】  js实现点击每个li节点,都弹出其文本值及修改  Laravel DB事务怎么使用_Laravel数据库事务回滚操作  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  php json中文编码为null的解决办法  如何用狗爹虚拟主机快速搭建网站?  Python并发异常传播_错误处理解析【教程】  Laravel如何集成Inertia.js与Vue/React?(安装配置)  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  MySQL查询结果复制到新表的方法(更新、插入)  如何快速重置建站主机并恢复默认配置?