基于spring+hibernate+JQuery开发之电子相册(附源码下载)

所属分类: 软件编程 / java 阅读数: 47
收藏 0 赞 0 分享

项目结构:

项目首页:

注册页面:

上传图片:

效果图一:

效果图二:

效果图三:

=============================================================

下面是代码部分

=============================================================

需要用到的数据库SQL:

复制代码 代码如下:

drop database if exists db_ajax;

 create database db_ajax;

 use db_ajax;

 create table user_table
 (
  user_id int auto_increment primary key,
  name varchar(255) unique,
  pass varchar(255)
 );

 create table photo_table
 (
  photo_id int auto_increment primary key,
  title varchar(255),
  fileName varchar(255),
  owner_id int,
  foreign key(owner_id) references user_table(user_id)
 );

/ajax_0500_jQuery_album/WebRoot/album.html
复制代码 代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
     <title> 电子相册系统 </title>
     <meta http-equiv="Content-Type" content="text/html; charset=GBK" />
     <link rel="stylesheet" href="css/flora.dialog.css" type="text/css" />
     <link rel="stylesheet" href="css/flora.resizable.css" type="text/css" />
     <link rel="stylesheet" href="css/flora.draggable.css" type="text/css" />
     <link rel="stylesheet" href="css/flora.css" type="text/css" />
     <link rel="stylesheet" href="css/album.css" type="text/css" />
     <script type="text/javascript" src="js/jquery-1.2.6.min.js"></script>
     <script type="text/javascript" src="js/ui.core.js"></script>
     <script type="text/javascript" src="js/ui.dialog.js"></script>
     <script type="text/javascript" src="js/ui.resizable.js"></script>
     <script type="text/javascript" src="js/ui.draggable.js"></script>
     <script type="text/javascript" src="js/album.js"></script>
 </head>
 <body class="flora">
 <table width="780" border="0" cellspacing="1" align="center">
 <caption><h3>电子相册系统</h3></caption>
 <tr>
 <td height="60" colspan="2">
 <!-- 没有登录显示下面div元素 -->
 <div id="noLogin">
 <!-- 这里是注册/登录的表格 -->
 <table width="100%" border="0" cellspacing="0">
 <tr>
     <td width="38%">用户名:
         <input id="user" type="text" name="user" /></td>
     <td width="38%">密&nbsp;&nbsp;码:
         <input id="pass" type="text" name="pass" /></td>
     <td width="24%">我还没有注册,请让我<a href="javascript:void(0);"
         onclick="changeRegist();">注册</a></td>
 </tr>
 <tr>
     <td colspan="5">
     <div id="loginDiv" align="center">
     <input id="login" type="button" onclick="proLogin();" value="登录" />
     <input id="resetLogin" type="button" onclick="reset();" value="重设" />
     </div>
     <div id="registDiv" align="center" style="display:none">
     <a href="javascript:void(0)" onclick="validateName();">验证用户名是否可用</a>
     <input id="regist" type="button" onclick="regist();" value="注册" />
     <input id="resetRegist" type="button" onclick="reset();" value="重设" />
     </div>
     </td>
 </tr>
 </table>
 </div>
 <!-- 已经登录显示下面div元素 -->
 <div id="hasLogin" align="center" style="display:none">
     您已经登录成功,下面是您的相册,您也可以<a href="javascript:void(0);"
         onclick="openUpload();">增加相片</a>
 </div>
 </td>
 </tr>
 <tr>
     <!-- 显示相片列表的元素 -->
     <td width="120" height="440" valign="top">
     <div align="center"><h3>相片列表</h3></div>
     <div id="list"></div><hr />
     <div align="center"><a href="javascript:void(0);" onclick="turnPage(-1);">上一页</a>
         &nbsp;<a href="javascript:void(0);" onclick="turnPage(1);">下一页</a></div>
     </td>
     <!-- 显示相片的元素 -->
     <td width="660" align="center" valign="middle">
         <div style="width:640px;height:430px;overflow:auto">
         <img id="show" alt="当前相片"></img></div></td>
 </tr>
 </table>

 <div id="uploadDiv" style="display:none">
 <form action="proUpload" method="post"
     enctype="multipart/form-data">
 <table width="400" border="0" cellspacing="1" cellpadding="10">
 <caption>上传图片</caption>
 <tr>
     <td height="25">图片标题:</td>
     <td><input id="title" name="title" type="text" /></td>
 </tr>
 <tr>
     <td height="25">浏览图片:</td>
     <td><input id="file" name="file" type="file" /></td>
 </tr>
 <tr>
     <td colspan="2" align="center">
     <input type="submit" value="上传" />
     <input type="reset" value="重设" />
     </td>
 </tr>
 </table>
 </form>
 </div>
 <div id="tipDiv" style="display:none">
 </div>
 </body>
 </html>

