工具: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="; 
  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" 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" rel="external nofollow" >添加照片</a></td> 
 <td><a href="show.jsp" rel="external nofollow" >查看照片</a></td> 
 <td><a href="del.jsp" 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" 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="/UploadFiles/2021-04-02/<%=pojo.getP_name() %>">

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空间新建多个相册名称并向相册中添加照片功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com

RTX 5090要首发 性能要翻倍!三星展示GDDR7显存

三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。

首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。

据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。