100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > qq空间的相册名称java_jsp实现仿QQ空间新建多个相册名称并向相册中添加照片功能...

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

时间:2021-09-15 05:24:57

相关推荐

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

工具: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 findAllAlbum(int id);

public List 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();

mit();

} 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();

mit();

} 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 findAllAlbum(int id) {

List list= new ArrayList();

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 findAllPhoto(int aid) {

List list= new ArrayList();

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实现登录

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

login

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){

%>

登录失败

}else{

request.getSession().setAttribute("username", username);

request.getSession().setAttribute("userid", pojo.getId());

response.sendRedirect("index.jsp");

}

}

%>

index.jsp实现显示相册

代码如下:

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

person message相册界面

当前用户:

去创建相册

我的所有相册:

int userid=(Integer)request.getSession().getAttribute("userid");

UpDAO dao=new UpDAOImpl();

List list=dao.findAllAlbum(userid);

for(AlbumPOJO pojo:list){

%>

相册id:

相册名称:

创建者id:

添加照片 查看照片 删除相册

}

%>

cre.jsp创建相册

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

up photo

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{

%>

创建相册失败

}

}

%>

up.jsp上传照片

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

上传照片

int aid=Integer.parseInt(request.getParameter("aid"));

%>

upCheck.jsp上传照片的处理页

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 {

%>

上传失败

}

%>

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

代码如下:

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

My JSP 'show.jsp' starting page相册界面

当前用户:

int phid=(Integer)request.getSession().getAttribute("phid");

UpDAO dao=new UpDAOImpl();

List list=dao.findAllPhoto(phid);

for(PhotoPOJO pojo:list){

%>

照片id:

照片名称:

照片路径:

照片所属相册名称:

删除照片:

photo_del.jsp删除照片

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

del

int pid=Integer.parseInt(request.getParameter("pid"));

int result=0;

UpDAO dao=new UpDAOImpl();

result=dao.delPhoto(pid);

if(result==1){

out.println("");

}else{

out.println("");

}

%>

del.jsp删除相册

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

del

int aid=Integer.parseInt(request.getParameter("aid"));

int result=0;

UpDAO dao=new UpDAOImpl();

result=dao.delAlbum(aid);

if(result==1){

out.println("");

}else{

out.println("");

}

%>

数据库的建表语句:

-- 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包,没有的童鞋可以去下载:

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。