/ajax_0500_jQuery_album/WebRoot/WEB-INF/web.xml
复制代码 代码如下:

<?xml version="1.0" encoding="GBK"?>
 <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
     version="2.5">

     <!-- 配置Web应用启动时候加载Spring容器 -->
     <listener>
         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
     </listener>

     <servlet>
         <servlet-name>proLogin</servlet-name>
         <servlet-class>com.b510.album.web.ProLoginServlet</servlet-class>
     </servlet>
     <servlet-mapping>
         <servlet-name>proLogin</servlet-name>
         <url-pattern>/proLogin</url-pattern>
     </servlet-mapping>

     <servlet>
         <servlet-name>proRegist</servlet-name>
         <servlet-class>com.b510.album.web.ProRegistServlet</servlet-class>
     </servlet>
     <servlet-mapping>
         <servlet-name>proRegist</servlet-name>
         <url-pattern>/proRegist</url-pattern>
     </servlet-mapping>

     <servlet>
         <servlet-name>validateName</servlet-name>
         <servlet-class>com.b510.album.web.ValidateNameServlet</servlet-class>
     </servlet>
     <servlet-mapping>
         <servlet-name>validateName</servlet-name>
         <url-pattern>/validateName</url-pattern>
     </servlet-mapping>

     <servlet>
         <servlet-name>getPhoto</servlet-name>
         <servlet-class>com.b510.album.web.GetPhotoServlet</servlet-class>
     </servlet>
     <servlet-mapping>
         <servlet-name>getPhoto</servlet-name>
         <url-pattern>/getPhoto</url-pattern>
     </servlet-mapping>

     <servlet>
         <servlet-name>showImg</servlet-name>
         <servlet-class>com.b510.album.web.ShowImgServlet</servlet-class>
     </servlet>
     <servlet-mapping>
         <servlet-name>showImg</servlet-name>
         <url-pattern>/showImg</url-pattern>
     </servlet-mapping>

     <servlet>
         <servlet-name>pageLoad</servlet-name>
         <servlet-class>com.b510.album.web.PageLoadServlet</servlet-class>
     </servlet>
     <servlet-mapping>
         <servlet-name>pageLoad</servlet-name>
         <url-pattern>/pageLoad</url-pattern>
     </servlet-mapping>

     <servlet>
         <servlet-name>turnPage</servlet-name>
         <servlet-class>com.b510.album.web.TurnPageServlet</servlet-class>
     </servlet>
     <servlet-mapping>
         <servlet-name>turnPage</servlet-name>
         <url-pattern>/turnPage</url-pattern>
     </servlet-mapping>

     <servlet>
         <servlet-name>proUpload</servlet-name>
         <servlet-class>com.b510.album.web.ProUploadServlet</servlet-class>
     </servlet>
     <servlet-mapping>
         <servlet-name>proUpload</servlet-name>
         <url-pattern>/proUpload</url-pattern>
     </servlet-mapping>

     <welcome-file-list>
         <welcome-file>album.html</welcome-file>
     </welcome-file-list>

 </web-app>

/ajax_0500_jQuery_album/WebRoot/WEB-INF/applicationContext.xml
复制代码 代码如下:

<?xml version="1.0" encoding="GBK"?>
 <!-- 指定Spring配置文件的Schema信息 -->
 <beans xmlns="http://www.springframework.org/schema/beans"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:aop="http://www.springframework.org/schema/aop"
     xmlns:tx="http://www.springframework.org/schema/tx"
     xsi:schemaLocation="http://www.springframework.org/schema/beans
     http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
     http://www.springframework.org/schema/tx
     http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
     http://www.springframework.org/schema/aop
     http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">

     <!-- 定义数据源Bean,使用C3P0数据源实现 -->
     <bean id="dataSource" destroy-method="close"
         class="com.mchange.v2.c3p0.ComboPooledDataSource">
         <!-- 指定连接数据库的驱动 -->
         <property name="driverClass" value="com.mysql.jdbc.Driver"/>
         <!-- 指定连接数据库的URL -->
         <property name="jdbcUrl"
             value="jdbc:mysql://localhost:3308/db_ajax"/>
         <!-- 指定连接数据库的用户名 -->
         <property name="user" value="root"/>
         <!-- 指定连接数据库的密码 -->
         <property name="password" value="root"/>
         <!-- 指定连接数据库连接池的最大连接数 -->
         <property name="maxPoolSize" value="40"/>
         <!-- 指定连接数据库连接池的最小连接数 -->
         <property name="minPoolSize" value="1"/>
         <!-- 指定连接数据库连接池的初始化连接数 -->
         <property name="initialPoolSize" value="1"/>
         <!-- 指定连接数据库连接池的连接的最大空闲时间 -->
         <property name="maxIdleTime" value="20"/>
     </bean>

     <!-- 定义Hibernate的SessionFactory -->
     <bean id="sessionFactory"
         class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
         <!-- 依赖注入数据源,注入上面定义的dataSource -->
         <property name="dataSource" ref="dataSource"/>
         <!-- mappingResouces属性用来列出全部映射文件 -->
         <property name="mappingResources">
             <list>
                 <!-- 以下用来列出Hibernate映射文件 -->
                 <value>com/b510/album/model/User.hbm.xml</value>
                 <value>com/b510/album/model/Photo.hbm.xml</value>
             </list>
         </property>
         <!-- 定义Hibernate的SessionFactory的属性 -->
         <property name="hibernateProperties">
             <props>
                 <!-- 指定数据库方言 -->
                 <prop key="hibernate.dialect">
                     org.hibernate.dialect.MySQLInnoDBDialect</prop>
                 <!-- 是否根据需要每次自动创建数据库 -->
                 <prop key="hibernate.hbm2ddl.auto">update</prop>
                 <!-- 显示Hibernate持久化操作所生成的SQL -->
                 <prop key="hibernate.show_sql">true</prop>
                 <!-- 将SQL脚本进行格式化后再输出 -->
                 <prop key="hibernate.format_sql">true</prop>
             </props>
         </property>
     </bean>
     <!-- 配置UserDao组件 -->
     <bean id="userDao"
         class="com.b510.album.dao.impl.UserDaoHibernate">
         <!-- 注入SessionFactory引用 -->
         <property name="sessionFactory" ref="sessionFactory"/>
     </bean>
     <!-- 配置PhotoDao组件 -->
     <bean id="photoDao"
         class="com.b510.album.dao.impl.PhotoDaoHibernate">
         <property name="sessionFactory" ref="sessionFactory"/>
     </bean>
     <!-- 配置albumService业务逻辑组件 -->
     <bean id="albumService"
         class="com.b510.album.service.impl.AlbumServiceImpl">
         <!-- 为业务逻辑组件注入2个DAO组件 -->
         <property name="userDao" ref="userDao"/>
         <property name="photoDao" ref="photoDao"/>
     </bean>

     <!-- 配置Hibernate的局部事务管理器,使用HibernateTransactionManager类 -->
     <!-- 该类实现PlatformTransactionManager接口,是针对Hibernate的特定实现-->
     <bean id="transactionManager"
         class="org.springframework.orm.hibernate3.HibernateTransactionManager">
         <!-- 配置HibernateTransactionManager时需要依注入SessionFactory的引用 -->
         <property name="sessionFactory" ref="sessionFactory"/>
     </bean>

     <!-- 配置事务切面Bean,指定事务管理器 -->
     <tx:advice id="txAdvice" transaction-manager="transactionManager">
         <!-- 用于配置详细的事务语义 -->
         <tx:attributes>
             <!-- 所有以'get'开头的方法是read-only的 -->
             <tx:method name="get*" read-only="true"/>
             <!-- 其他方法使用默认的事务设置 -->
             <tx:method name="*"/>
         </tx:attributes>
     </tx:advice>
     <aop:config>
         <!-- 配置一个切入点,匹配lee包下所有以Impl结尾的类执行的所有方法 -->
         <aop:pointcut id="leeService"
             expression="execution(* com.b510.album.service.impl.*Impl.*(..))"/>
         <!-- 指定在leeService切入点应用txAdvice事务切面 -->
         <aop:advisor advice-ref="txAdvice"
             pointcut-ref="leeService"/>
     </aop:config>
 </beans>

/ajax_0500_jQuery_album/WebRoot/js/album.js
复制代码 代码如下:

$(document).ready(function(){
     $.getScript("pageLoad");
     //处理地址栏的resultCode参数
     var locationStr = document.location.toString();
     var resultIndex = locationStr.indexOf("resultCode");
     var resultCode = -1;
     if (resultIndex > 1)
     {
         resultCode = locationStr.substring(resultIndex + 11
             , resultIndex + 12);
         //根据不同的resultCode,系统进行不同处理
         switch(resultCode)
         {
             case "0" :
                 alert('恭喜你,上传文件成功!');
                 $('#uploadDiv').dialog('close');
                 break;
             case "1" :
                 alert('本系统只允许上传JPG、GIF、PNG图片文件,请重试!');
                 $('#title,#file').val('');
                 break;
             case "2" :
                 alert('处理上传文件出现错误,请重试!');
                 $('#title,#file').val('');
                 break;
         }
     }
 });

 function reset()
 {
     //清空user、pass两个单行文本框
     $("#user").val("");
     $("#pass").val("");
 }

 //切换到注册对话框
 function changeRegist()
 {
     //隐藏登录用的两个按钮
     $("#loginDiv").hide("500");
     //显示注册用的两个按钮
     $("#registDiv").show("500");
 }

 //处理用户登录的函数
 function proLogin()
 {
     //获取user、pass两个文本框的值
     var user = $.trim($("#user").val());
     var pass = $.trim($("#pass").val());
     if (user == null || user == ""
         || pass == null|| pass =="")
     {
         alert("必须先输入用户名和密码才能登录");
         return false;
     }
     else
     {
         //向proLogin发送异步、POST请求
         $.post("proLogin", $('#user,#pass').serializeArray()
             , null , "script");
     }
 }

 //处理用户注册的函数
 function regist()
 {
     //获取user、pass两个文本框的值
     var user = $.trim($("#user").val());
     var pass = $.trim($("#pass").val());
     if (user == null || user == "" || pass == null || pass =="")
     {
         alert("必须先输入用户名和密码才能注册");
         return false;
     }
     else
     {
         //向proRegist发送异步、POST请求
         $.post("proRegist", $('#user,#pass').serializeArray()
             , null , "script");
     }
 }

 //验证用户名是否可用
 function validateName()
 {
     //获取user文本框的值
     var user = $.trim($("#user").val());
     if (user == null || user == "")
     {
         alert("您还没有输入用户名!");
         return false;
     }
     else
     {
         //向validateName发送异步、POST请求
         $.post("validateName", $('#user').serializeArray()
             , null , "script");
     }
 }

 //周期性地获取当前用户、当前页的相片
 function onLoadHandler()
 {
     //向getPhoto发送异步、GET请求
     $.getScript("getPhoto");
     //指定1秒之后再次执行此方法
     setTimeout("onLoadHandler()", 1000);
 }

 //显示照片
 function showImg(fileName)
 {
     $.getScript("showImg?img=" + fileName);
 //    document.getElementById("show").src="uploadfiles/" + fileName + "?now=" + new Date();
 //    $("#show").attr("src" , "uploadfiles/" + fileName);
 }

 //处理翻页的函数
 function turnPage(flag)
 {
     $.getScript("turnPage?turn=" + flag);
 }

 //打开上传窗口
 function openUpload()
 {

     $("#uploadDiv").show()
         .dialog(
         {
             modal: true,
             resizable: false,
             width: 428,
             height: 220,
             overlay: {opacity: 0.5 , background: "black"}
         });
 }

/ajax_0500_jQuery_album/src/com/b510/album/web/base/BaseServlet.java
复制代码 代码如下:

package com.b510.album.web.base;

 import javax.servlet.ServletConfig;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;

 import org.springframework.context.ApplicationContext;
 import org.springframework.web.context.support.WebApplicationContextUtils;

 import com.b510.album.service.AlbumService;
 /**
  *
  * @author Hongten
  *
  */
 public class BaseServlet extends HttpServlet {

     private static final long serialVersionUID = -2041755371540813745L;

     protected AlbumService as;

     // 定义构造器,获得Spring容器的引用
     public void init(ServletConfig config) throws ServletException {
         super.init(config);
         ApplicationContext ctx = WebApplicationContextUtils
                 .getWebApplicationContext(getServletContext());
         as = (AlbumService) ctx.getBean("albumService");
     }
 }

/ajax_0500_jQuery_album/src/com/b510/album/web/ValidateNameServlet.java
复制代码 代码如下:

package com.b510.album.web;

 import java.io.IOException;
 import java.io.PrintWriter;

 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;

 import com.b510.album.exception.AlbumException;
 import com.b510.album.web.base.BaseServlet;
 /**
  *
  * @author Hongten
  *
  */
 public class ValidateNameServlet extends BaseServlet {

     private static final long serialVersionUID = 9038839276327742641L;

     public void service(HttpServletRequest request, HttpServletResponse response)
             throws IOException, ServletException {
         String name = request.getParameter("user");
         response.setContentType("text/javascript;charset=GBK");
         // 获取输出流
         PrintWriter out = response.getWriter();
         try {
             if (name != null) {
                 if (as.validateName(name)) {
                     out.println("alert('恭喜您,该用户名还未使用,你可使用该用户名!');");
                 } else {
                     out.println("alert('对不起,该用户名已被他人占用!');");
                     out.println("$('#user').val('');");
                 }
             } else {
                 out.println("alert('验证用户名出现异常,请更换用户名重试!');");
             }
         } catch (AlbumException ex) {
             out.println("alert('" + ex.getMessage() + "请更换用户名重试!');");
         }
     }
 }

/ajax_0500_jQuery_album/src/com/b510/album/web/TurnPageServlet.java
复制代码 代码如下:

package com.b510.album.web;

 import java.io.IOException;
 import java.io.PrintWriter;
 import java.util.List;

 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;

 import com.b510.album.exception.AlbumException;
 import com.b510.album.vo.PhotoHolder;
 import com.b510.album.web.base.BaseServlet;
 /**
  *
  * @author Hongten
  *
  */
 public class TurnPageServlet extends BaseServlet {

     private static final long serialVersionUID = -5097286750384714951L;

     public void service(HttpServletRequest request, HttpServletResponse response)
             throws IOException, ServletException {
         String turn = request.getParameter("turn");
         HttpSession session = request.getSession(true);
         String name = (String) session.getAttribute("curUser");
         Object pageObj = session.getAttribute("curPage");
         // 如果HttpSession中的curPage为null,则设置当前页为第一页
         int curPage = pageObj == null ? 1 : (Integer) pageObj;
         response.setContentType("text/javascript;charset=GBK");
         PrintWriter out = response.getWriter();
         if (curPage == 1 && turn.equals("-1")) {
             out.println("alert('现在已经是第一页,无法向前翻页!')");
         } else {
             // 执行翻页,修改curPage的值。
             curPage += Integer.parseInt(turn);
             try {
                 List<PhotoHolder> photos = as.getPhotoByUser(name, curPage);
                 // 翻页后没有记录
                 if (photos.size() == 0) {
                     out.println("alert('翻页后找不到任何相片记录,系统将自动返回上一页')");
                     // 重新返回上一页
                     curPage -= Integer.parseInt(turn);
                 } else {
                     // 把用户正在浏览的页码放入HttpSession中
                     session.setAttribute("curPage", curPage);
                 }
             } catch (AlbumException ex) {
                 out.println("alert('" + ex.getMessage() + "请重试!')");
             }
         }
     }
 }

/ajax_0500_jQuery_album/src/com/b510/album/web/ShowImgServlet.java
复制代码 代码如下:

package com.b510.album.web;

 import java.io.IOException;
 import java.io.PrintWriter;

 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;

 import com.b510.album.web.base.BaseServlet;
 /**
  *
  * @author Hongten
  *
  */
 public class ShowImgServlet extends BaseServlet {

     private static final long serialVersionUID = 1460203270448078666L;

     public void service(HttpServletRequest request, HttpServletResponse response)
             throws IOException, ServletException {
         String img = request.getParameter("img");
         HttpSession session = request.getSession(true);
         // 将用户正在浏览的图片放入HttpSession中。
         session.setAttribute("curImg", img);
         response.setContentType("text/javascript;charset=GBK");
         // 获取输出流
         PrintWriter out = response.getWriter();
         out.println("$('#show').attr('src' , 'uploadfiles/" + img + "');");
     }
 }

/ajax_0500_jQuery_album/src/com/b510/album/web/ProUploadServlet.java
复制代码 代码如下:

package com.b510.album.web;

 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.PrintWriter;
 import java.util.Iterator;
 import java.util.List;

 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;

 import org.apache.commons.fileupload.FileItem;
 import org.apache.commons.fileupload.FileItemFactory;
 import org.apache.commons.fileupload.FileUploadException;
 import org.apache.commons.fileupload.disk.DiskFileItemFactory;
 import org.apache.commons.fileupload.servlet.ServletFileUpload;

 import com.b510.album.exception.AlbumException;
 import com.b510.album.web.base.BaseServlet;
 /**
  *
  * @author Hongten
  *
  */
 @SuppressWarnings("unchecked")
 public class ProUploadServlet extends BaseServlet {

     private static final long serialVersionUID = 642229801989188793L;

     public void service(HttpServletRequest request, HttpServletResponse response)
             throws IOException, ServletException {
         Iterator iter = null;
         String title = null;
         response.setContentType("text/html;charset=GBK");
         // 获取输出流
         PrintWriter out = response.getWriter();
         out.println("<script type='text/javascript>'");
         try {
             // 使用Uploader处理上传
             FileItemFactory factory = new DiskFileItemFactory();
             ServletFileUpload upload = new ServletFileUpload(factory);
             List items = upload.parseRequest(request);
             iter = items.iterator();
             // 遍历每个表单控件对应的内容
             while (iter.hasNext()) {
                 FileItem item = (FileItem) iter.next();
                 // 如果该项是普通表单域
                 if (item.isFormField()) {
                     String name = item.getFieldName();
                     if (name.equals("title")) {
                         title = item.getString("GBK");
                     }
                 }
                 // 如果是需要上传的文件
                 else {
                     String user = (String) request.getSession().getAttribute(
                             "curUser");
                     String serverFileName = null;
                     // 返回文件名
                     String fileName = item.getName();
                     // 取得文件后缀
                     String appden = fileName.substring(fileName
                             .lastIndexOf("."));
                     // 返回文件类型
                     String contentType = item.getContentType();
                     // 只允许上传jpg、gif、png图片
                     if (contentType.equals("image/pjpeg")
                             || contentType.equals("image/gif")
                             || contentType.equals("image/jpeg")
                             || contentType.equals("image/png")) {
                         InputStream input = item.getInputStream();
                         serverFileName = String.valueOf(System
                                 .currentTimeMillis());
                         FileOutputStream output = new FileOutputStream(
                                 getServletContext().getRealPath("/")
                                         + "uploadfiles\\" + serverFileName
                                         + appden);
                         byte[] buffer = new byte[1024];
                         int len = 0;
                         while ((len = input.read(buffer)) > 0) {
                             output.write(buffer, 0, len);
                         }
                         input.close();
                         output.close();
                         as.addPhoto(user, title, serverFileName + appden);
                         response.sendRedirect("album.html?resultCode=0");
                     } else {
                         response.sendRedirect("album.html?resultCode=1");
                     }
                 }
             }
         } catch (FileUploadException fue) {
             fue.printStackTrace();
             response.sendRedirect("album.html?resultCode=2");
         } catch (AlbumException ex) {
             ex.printStackTrace();
         }
     }
 }

 /ajax_0500_jQuery_album/src/com/b510/album/web/ProRegistServlet.java
复制代码 代码如下:

package com.b510.album.web;

 import java.io.IOException;
 import java.io.PrintWriter;

 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;

 import com.b510.album.exception.AlbumException;
 import com.b510.album.web.base.BaseServlet;
 /**
  *
  * @author Hongten
  *
  */
 public class ProRegistServlet extends BaseServlet {

     private static final long serialVersionUID = -3174994243043815566L;

     public void service(HttpServletRequest request, HttpServletResponse response)
             throws IOException, ServletException {
         String name = request.getParameter("user");
         String pass = request.getParameter("pass");
         response.setContentType("text/javascript;charset=GBK");
         // 获取输出流
         PrintWriter out = response.getWriter();
         try {
             out.println("$('#user,#pass').val('');");
             if (name != null && pass != null && as.registUser(name, pass) > 0) {
                 HttpSession session = request.getSession(true);
                 session.setAttribute("curUser", name);
                 out.println("alert('恭喜您,您已经注册成功!');");
                 out.println("$('#noLogin').hide(500);");
                 out.println("$('#hasLogin').show(500);");
                 // 调用获取相片列表的方法
                 out.println("onLoadHandler();");
             } else {
                 out.println("alert('您注册出现失败,请选择合适的用户名重试!');");
             }
         } catch (AlbumException ex) {
             out.println("alert('" + ex.getMessage() + "请更换用户名重试!');");
         }
     }
 }

/ajax_0500_jQuery_album/src/com/b510/album/web/ProLoginServlet.java
复制代码 代码如下:

package com.b510.album.web;

 import java.io.IOException;
 import java.io.PrintWriter;

 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;

 import com.b510.album.exception.AlbumException;
 import com.b510.album.web.base.BaseServlet;
 /**
  *
  * @author Hongten
  *
  */
 public class ProLoginServlet extends BaseServlet {

     private static final long serialVersionUID = -1253530202224049958L;

     public void service(HttpServletRequest request, HttpServletResponse response)
             throws IOException, ServletException {
         String name = request.getParameter("user");
         String pass = request.getParameter("pass");
         response.setContentType("text/javascript;charset=GBK");
         // 获取输出流
         PrintWriter out = response.getWriter();
         try {
             // 清空id为user、pass输入框的内容
             out.println("$('#user,#pass').val('');");
             if (name != null && pass != null && as.userLogin(name, pass)) {
                 HttpSession session = request.getSession(true);
                 session.setAttribute("curUser", name);
                 out.println("alert('您已经登录成功!')");
                 out.println("$('#noLogin').hide(500)");
                 out.println("$('#hasLogin').show(500)");
                 // 调用获取相片列表的方法
                 out.println("onLoadHandler();");
             } else {
                 out.println("alert('您输入的用户名、密码不符,请重试!')");
             }
         } catch (AlbumException ex) {
             out.println("alert('" + ex.getMessage() + "请更换用户名、密码重试!')");
         }
     }
 }

/ajax_0500_jQuery_album/src/com/b510/album/web/PageLoadServlet.java
复制代码 代码如下:

package com.b510.album.web;

 import java.io.IOException;
 import java.io.PrintWriter;

 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;

 import com.b510.album.web.base.BaseServlet;

 /**
  *
  * @author Hongten
  *
  */
 public class PageLoadServlet extends BaseServlet {

     private static final long serialVersionUID = 7512001492425261841L;

     public void service(HttpServletRequest request, HttpServletResponse response)
             throws IOException, ServletException {
         response.setContentType("text/javascript;charset=GBK");
         // 获取输出流
         PrintWriter out = response.getWriter();
         HttpSession session = request.getSession(true);
         String name = (String) session.getAttribute("curUser");
         // 如果name不为null,表明用户已经登录
         if (name != null) {
             // 隐藏id为noLogin的元素(用户登录面板)
    
更多精彩内容其他人还在看

详解Spring依赖注入:@Autowired,@Resource和@Inject区别与实现原理

这篇文章主要介绍了详解Spring依赖注入:@Autowired,@Resource和@Inject区别与实现原理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

了解spring中的CloudNetflix Hystrix弹性客户端

这篇文章主要介绍了了解spring中的CloudNetflix Hystrix弹性客户端,客户端弹性模式是在远程服务发生错误或表现不佳时保护远程资源(另一个微服务调用或者数据库查询)免于崩溃。,需要的朋友可以参考下
收藏 0 赞 0 分享

Spark学习笔记Spark Streaming的使用

这篇文章主要介绍了Spark学习笔记Spark Streaming的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

通过实例讲解springboot整合WebSocket

这篇文章主要介绍了通过实例讲解springboot整合WebSocket,WebSocket为游览器和服务器提供了双工异步通信的功能,即游览器可以向服务器发送消息,服务器也可以向游览器发送消息。,需要的朋友可以参考下
收藏 0 赞 0 分享

java虚拟机学习笔记进阶篇

在本篇内容里小编给大家分享了关于java虚拟机学习笔记的进阶内容,需要的朋友们跟着学习下。
收藏 0 赞 0 分享

java虚拟机学习高级篇

在本篇文章里小编给大家整理了关于java虚拟机学习高级篇的相关内容,有兴趣的朋友们跟着学习参考下。
收藏 0 赞 0 分享

java虚拟机中多线程总结

在本篇内容中小编给大家分享的是关于java虚拟机中多线程的知识点总结内容,需要的朋友们参考学习下。
收藏 0 赞 0 分享

java虚拟机多线程进阶篇总结

在本篇内容里小编给大家整理了关于java虚拟机多线程进阶篇的相关知识点内容,有兴趣的朋友们跟着参考下。
收藏 0 赞 0 分享

java数据结构和算法中数组的简单入门

在本文里小编给大家整理了关于java数据结构和算法中数组的简单入门知识点整理,需要的朋友们学习下。
收藏 0 赞 0 分享

java数据结构和算法中哈希表知识点详解

在本篇文章里小编给大家分享了关于java数据结构和算法中哈希表的相关知识点内容,需要的朋友们学习下。
收藏 0 赞 0 分享
查看更多