โครงสร้างโครงการ:
หน้าแรกของโครงการ:
หน้าลงทะเบียน:
อัพโหลดภาพ:
เอฟเฟกต์ภาพที่หนึ่ง:
เอฟเฟกต์รูปภาพที่สอง:
เอฟเฟกต์รูปภาพที่สาม:
================================================== ===========
ด้านล่างเป็นส่วนรหัส
================================================== ===========
ฐานข้อมูล SQL ที่ต้องการ:
สร้างฐานข้อมูล db_ajax;
ใช้ db_ajax;
สร้างตาราง user_table
-
user_id int คีย์หลักเพิ่มอัตโนมัติ
ชื่อ varchar(255) ไม่ซ้ำกัน
ผ่านวาร์ชาร์ (255)
-
สร้างตาราง photo_table
-
photo_id int คีย์หลักเพิ่มอัตโนมัติ
ชื่อเรื่อง varchar (255)
ชื่อไฟล์ varchar (255)
เจ้าของ_id int,
คีย์ต่างประเทศ (owner_id) อ้างอิงถึง user_table (user_id)
-
<div id="uploadDiv" style="display:none">
<รูปแบบการกระทำ = "proUpload" วิธีการ = "โพสต์"
enctype="หลายส่วน/แบบฟอร์มข้อมูล">
<ตาราง cellspacing="1" cellpadding="10">
<caption>อัพโหลดรูปภาพ</caption>
<tr>
<td>ชื่อภาพ:</td>
<td><input id="title" name="title" type="text" /></td>
</tr>
<tr>
<td>เรียกดูภาพ:</td>
<td><input id="file" name="file" type="file" /></td>
</tr>
<tr>
<td colspan="2" align="center">
<ประเภทอินพุต = "ส่ง" ค่า = "อัปโหลด" />
<ประเภทอินพุต = "รีเซ็ต" ค่า = "รีเซ็ต" />
</td>
</tr>
</ตาราง>
</แบบฟอร์ม>
</div>
<div id="tipDiv" style="display:none">
</div>
</ร่างกาย>
</html>
<!-- กำหนดค่า Spring Container ที่จะโหลดเมื่อเว็บแอปพลิเคชันเริ่มทำงาน -->
<ผู้ฟัง>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</ผู้ฟัง>
<เซิร์ฟเล็ต>
<servlet-name>proLogin</servlet-name>
<servlet-class>com.b510.album.web.ProLoginServlet</servlet-class>
</เซิร์ฟเล็ต>
<การแมปเซิร์ฟเล็ต>
<servlet-name>proLogin</servlet-name>
<url-รูปแบบ>/proLogin</url-รูปแบบ>
</การแมปเซิร์ฟเล็ต>
<เซิร์ฟเล็ต>
<servlet-name>proRegist</servlet-name>
<servlet-class>com.b510.album.web.ProRegistServlet</servlet-class>
</เซิร์ฟเล็ต>
<การแมปเซิร์ฟเล็ต>
<servlet-name>proRegist</servlet-name>
<url-รูปแบบ>/proRegist</url-รูปแบบ>
</การแมปเซิร์ฟเล็ต>
<เซิร์ฟเล็ต>
<servlet-name>validateName</servlet-name>
<servlet-class>com.b510.album.web.ValidateNameServlet</servlet-class>
</เซิร์ฟเล็ต>
<การแมปเซิร์ฟเล็ต>
<servlet-name>validateName</servlet-name>
<url-รูปแบบ>/validateName</url-รูปแบบ>
</การแมปเซิร์ฟเล็ต>
<เซิร์ฟเล็ต>
<servlet-name>getPhoto</servlet-name>
<servlet-class>com.b510.album.web.GetPhotoServlet</servlet-class>
</เซิร์ฟเล็ต>
<การแมปเซิร์ฟเล็ต>
<servlet-name>getPhoto</servlet-name>
<url-รูปแบบ>/getPhoto</url-รูปแบบ>
</การแมปเซิร์ฟเล็ต>
<เซิร์ฟเล็ต>
<servlet-name>showImg</servlet-name>
<servlet-class>com.b510.album.web.ShowImgServlet</servlet-class>
</เซิร์ฟเล็ต>
<การแมปเซิร์ฟเล็ต>
<servlet-name>showImg</servlet-name>
<url-รูปแบบ>/showImg</url-รูปแบบ>
</การแมปเซิร์ฟเล็ต>
<เซิร์ฟเล็ต>
<servlet-name>pageLoad</servlet-name>
<servlet-class>com.b510.album.web.PageLoadServlet</servlet-class>
</เซิร์ฟเล็ต>
<การแมปเซิร์ฟเล็ต>
<servlet-name>pageLoad</servlet-name>
<url-รูปแบบ>/pageLoad</url-รูปแบบ>
</การแมปเซิร์ฟเล็ต>
<เซิร์ฟเล็ต>
<servlet-name>turnPage</servlet-name>
<servlet-class>com.b510.album.web.TurnPageServlet</servlet-class>
</เซิร์ฟเล็ต>
<การแมปเซิร์ฟเล็ต>
<servlet-name>turnPage</servlet-name>
<url-รูปแบบ>/turnPage</url-รูปแบบ>
</การแมปเซิร์ฟเล็ต>
<เซิร์ฟเล็ต>
<servlet-name>proUpload</servlet-name>
<servlet-class>com.b510.album.web.ProUploadServlet</servlet-class>
</เซิร์ฟเล็ต>
<การแมปเซิร์ฟเล็ต>
<servlet-name>proUpload</servlet-name>
<url-รูปแบบ>/proUpload</url-รูปแบบ>
</การแมปเซิร์ฟเล็ต>
<ยินดีต้อนรับรายการไฟล์>
<welcome-file>album.html</welcome-file>
</ยินดีต้อนรับรายการไฟล์>
</เว็บแอป>
<!-- กำหนดแหล่งข้อมูล Bean ใช้งานโดยใช้แหล่งข้อมูล C3P0 -->
<bean id="dataSource" วิธีทำลาย = "ปิด"
-
<!-- ระบุไดร์เวอร์เพื่อเชื่อมต่อกับฐานข้อมูล -->
<ชื่อคุณสมบัติ="driverClass" value="com.mysql.jdbc.Driver"/>
<!-- ระบุ URL ที่จะเชื่อมต่อกับฐานข้อมูล -->
<ชื่อคุณสมบัติ="jdbcUrl"
ค่า = "jdbc:mysql://localhost:3308/db_ajax"/>
<!-- ระบุชื่อผู้ใช้เพื่อเชื่อมต่อกับฐานข้อมูล -->
<ชื่อคุณสมบัติ = "ผู้ใช้" ค่า = "root"/>
<!-- ระบุรหัสผ่านเพื่อเชื่อมต่อกับฐานข้อมูล -->
<ชื่อคุณสมบัติ="รหัสผ่าน" ค่า="root"/>
<!--ระบุจำนวนการเชื่อมต่อสูงสุดไปยังพูลการเชื่อมต่อฐานข้อมูล-->
<ชื่อคุณสมบัติ="maxPoolSize" value = "40"/>
<!-- ระบุจำนวนการเชื่อมต่อขั้นต่ำเพื่อเชื่อมต่อกับพูลการเชื่อมต่อฐานข้อมูล -->
<ชื่อคุณสมบัติ =ค่า "minPoolSize" = "1"/>
<!-- ระบุจำนวนการเชื่อมต่อเริ่มต้นเพื่อเชื่อมต่อกับพูลการเชื่อมต่อฐานข้อมูล -->
<ชื่อคุณสมบัติ =ค่า "initialPoolSize" = "1"/>
<!-- ระบุเวลาว่างสูงสุดสำหรับการเชื่อมต่อกับพูลการเชื่อมต่อฐานข้อมูล -->
<ชื่อคุณสมบัติ="maxIdleTime" value="20"/>
</ถั่ว>
<!-- กำหนด SessionFactory ของ Hibernate -->
<bean id="sessionFactory"
-
<!-- แหล่งข้อมูลการพึ่งพา การแทรกแหล่งข้อมูลที่กำหนดไว้ด้านบน -->
<ชื่อคุณสมบัติ="dataSource" ref="dataSource"/>
<!-- แอตทริบิวต์ mappingResouces ใช้เพื่อแสดงรายการไฟล์การแมปทั้งหมด -->
<ชื่อคุณสมบัติ="mappingResources">
<รายการ>
<!-- ข้อมูลต่อไปนี้ใช้เพื่อแสดงรายการไฟล์การแมปไฮเบอร์เนต-->
<value>com/b510/album/model/User.hbm.xml</value>
<value>com/b510/album/model/Photo.hbm.xml</value>
</รายการ>
</คุณสมบัติ>
<!-- กำหนดคุณสมบัติของ SessionFactory ของ Hibernate -->
<ชื่อคุณสมบัติ="hibernateProperties">
<อุปกรณ์ประกอบฉาก>
<!--ระบุภาษาถิ่นของฐานข้อมูล-->
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLInnoDBDialect</prop>
<!-- จะสร้างฐานข้อมูลโดยอัตโนมัติทุกครั้งตามต้องการ -->
<prop key="hibernate.hbm2ddl.auto">อัปเดต</prop>
<!-- แสดง SQL ที่สร้างโดยการดำเนินการคงอยู่ของไฮเบอร์เนต -->
<prop key="hibernate.show_sql">จริง</prop>
<!-- จัดรูปแบบสคริปต์ SQL แล้วส่งออก -->
<prop key="hibernate.format_sql">จริง</prop>
</อุปกรณ์ประกอบฉาก>
</คุณสมบัติ>
</ถั่ว>
<!-- กำหนดค่าส่วนประกอบ UserDao -->
<bean id="userDao"
-
<!--แทรกการอ้างอิง SessionFactory-->
<ชื่อคุณสมบัติ = "sessionFactory" ref = "sessionFactory"/>
</ถั่ว>
<!-- กำหนดค่าส่วนประกอบ PhotoDao -->
<bean id="photoDao"
-
<ชื่อคุณสมบัติ = "sessionFactory" ref = "sessionFactory"/>
</ถั่ว>
<!-- กำหนดค่าองค์ประกอบตรรกะทางธุรกิจ albumService -->
<bean id="albumService"
-
<!-- ฉีดส่วนประกอบ DAO 2 รายการลงในส่วนประกอบตรรกะทางธุรกิจ -->
<ชื่อคุณสมบัติ="userDao" ref="userDao"/>
<ชื่อคุณสมบัติ="photoDao" ref="photoDao"/>
</ถั่ว>
<!-- กำหนดค่าตัวจัดการธุรกรรมภายในเครื่องของ Hibernate ใช้คลาส HibernateTransactionManager -->
<!-- คลาสนี้ใช้อินเทอร์เฟซ PlatformTransactionManager ซึ่งเป็นการใช้งานเฉพาะสำหรับ Hibernate -->
<bean id="transactionManager"
-
<!-- เมื่อกำหนดค่า HibernateTransactionManager คุณจะต้องแทรกการอ้างอิงไปยัง SessionFactory -->
<ชื่อคุณสมบัติ = "sessionFactory" ref = "sessionFactory"/>
</ถั่ว>
<!-- กำหนดค่าด้านธุรกรรม Bean และระบุตัวจัดการธุรกรรม -->
<tx:advice id="txAdvice" Transaction-manager="transactionManager">
<!-- ใช้เพื่อกำหนดค่าซีแมนทิกส์ธุรกรรมโดยละเอียด-->
<tx:แอตทริบิวต์>
<!-- วิธีการทั้งหมดที่ขึ้นต้นด้วย 'get' เป็นแบบอ่านอย่างเดียว -->
<tx:method name="get*" read-only="true"/>
<!-- วิธีอื่นใช้การตั้งค่าธุรกรรมเริ่มต้น -->
<tx: ชื่อวิธีการ = "*"/>
</tx:แอตทริบิวต์>
</tx:คำแนะนำ>
<aop:config>
<!-- กำหนดค่า pointcut ให้ตรงกับวิธีการทั้งหมดที่ดำเนินการโดยคลาสทั้งหมดที่ลงท้ายด้วย Impl ภายใต้แพ็คเกจ lee -->
<aop:pointcut id="leeService"
expression = "การดำเนินการ (* com.b510.album.service.impl.*Impl.*(..))"/>
<!-- ระบุเพื่อใช้ลักษณะธุรกรรม txAdvice ที่จุดเข้า leeService -->
<aop:advisor คำแนะนำ-ref="txAdvice"
pointcut-ref="leeService"/>
</aop:config>
</ถั่ว>
ฟังก์ชั่นรีเซ็ต ()
-
//ล้างกล่องข้อความบรรทัดเดียวสองกล่องของผู้ใช้และรหัสผ่าน
$("#user").val("");
$("#pass").val("");
-
//สลับไปที่กล่องโต้ตอบการลงทะเบียน
ฟังก์ชั่น changeRegist()
-
//ซ่อนสองปุ่มสำหรับการเข้าสู่ระบบ
$("#loginDiv").hide("500");
// แสดงปุ่มสองปุ่มสำหรับการลงทะเบียน
$("#registDiv").show("500");
-
//ฟังก์ชั่นจัดการการเข้าสู่ระบบของผู้ใช้
ฟังก์ชั่น proLogin()
-
//รับค่าของกล่องข้อความทั้งสองอันที่ผู้ใช้และส่งผ่าน
ผู้ใช้ var = $.trim($("#user").val());
var ผ่าน = $.trim($("#pass").val());
ถ้า (ผู้ใช้ == null || ผู้ใช้ == ""
||. ผ่าน == null||.
-
alert("คุณต้องกรอกชื่อผู้ใช้และรหัสผ่านก่อนจึงจะสามารถเข้าสู่ระบบได้");
กลับเท็จ;
-
อื่น
-
//ส่งคำขอ POST แบบอะซิงโครนัสไปยัง proLogin
$.post("proLogin", $('#user,#pass').serializeArray()
, null , "สคริปต์");
-
-
//ฟังก์ชั่นที่จัดการการลงทะเบียนผู้ใช้
ฟังก์ชั่นลงทะเบียน()
-
//รับค่าของกล่องข้อความทั้งสองอันที่ผู้ใช้และส่งผ่าน
ผู้ใช้ var = $.trim($("#user").val());
var ผ่าน = $.trim($("#pass").val());
ถ้า (ผู้ใช้ == null || ผู้ใช้ == "" || ผ่าน == null || ผ่าน =="")
-
alert("คุณต้องกรอกชื่อผู้ใช้และรหัสผ่านก่อนลงทะเบียน");
กลับเท็จ;
-
อื่น
-
//ส่งคำขอ POST แบบอะซิงโครนัสไปยัง proRegist
$.post("proRegist", $('#user,#pass').serializeArray()
, null , "สคริปต์");
-
-
//ตรวจสอบว่าชื่อผู้ใช้ว่างหรือไม่
ฟังก์ชั่น validateName()
-
// รับค่าของกล่องข้อความของผู้ใช้
ผู้ใช้ var = $.trim($("#user").val());
ถ้า (ผู้ใช้ == null || ผู้ใช้ == "")
-
alert("คุณยังไม่ได้กรอกชื่อผู้ใช้!");
กลับเท็จ;
-
อื่น
-
//ส่งคำขอ POST แบบอะซิงโครนัสไปยัง validateName
$.post("validateName", $('#user').serializeArray()
, null , "สคริปต์");
-
-
// รับรูปถ่ายของผู้ใช้ปัจจุบันและหน้าปัจจุบันเป็นระยะ
ฟังก์ชั่น onLoadHandler()
-
//ส่งแบบอะซิงโครนัส GET ขอ getPhoto
$.getScript("getPhoto");
//ดำเนินการวิธีนี้อีกครั้งหลังจากระบุ 1 วินาที
setTimeout("onLoadHandler()", 1000);
-
//แสดงรูปภาพ
ฟังก์ชั่น showImg (ชื่อไฟล์)
-
$.getScript("showImg?img=" + ชื่อไฟล์);
// document.getElementById("show").src="uploadfiles/" + fileName + "?now=" + new Date();
// $("#show").attr("src" , "uploadfiles/" + ชื่อไฟล์);
-
//ฟังก์ชั่นสำหรับจัดการการเปลี่ยนหน้า
ฟังก์ชั่น TurnPage (แฟล็ก)
-
$.getScript("turnPage?turn=" + flag);
-
//เปิดหน้าต่างอัพโหลด
ฟังก์ชั่น openUpload()
-
$("#uploadDiv").show()
.โต้ตอบ(
-
กิริยา: จริง,
ปรับขนาดได้: เท็จ
ความกว้าง: 428,
ส่วนสูง: 220,
ภาพซ้อนทับ: {ความทึบ: 0.5 พื้นหลัง: "สีดำ"}
-
-
นำเข้า javax.servlet.ServletConfig;
นำเข้า javax.servlet.ServletException;
นำเข้า javax.servlet.http.HttpServlet;
นำเข้า org.springframework.context.ApplicationContext;
นำเข้า org.springframework.web.context.support.WebApplicationContextUtils;
นำเข้า com.b510.album.service.AlbumService;
-
-
* @ผู้เขียน Hongten
-
-
BaseServlet คลาสสาธารณะขยาย HttpServlet {
serialVersionUID ยาวสุดท้ายแบบคงที่ส่วนตัว = -2041755371540813745L;
ป้องกัน AlbumService เป็น;
//กำหนด Constructor และรับข้อมูลอ้างอิงไปยัง Spring Container
โมฆะสาธารณะ init (การกำหนดค่า ServletConfig) พ่น ServletException {
super.init(กำหนดค่า);
ApplicationContext ctx = WebApplicationContextUtils
.getWebApplicationContext(getServletContext());
as = (AlbumService) ctx.getBean("albumService");
-
-
นำเข้า java.io.IOException;
นำเข้า java.io.PrintWriter;
นำเข้า javax.servlet.ServletException;
นำเข้า javax.servlet.http.HttpServletRequest;
นำเข้า javax.servlet.http.HttpServletResponse;
นำเข้า com.b510.album.Exception.AlbumException;
นำเข้า com.b510.album.web.base.BaseServlet;
-
-
* @ผู้เขียน Hongten
-
-
ValidateNameServlet ระดับสาธารณะขยาย BaseServlet {
serialVersionUID ยาวสุดท้ายแบบคงที่ส่วนตัว = 9038839276327742641L;
บริการโมฆะสาธารณะ (คำขอ HttpServletRequest, การตอบสนอง HttpServletResponse)
พ่น IOException, ServletException {
ชื่อสตริง = request.getParameter("ผู้ใช้");
response.setContentType("text/javascript;charset=GBK");
// รับกระแสเอาต์พุต
PrintWriter ออก = response.getWriter();
พยายาม {
ถ้า (ชื่อ != null) {
ถ้า (as.validateName (ชื่อ)) {
out.println("alert('ขอแสดงความยินดี ยังไม่มีการใช้ชื่อผู้ใช้นี้ คุณสามารถใช้ชื่อผู้ใช้นี้ได้!');");
} อื่น {
out.println("alert('ขออภัย มีคนอื่นใช้ชื่อผู้ใช้นี้แล้ว!');");
out.println("$('#user').val('');");
-
} อื่น {
out.println("alert('มีข้อยกเว้นเกิดขึ้นขณะตรวจสอบชื่อผู้ใช้ กรุณาเปลี่ยนชื่อผู้ใช้และลองใหม่อีกครั้ง!');");
-
} จับ (AlbumException เช่น) {
out.println("alert('" + ex.getMessage() + "กรุณาเปลี่ยนชื่อผู้ใช้แล้วลองอีกครั้ง!');");
-
-
-
นำเข้า java.io.IOException;
นำเข้า java.io.PrintWriter;
นำเข้า java.util.List;
นำเข้า javax.servlet.ServletException;
นำเข้า javax.servlet.http.HttpServletRequest;
นำเข้า javax.servlet.http.HttpServletResponse;
นำเข้า javax.servlet.http.HttpSession;
นำเข้า com.b510.album.Exception.AlbumException;
นำเข้า com.b510.album.vo.PhotoHolder;
นำเข้า com.b510.album.web.base.BaseServlet;
-
-
* @ผู้เขียน Hongten
-
-
TurnPageServlet คลาสสาธารณะขยาย BaseServlet {
serialVersionUID ยาวสุดท้ายแบบคงที่ส่วนตัว = -5097286750384714951L;
บริการโมฆะสาธารณะ (คำขอ HttpServletRequest, การตอบสนอง HttpServletResponse)
พ่น IOException, ServletException {
สตริงเทิร์น = request.getParameter("turn");
เซสชัน HttpSession = request.getSession (จริง);
ชื่อสตริง = (สตริง) session.getAttribute("curUser");
วัตถุ pageObj = session.getAttribute("curPage");
// หาก curPage ใน HttpSession เป็น null ให้ตั้งค่าหน้าปัจจุบันเป็นหน้าแรก
int curPage = pageObj == null ? 1 : (จำนวนเต็ม) pageObj;
response.setContentType("text/javascript;charset=GBK");
PrintWriter ออก = response.getWriter();
ถ้า (curPage == 1 && turn.equals("-1")) {
out.println("alert('ขณะนี้เป็นหน้าแรก ไม่สามารถเลื่อนหน้าได้!')");
} อื่น {
// ดำเนินการเปลี่ยนหน้าและแก้ไขค่าของ curPage
curPage += Integer.parseInt(เลี้ยว);
พยายาม {
รายการรูปภาพ <PhotoHolder> = as.getPhotoByUser(ชื่อ, curPage);
// ไม่มีบันทึกหลังจากพลิกหน้า
ถ้า (photos.size() == 0) {
out.println("alert('ไม่พบบันทึกภาพถ่ายหลังจากพลิกหน้า ระบบจะกลับสู่หน้าก่อนหน้าโดยอัตโนมัติ')");
//กลับสู่หน้าที่แล้ว
curPage -= Integer.parseInt(เลี้ยว);
} อื่น {
//ใส่หมายเลขหน้าที่ผู้ใช้เรียกดูใน HttpSession
session.setAttribute("curPage", curPage);
-
} จับ (AlbumException เช่น) {
out.println("alert('" + ex.getMessage() + "โปรดลองอีกครั้ง!')");
-
-
-
-
นำเข้า java.io.IOException;
นำเข้า java.io.PrintWriter;
นำเข้า javax.servlet.ServletException;
นำเข้า javax.servlet.http.HttpServletRequest;
นำเข้า javax.servlet.http.HttpServletResponse;
นำเข้า javax.servlet.http.HttpSession;
นำเข้า com.b510.album.web.base.BaseServlet;
-
-
* @ผู้เขียน Hongten
-
-
ShowImgServlet คลาสสาธารณะขยาย BaseServlet {
serialVersionUID ยาวสุดท้ายแบบคงที่ส่วนตัว = 1460203270448078666L;
บริการโมฆะสาธารณะ (คำขอ HttpServletRequest, การตอบสนอง HttpServletResponse)
พ่น IOException, ServletException {
สตริง img = request.getParameter("img");
เซสชัน HttpSession = request.getSession (จริง);
//ใส่ภาพที่ผู้ใช้กำลังเรียกดูลงใน HttpSession
session.setAttribute("curImg", img);
response.setContentType("text/javascript;charset=GBK");
// รับกระแสเอาต์พุต
PrintWriter ออก = response.getWriter();
out.println("$('#show').attr('src' , 'uploadfiles/" + img + "');");
-
-
นำเข้า java.io.FileOutputStream;
นำเข้า java.io.IOException;
นำเข้า java.io.InputStream;
นำเข้า java.io.PrintWriter;
นำเข้า java.util.Iterator;
นำเข้า java.util.List;
นำเข้า javax.servlet.ServletException;
นำเข้า javax.servlet.http.HttpServletRequest;
นำเข้า javax.servlet.http.HttpServletResponse;
นำเข้า org.apache.commons.fileupload.FileItem;
นำเข้า org.apache.commons.fileupload.FileItemFactory;
นำเข้า org.apache.commons.fileupload.FileUploadException;
นำเข้า org.apache.commons.fileupload.disk.DiskFileItemFactory;
นำเข้า org.apache.commons.fileupload.servlet.ServletFileUpload;
นำเข้า com.b510.album.Exception.AlbumException;
นำเข้า com.b510.album.web.base.BaseServlet;
-
-
* @ผู้เขียน Hongten
-
-
@SuppressWarnings("ไม่ได้เลือก")
ProUploadServlet คลาสสาธารณะขยาย BaseServlet {
serialVersionUID ยาวสุดท้ายแบบคงที่ส่วนตัว = 642229801989188793L;
บริการโมฆะสาธารณะ (คำขอ HttpServletRequest, การตอบสนอง HttpServletResponse)
พ่น IOException, ServletException {
ตัววนซ้ำ = null;
ชื่อสตริง = null;
response.setContentType("text/html;charset=GBK");
// รับกระแสเอาต์พุต
PrintWriter ออก = response.getWriter();
out.println("<script type='text/javascript>'");
พยายาม {
//ใช้ Uploader เพื่อจัดการการอัพโหลด
โรงงาน FileItemFactory = ใหม่ DiskFileItemFactory();
อัปโหลด ServletFileUpload = ใหม่ ServletFileUpload (โรงงาน);
รายการ = upload.parseRequest (คำขอ);
iter = items.iterator();
// สำรวจเนื้อหาที่สอดคล้องกับการควบคุมแต่ละแบบฟอร์ม
ในขณะที่ (iter.hasNext()) {
รายการ FileItem = (รายการไฟล์) iter.next();
// หากรายการเป็นช่องแบบฟอร์มปกติ
ถ้า (item.isFormField()) {
ชื่อสตริง = item.getFieldName();
ถ้า (name.equals("title")) {
title = item.getString("GBK");
-
-
// หากเป็นไฟล์ที่ต้องอัพโหลด
อื่น {
ผู้ใช้สตริง = (สตริง) request.getSession().getAttribute(
"curUser");
สตริง serverFileName = null;
//ส่งคืนชื่อไฟล์
ชื่อไฟล์สตริง = item.getName();
// รับคำต่อท้ายไฟล์
สตริง appden = fileName.substring (fileName
.lastIndexOf("."));
//ส่งคืนประเภทไฟล์
สตริง contentType = item.getContentType();
// อนุญาตให้อัปโหลดเฉพาะรูปภาพ jpg, gif และ png เท่านั้น
ถ้า (contentType.equals("image/pjpeg")
||. contentType.equals("รูปภาพ/gif")
||. contentType.equals("รูปภาพ/jpeg")
||. contentType.equals("รูปภาพ/png")) {
อินพุต InputStream = item.getInputStream();
serverFileName = String.valueOf (System
.currentTimeMillis());
เอาต์พุต FileOutputStream = FileOutputStream ใหม่ (
getServletContext().getRealPath("/")
+ "uploadfiles//" + serverFileName
+ ต่อท้าย);
ไบต์ [] บัฟเฟอร์ = ไบต์ใหม่ [1024];
อินท์เลน = 0;
ในขณะที่ ((len = input.read (บัฟเฟอร์)) > 0) {
เอาท์พุทเขียน (บัฟเฟอร์, 0, เลน);
-
อินพุต.ปิด();
เอาท์พุท.ปิด();
as.addPhoto (ผู้ใช้, ชื่อ, serverFileName + appden);
response.sendRedirect("album.html?resultCode=0");
} อื่น {
response.sendRedirect("album.html?resultCode=1");
-
-
-
} จับ (เชื้อเพลิง FileUploadException) {
fue.printStackTrace();
response.sendRedirect("album.html?resultCode=2");
} จับ (AlbumException เช่น) {
เช่น printStackTrace();
-
-
-
นำเข้า java.io.IOException;
นำเข้า java.io.PrintWriter;
นำเข้า javax.servlet.ServletException;
นำเข้า javax.servlet.http.HttpServletRequest;
นำเข้า javax.servlet.http.HttpServletResponse;
นำเข้า javax.servlet.http.HttpSession;
นำเข้า com.b510.album.Exception.AlbumException;
นำเข้า com.b510.album.web.base.BaseServlet;
-
-
* @ผู้เขียน Hongten
-
-
ProRegistServlet คลาสสาธารณะขยาย BaseServlet {
serialVersionUID ยาวสุดท้ายแบบคงที่ส่วนตัว = -3174994243043815566L;
บริการโมฆะสาธารณะ (คำขอ HttpServletRequest, การตอบสนอง HttpServletResponse)
พ่น IOException, ServletException {
ชื่อสตริง = request.getParameter("ผู้ใช้");
สตริงผ่าน = request.getParameter("pass");
response.setContentType("text/javascript;charset=GBK");
// รับกระแสเอาต์พุต
PrintWriter ออก = response.getWriter();
พยายาม {
out.println("$('#user,#pass').val('');");
ถ้า (ชื่อ != null && pass != null && as.registUser(ชื่อ, ผ่าน) > 0) {
เซสชัน HttpSession = request.getSession (จริง);
session.setAttribute("curUser", ชื่อ);
out.println("alert('ขอแสดงความยินดี คุณได้ลงทะเบียนเรียบร้อยแล้ว!');");
out.println("$('#noLogin').hide(500);");
out.println("$('#hasLogin').show(500);");
//เรียกวิธีการรับรายการรูปภาพ
out.println("onLoadHandler();");
} อื่น {
out.println("alert('การลงทะเบียนของคุณล้มเหลว โปรดเลือกชื่อผู้ใช้ที่เหมาะสมแล้วลองอีกครั้ง!');");
-
} จับ (AlbumException เช่น) {
out.println("alert('" + ex.getMessage() + "กรุณาเปลี่ยนชื่อผู้ใช้แล้วลองอีกครั้ง!');");
-
-
-
นำเข้า java.io.IOException;
นำเข้า java.io.PrintWriter;
นำเข้า javax.servlet.ServletException;
นำเข้า javax.servlet.http.HttpServletRequest;
นำเข้า javax.servlet.http.HttpServletResponse;
นำเข้า javax.servlet.http.HttpSession;
นำเข้า com.b510.album.Exception.AlbumException;
นำเข้า com.b510.album.web.base.BaseServlet;
-
-
* @ผู้เขียน Hongten
-
-
ProLoginServlet คลาสสาธารณะขยาย BaseServlet {
serialVersionUID ยาวสุดท้ายแบบคงที่ส่วนตัว = -1253530202224049958L;
บริการโมฆะสาธารณะ (คำขอ HttpServletRequest, การตอบสนอง HttpServletResponse)
พ่น IOException, ServletException {
ชื่อสตริง = request.getParameter("ผู้ใช้");
สตริงผ่าน = request.getParameter("pass");
response.setContentType("text/javascript;charset=GBK");
// รับกระแสเอาต์พุต
PrintWriter ออก = response.getWriter();
พยายาม {
// ล้างเนื้อหาของกล่องอินพุตด้วย ID ของผู้ใช้และรหัสผ่าน
out.println("$('#user,#pass').val('');");
ถ้า (ชื่อ != null && ผ่าน != null && as.userLogin (ชื่อ, ผ่าน)) {
เซสชัน HttpSession = request.getSession (จริง);
session.setAttribute("curUser", ชื่อ);
out.println("alert('คุณเข้าสู่ระบบเรียบร้อยแล้ว!')");
out.println("$('#noLogin').hide(500)");
out.println("$('#hasLogin').show(500)");
//เรียกวิธีการรับรายการรูปภาพ
out.println("onLoadHandler();");
} อื่น {
out.println("alert('ชื่อผู้ใช้และรหัสผ่านที่คุณป้อนไม่ตรงกัน โปรดลองอีกครั้ง!')");
-
} จับ (AlbumException เช่น) {
out.println("alert('" + ex.getMessage() + "กรุณาเปลี่ยนชื่อผู้ใช้และรหัสผ่านแล้วลองอีกครั้ง!')");
-
-
-
นำเข้า java.io.IOException;
นำเข้า java.io.PrintWriter;
นำเข้า javax.servlet.ServletException;
นำเข้า javax.servlet.http.HttpServletRequest;
นำเข้า javax.servlet.http.HttpServletResponse;
นำเข้า javax.servlet.http.HttpSession;
นำเข้า com.b510.album.web.base.BaseServlet;
-
-
* @ผู้เขียน Hongten
-
-
PageLoadServlet คลาสสาธารณะขยาย BaseServlet {
serialVersionUID ยาวสุดท้ายคงที่ส่วนตัว = 7512001492425261841L;
บริการโมฆะสาธารณะ (คำขอ HttpServletRequest, การตอบสนอง HttpServletResponse)
พ่น IOException, ServletException {
response.setContentType("text/javascript;charset=GBK");
// รับกระแสเอาต์พุต
PrintWriter ออก = response.getWriter();
เซสชัน HttpSession = request.getSession (จริง);
ชื่อสตริง = (สตริง) session.getAttribute("curUser");
// หากชื่อไม่เป็นโมฆะ แสดงว่าผู้ใช้เข้าสู่ระบบแล้ว
ถ้า (ชื่อ != null) {
//ซ่อนองค์ประกอบด้วย id noLogin (แผงเข้าสู่ระบบของผู้ใช้)
out.println("$('#noLogin').hide()");
//ซ่อนองค์ประกอบด้วยรหัส hasLogin (แผงควบคุมผู้ใช้)
out.println("$('#hasLogin').show()");
//เรียกวิธีการรับรายการรูปภาพ
out.println("onLoadHandler();");
// นำแอตทริบิวต์ curImg ใน HttpSession ออก
สตริง curImg = (สตริง) session.getAttribute("curImg");
//แสดงรูปภาพที่ผู้ใช้กำลังเรียกดูอีกครั้ง
ถ้า (curImg != null) {
out.println("$('#show').attr('src' , 'uploadfiles/" + curImg
-
-
-
-
-
นำเข้า java.io.IOException;
นำเข้า java.io.PrintWriter;
นำเข้า java.util.List;
นำเข้า javax.servlet.ServletException;
นำเข้า javax.servlet.http.HttpServletRequest;
นำเข้า javax.servlet.http.HttpServletResponse;
นำเข้า javax.servlet.http.HttpSession;
นำเข้า com.b510.album.Exception.AlbumException;
นำเข้า com.b510.album.vo.PhotoHolder;
นำเข้า com.b510.album.web.base.BaseServlet;
-
-
* @ผู้เขียน Hongten
-
-
GetPhotoServlet คลาสสาธารณะขยาย BaseServlet {
serialVersionUID ยาวสุดท้ายแบบคงที่ส่วนตัว = -8380695760546582385L;
บริการโมฆะสาธารณะ (คำขอ HttpServletRequest, การตอบสนอง HttpServletResponse)
พ่น IOException, ServletException {
เซสชัน HttpSession = request.getSession (จริง);
// รับหมายเลขหน้าปัจจุบันของผู้ใช้ปัจจุบันและรายการรูปภาพของระบบจาก HttpSession
ชื่อสตริง = (สตริง) session.getAttribute("curUser");
วัตถุ pageObj = session.getAttribute("curPage");
// หาก curPage ใน HttpSession เป็น null ให้ตั้งค่าหน้าปัจจุบันเป็นหน้าแรก
int curPage = pageObj == null ? 1 : (จำนวนเต็ม) pageObj;
response.setContentType("text/javascript;charset=GBK");
// รับกระแสเอาต์พุต
PrintWriter ออก = response.getWriter();
พยายาม {
รายการรูปภาพ <PhotoHolder> = as.getPhotoByUser(ชื่อ, curPage);
// ล้างองค์ประกอบด้วย id ของรายการ
out.println("var list = $('#list').empty();");
สำหรับ (PhotoHolder ph : รูปภาพ) {
// เพิ่มภาพถ่ายแต่ละภาพไปยังองค์ประกอบแบบไดนามิกด้วยรหัสของรายการ
out.println("list.append(/"<div align='center'>"
+ "<a href='javascript:void(0)' onclick=///"showImg('"
+ ph.getFileName() + "');///">" + ph.getTitle()
+ "</a></div>/");");
-
} จับ (AlbumException เช่น) {
out.println("alert('" + ex.getMessage() + "โปรดลองอีกครั้ง!')");
-
-
-
-
-
* @ผู้เขียน Hongten
-
-
PhotoHolder ระดับสาธารณะ {
//ชื่อภาพ.
ชื่อสตริงส่วนตัว
//ชื่อไฟล์ของภาพถ่ายบนเซิร์ฟเวอร์
ชื่อไฟล์สตริงส่วนตัว;
// Constructor ที่ไม่มีพารามิเตอร์
PhotoHolder สาธารณะ () {
-
// Constructor เพื่อเริ่มต้นคุณสมบัติทั้งหมด
PhotoHolder สาธารณะ (ชื่อสตริง ชื่อไฟล์สตริง) {
this.title = ชื่อ;
this.fileName = ชื่อไฟล์;
-
//วิธี setter และ getter ของแอตทริบิวต์ title
setTitle โมฆะสาธารณะ (ชื่อสตริง) {
this.title = ชื่อ;
-
สตริงสาธารณะ getTitle() {
กลับ this.title;
-
//วิธี Setter และ Getter ของแอตทริบิวต์ fileName
โมฆะสาธารณะ setFileName (ชื่อไฟล์สตริง) {
this.fileName = ชื่อไฟล์;
-
สตริงสาธารณะ getFileName() {
ส่งคืน this.fileName;
-
-
นำเข้า java.util.ArrayList;
นำเข้า java.util.List;
นำเข้า com.b510.album.dao.PhotoDao;
นำเข้า com.b510.album.dao.UserDao;
นำเข้า com.b510.album.Exception.AlbumException;
นำเข้า com.b510.album.model.Photo;
นำเข้า com.b510.album.model.User;
นำเข้า com.b510.album.service.AlbumService;
นำเข้า com.b510.album.vo.PhotoHolder;
-
-
* @ผู้เขียน Hongten
-
-
AlbumServiceImpl ระดับสาธารณะใช้ AlbumService {
// 2 ส่วนประกอบ DAO ที่ส่วนประกอบตรรกะทางธุรกิจขึ้นอยู่กับ
UserDao ส่วนตัว ud = null;
PhotoDao ส่วนตัว pd = null;
// การพึ่งพาการฉีดวิธี setter ที่ต้องการโดยส่วนประกอบ DAO 2 ตัว
โมฆะสาธารณะ setUserDao (UserDao ud) {
นี่.ud = ud;
-
โมฆะสาธารณะ setPhotoDao (PhotoDao pd) {
นี่.pd = pd;
-
-
* ตรวจสอบว่าการเข้าสู่ระบบของผู้ใช้สำเร็จหรือไม่
-
* @ชื่อพาราม
* ชื่อผู้ใช้เข้าสู่ระบบ
* @param ผ่าน
* รหัสผ่านเข้าสู่ระบบ
* @return ผลลัพธ์ของการเข้าสู่ระบบของผู้ใช้ จะคืนค่าเป็นจริงหากสำเร็จ มิฉะนั้นจะส่งคืนค่าเท็จ
-
userLogin บูลีนสาธารณะ (ชื่อสตริง, สตริงพาส) {
พยายาม {
// ใช้ UserDao เพื่อสอบถามผู้ใช้ตามชื่อผู้ใช้
ผู้ใช้ u = ud.findByName (ชื่อ);
ถ้า (u != null && u.getPass().เท่ากับ(ผ่าน)) {
กลับเป็นจริง;
-
กลับเท็จ;
} จับ (ข้อยกเว้นเช่น) {
เช่น printStackTrace();
โยน AlbumException ใหม่ ("มีข้อยกเว้นเกิดขึ้นขณะประมวลผลการเข้าสู่ระบบของผู้ใช้!");
-
-
-
* ลงทะเบียนผู้ใช้ใหม่
-
* @ชื่อพาราม
* Username ของผู้ใช้ที่ลงทะเบียนใหม่
* @param ผ่าน
* รหัสผ่านสำหรับผู้ใช้ที่ลงทะเบียนใหม่
* @return คีย์หลักของผู้ใช้ที่ลงทะเบียนใหม่
-
public int registUser (ชื่อสตริง, สตริงพาส) {
พยายาม {
//สร้างอินสแตนซ์ผู้ใช้ใหม่
ผู้ใช้ u = ผู้ใช้ใหม่ ();
u.setName(ชื่อ);
u.setPass(ผ่าน);
// ยืนยันวัตถุผู้ใช้
ud.บันทึก(u);
กลับ u.getId();
} จับ (ข้อยกเว้นเช่น) {
เช่น printStackTrace();
โยน AlbumException ใหม่ ("มีข้อยกเว้นเกิดขึ้นระหว่างการลงทะเบียนผู้ใช้ใหม่!");
-
-
-
* เพิ่มรูปภาพ
-
* ผู้ใช้ @param
* ผู้ใช้ที่เพิ่มรูปภาพ
* @ชื่อพารามิเตอร์
* เพิ่มชื่อให้กับรูปภาพของคุณ
* @param ชื่อไฟล์
* เพิ่มชื่อไฟล์รูปภาพบนเซิร์ฟเวอร์
* @return คีย์หลักของรูปภาพที่เพิ่มใหม่
-
int addPhoto สาธารณะ (ผู้ใช้สตริง ชื่อสตริง ชื่อไฟล์สตริง) {
พยายาม {
//สร้างตัวอย่างภาพถ่ายใหม่
รูปภาพ p = รูปภาพใหม่ ();
p.setTitle(หัวเรื่อง);
p.setFileName(ชื่อไฟล์);
p.setUser(ud.findByName(ผู้ใช้));
// ตัวอย่างภาพถ่ายถาวร
pd.บันทึก(p);
กลับ p.getId();
} จับ (ข้อยกเว้นเช่น) {
เช่น printStackTrace();
โยน AlbumException ใหม่ ("มีข้อยกเว้นเกิดขึ้นระหว่างการเพิ่มรูปภาพ!");
-
-
-
* รับรูปถ่ายทั้งหมดของผู้ใช้ตามผู้ใช้
-
* ผู้ใช้ @param
* ผู้ใช้ปัจจุบัน
* @param เพจNo
*หมายเลขหน้า
* @return ส่งกลับภาพถ่ายของผู้ใช้และหน้าที่ระบุ
-
รายการสาธารณะ <PhotoHolder> getPhotoByUser (ผู้ใช้ String, int pageNo) {
พยายาม {
รายการ <ภาพถ่าย> pl = pd.findByUser(ud.findByName(ผู้ใช้), pageNo);
รายการ <PhotoHolder> ผลลัพธ์ = ArrayList ใหม่ <PhotoHolder>();
สำหรับ (รูปภาพ p : pl) {
result.add(PhotoHolder ใหม่(p.getTitle(), p.getFileName()));
-
ส่งคืนผลลัพธ์;
} จับ (ข้อยกเว้นเช่น) {
เช่น printStackTrace();
โยน AlbumException ใหม่ ("มีข้อยกเว้นเกิดขึ้นขณะสอบถามรายการรูปภาพ!");
-
-
-
* ตรวจสอบว่าชื่อผู้ใช้นั้นสามารถใช้ได้หรือไม่ กล่าวคือ มีชื่อผู้ใช้นั้นอยู่ในฐานข้อมูลแล้วหรือไม่
-
* @ชื่อพาราม
* ชื่อผู้ใช้ที่ต้องได้รับการยืนยัน
* @return คืนค่าเป็นจริงหากมีชื่อผู้ใช้ มิฉะนั้นจะส่งคืนค่าเท็จ
-
validateName บูลีนสาธารณะ (ชื่อสตริง) {
พยายาม {
// ค้นหาอินสแตนซ์ผู้ใช้ที่เกี่ยวข้องตามชื่อผู้ใช้
ผู้ใช้ u = ud.findByName (ชื่อ);
ถ้า (u != null) {
กลับเท็จ;
-
กลับเป็นจริง;
} จับ (ข้อยกเว้นเช่น) {
เช่น printStackTrace();
โยน AlbumException ใหม่ ("มีข้อยกเว้นเกิดขึ้นระหว่างกระบวนการตรวจสอบว่ามีชื่อผู้ใช้อยู่หรือไม่!");
-
-
-
นำเข้า java.util.List;
นำเข้า com.b510.album.vo.PhotoHolder;
-
-
* @ผู้เขียน Hongten
-
-
อินเทอร์เฟซสาธารณะ AlbumService {
-
* ตรวจสอบว่าผู้ใช้เข้าสู่ระบบสำเร็จหรือไม่
-
* @ชื่อพาราม
* ชื่อผู้ใช้เข้าสู่ระบบ
* @param ผ่าน
* รหัสผ่านเข้าสู่ระบบ
* @return ผลลัพธ์ของการเข้าสู่ระบบของผู้ใช้ จะคืนค่าเป็นจริงหากสำเร็จ มิฉะนั้นจะส่งคืนค่าเท็จ
-
ผู้ใช้บูลีนเข้าสู่ระบบ (ชื่อสตริง, รหัสผ่านสตริง);
-
* ลงทะเบียนผู้ใช้ใหม่
-
* @ชื่อพาราม
* Username ของผู้ใช้ที่ลงทะเบียนใหม่
* @param ผ่าน
* รหัสผ่านสำหรับผู้ใช้ที่ลงทะเบียนใหม่
* @return คีย์หลักของผู้ใช้ที่ลงทะเบียนใหม่
-
int registerUser (ชื่อสตริง, สตริงพาส);
-
* เพิ่มรูปภาพ
-
* ผู้ใช้ @param
* ผู้ใช้ที่เพิ่มรูปภาพ
* @ชื่อพารามิเตอร์
* เพิ่มชื่อให้กับรูปภาพของคุณ
* @param ชื่อไฟล์
* เพิ่มชื่อไฟล์รูปภาพบนเซิร์ฟเวอร์
* @return คีย์หลักของรูปภาพที่เพิ่มใหม่
-
int addPhoto (ผู้ใช้สตริง, ชื่อสตริง, ชื่อไฟล์สตริง);
-
* รับรูปถ่ายทั้งหมดของผู้ใช้ตามผู้ใช้
-
* ผู้ใช้ @param
* ผู้ใช้ปัจจุบัน
* @param เพจNo
*หมายเลขหน้า
* @return ส่งกลับภาพถ่ายของผู้ใช้และหน้าที่ระบุ
-
รายการ <PhotoHolder> getPhotoByUser(ผู้ใช้สตริง, int pageNo);
-
* ตรวจสอบว่าชื่อผู้ใช้นั้นสามารถใช้ได้หรือไม่ กล่าวคือ มีชื่อผู้ใช้นั้นอยู่ในฐานข้อมูลแล้วหรือไม่
-
* @ชื่อพาราม
* ชื่อผู้ใช้ที่ต้องได้รับการยืนยัน
* @return คืนค่าเป็นจริงหากมีชื่อผู้ใช้ มิฉะนั้นจะส่งคืนค่าเท็จ
-
บูลีน validateName (ชื่อสตริง);
-
-
* คลาสเอนทิตีภาพถ่าย
-
* @ผู้เขียน Hongten
-
-
ภาพถ่ายชั้นเรียนสาธารณะ {
//แอตทริบิวต์การระบุ
รหัสจำนวนเต็มส่วนตัว
//ชื่อภาพ.
ชื่อสตริงส่วนตัว
//ชื่อไฟล์ของภาพถ่ายบนเซิร์ฟเวอร์
ชื่อไฟล์สตริงส่วนตัว;
// บันทึกผู้ใช้ที่เป็นของรูปภาพ
ผู้ใช้ส่วนตัว;
// Constructor ที่ไม่มีพารามิเตอร์
ภาพถ่ายสาธารณะ() {
-
// Constructor เพื่อเริ่มต้นคุณสมบัติทั้งหมด
ภาพถ่ายสาธารณะ (ID จำนวนเต็ม, ชื่อสตริง, ชื่อไฟล์สตริง, ผู้ใช้ผู้ใช้) {
this.id = ไอดี;
this.title = title;
this.filename = ชื่อไฟล์;
this.user = ผู้ใช้;
-
// วิธีการตั้งค่าและ getter ของแอตทริบิวต์ id
โมฆะสาธารณะ setId (จำนวนเต็ม) {
this.id = ไอดี;
-
จำนวนเต็มสาธารณะ getId () {
ส่งคืนสิ่งนี้
-
// วิธีการตั้งค่าและ getter ของแอตทริบิวต์ชื่อเรื่อง
โมฆะสาธารณะ Settitle (ชื่อสตริง) {
this.title = title;
-
สตริงสาธารณะ getTitle () {
ส่งคืนสิ่งนี้ title;
-
// วิธีการตั้งค่าและ getter ของแอตทริบิวต์ชื่อไฟล์
โมฆะสาธารณะ setFilename (ชื่อไฟล์สตริง) {
this.filename = ชื่อไฟล์;
-
สตริงสาธารณะ getFilename () {
ส่งคืนสิ่งนี้ filename;
-
// วิธีการตั้งค่าและ getter ของแอตทริบิวต์ผู้ใช้
โมฆะสาธารณะ setUser (ผู้ใช้ผู้ใช้) {
this.user = ผู้ใช้;
-
ผู้ใช้สาธารณะ getUser () {
ส่งคืนสิ่งนี้ผู้ใช้;
-
-
นำเข้า java.util.set;
นำเข้า java.util.hashset;
-
* คลาสเอนทิตีผู้ใช้
-
* @ผู้เขียน Hongten
-
-
ผู้ใช้ระดับสาธารณะ {
// คุณลักษณะการระบุตัวตน
ID จำนวนเต็มส่วนตัว;
// ชื่อผู้ใช้ของผู้ใช้
ชื่อสตริงส่วนตัว
// รหัสผ่านของผู้ใช้รายนี้
พาสสตริงส่วนตัว;
// ใช้ SET เพื่อบันทึกรูปภาพที่เกี่ยวข้องกับผู้ใช้รายนี้
ชุดส่วนตัว <PHOTOS> Photos = ใหม่ HashSet <Photo> ();
// ตัวสร้างที่ไม่มีพารามิเตอร์
ผู้ใช้สาธารณะ () {
-
// ตัวสร้างเพื่อเริ่มต้นคุณสมบัติทั้งหมด
ผู้ใช้สาธารณะ (ID จำนวนเต็ม, ชื่อสตริง, สตริงผ่าน) {
this.id = ไอดี;
this.name = ชื่อ;
this.pass = pass;
-
// วิธีการตั้งค่าและ getter ของแอตทริบิวต์ id
โมฆะสาธารณะ setId (จำนวนเต็ม) {
this.id = ไอดี;
-
จำนวนเต็มสาธารณะ getId () {
ส่งคืนสิ่งนี้
-
// วิธีการตั้งค่าและ getter ของแอตทริบิวต์ชื่อ
setName โมฆะสาธารณะ (ชื่อสตริง) {
this.name = ชื่อ;
-
สตริงสาธารณะ getName() {
ส่งคืน this.name;
-
// วิธีการตั้งค่าและ getter ของแอตทริบิวต์ PASS
โมฆะสาธารณะ setpass (พาสสตริง) {
this.pass = pass;
-
สตริงสาธารณะ getPass () {
ส่งคืนสิ่งนี้ผ่าน;
-
// วิธีการตั้งค่าและ getter ของแอตทริบิวต์ภาพถ่าย
โมฆะสาธารณะ setPhotos (ตั้งค่า <fothons> รูปภาพ) {
this.photos = photos;
-
ชุดสาธารณะ <Photo> getPhotos () {
ส่งคืนสิ่งนี้ photos;
-
-
-
*ข้อยกเว้นที่กำหนดเอง
-
* @ผู้เขียน Hongten
-
-
Public Class AlbumException ขยาย RuntimeException {
ส่วนตัวคงที่สุดท้าย Long SerialVersionUID = 8050756054850450421L;
// ระบุตัวสร้างแบบไม่มีพารามิเตอร์
public publicexception () {
-
// ระบุตัวสร้างที่มีพารามิเตอร์สตริง
Public AlbumException (String msg) {
super (msg);
-
-
นำเข้า java.sql.SQLException;
นำเข้า java.util.List;
นำเข้า org.hibernate.HibernateException;
นำเข้า org.hibernate.Query;
นำเข้า org.hibernate.session;
นำเข้า org.springframework.orm.hibernate3.hibernateCallback;
นำเข้า org.springframework.orm.hibernate3.support.hibernatedaosupport;
-
-
* @ผู้เขียน Hongten
-
-
@suppresswarnings ("ไม่ได้ตรวจสอบ")
ชั้นเรียนสาธารณะ Hongtenhibernatedaosupport ขยาย Hibernatedaosupport {
-
* ใช้คำสั่ง HQL สำหรับการดำเนินการค้นหาเพจ
-
* @param hql
* คำสั่ง HQL ที่จะสอบถาม
* @param ชดเชย
* ดัชนีของระเบียนแรก
* @param PageSize
*จำนวนระเบียนที่จะแสดงในแต่ละหน้า
* @return บันทึกทั้งหมดของหน้าปัจจุบัน
-
รายการสาธารณะ findByPage (สตริงสุดท้าย HQL, Final Int Offset,
หน้า int สุดท้าย) {
รายการรายการ = getHiberNateTemplate (). executeFind (ใหม่ hibernatecallback () {
วัตถุสาธารณะ doinhibernate (เซสชั่น)
พ่น HibernateException, sqlexception {
list result = session.createquery (HQL) .setFirstResult (ออฟเซ็ต)
.SetMaxResults (PAGESIZE) .List ();
ส่งคืนผลลัพธ์;
-
-
รายการส่งคืน;
-
-
* ใช้คำสั่ง HQL สำหรับการดำเนินการค้นหาเพจ
-
* @param hql
* คำสั่ง HQL ที่จะสอบถาม
* ค่า @param
* หาก HQL มีพารามิเตอร์ที่ต้องส่งผ่านค่าคือพารามิเตอร์ที่ส่งผ่าน
* @param ชดเชย
* ดัชนีของระเบียนแรก
* @param PageSize
*จำนวนระเบียนที่จะแสดงในแต่ละหน้า
* @return บันทึกทั้งหมดของหน้าปัจจุบัน
-
รายการสาธารณะ findByPage (สตริงสุดท้าย HQL, ค่าวัตถุสุดท้าย
ออฟเซ็ต int สุดท้าย, หน้า int สุดท้าย) {
รายการรายการ = getHiberNateTemplate (). executeFind (ใหม่ hibernatecallback () {
วัตถุสาธารณะ doinhibernate (เซสชั่น)
พ่น HibernateException, sqlexception {
รายการผลลัพธ์ = session.createquery (HQL) .setParameter (0, ค่า)
.SetFirstResult (ออฟเซ็ต) .SetMaxResults (pagesize) .List ();
ส่งคืนผลลัพธ์;
-
-
รายการส่งคืน;
-
-
* ใช้คำสั่ง HQL สำหรับการดำเนินการค้นหาเพจ
-
* @param hql
* คำสั่ง HQL ที่จะสอบถาม
* ค่า @param
* หาก HQL มีพารามิเตอร์หลายตัวที่ต้องส่งผ่านค่าคืออาร์เรย์พารามิเตอร์ที่ส่งผ่าน
* @param ชดเชย
* ดัชนีของระเบียนแรก
* @param PageSize
*จำนวนระเบียนที่จะแสดงในแต่ละหน้า
* @return บันทึกทั้งหมดของหน้าปัจจุบัน
-
รายการสาธารณะ findByPage (สตริงสุดท้าย HQL, ค่าวัตถุสุดท้าย [] ค่า
ออฟเซ็ต int สุดท้าย, หน้า int สุดท้าย) {
รายการรายการ = getHiberNateTemplate (). executeFind (ใหม่ hibernatecallback () {
วัตถุสาธารณะ doinhibernate (เซสชั่น)
พ่น HibernateException, sqlexception {
Query Query = session.createquery (HQL);
สำหรับ (int i = 0; i <value.length; i ++) {
query.setParameter (i, ค่า [i]);
-
รายการผลลัพธ์ = query.setFirstResult (ออฟเซ็ต) .setMaxResults (
PAGESIZE) .List ();
ส่งคืนผลลัพธ์;
-
-
รายการส่งคืน;
-
-
นำเข้า java.util.List;
นำเข้า com.b510.album.dao.photodao;
นำเข้า com.b510.album.enhance.hongtenhibernatedaosupport;
นำเข้า com.b510.album.model.photo;
นำเข้า com.b510.album.model.user;
-
-
* @ผู้เขียน Hongten
-
-
@suppresswarnings ("ไม่ได้ตรวจสอบ")
photodaohibernate ชั้นเรียนสาธารณะขยายการดำเนินการของ Hongtenhibernatedaosupport
โฟโต้
-
* โหลดอินสแตนซ์รูปภาพตามแอตทริบิวต์การระบุตัวตน
-
* @param id
* ค่าแอตทริบิวต์ตัวตนของอินสแตนซ์รูปภาพที่ต้องโหลด
* @return อินสแตนซ์รูปภาพที่สอดคล้องกับแอตทริบิวต์การระบุที่ระบุ
-
รูปถ่ายสาธารณะรับ (ID จำนวนเต็ม) {
return (photo) gethibernatetemplate () รับ (photo.class, id);
-
-
* คงอยู่อินสแตนซ์รูปภาพที่ระบุ
-
* @param photo
* อินสแตนซ์รูปภาพที่ต้องคงอยู่
* @return ค่าแอตทริบิวต์ข้อมูลประจำตัวหลังจากอินสแตนซ์ภาพถ่ายยังคงอยู่
-
บันทึกจำนวนเต็มสาธารณะ (ภาพถ่ายรูปภาพ) {
return (จำนวนเต็ม) getHibernatetemplate (). บันทึก (ภาพถ่าย);
-
-
* แก้ไขอินสแตนซ์รูปภาพที่ระบุ
-
* @param photo
* อินสแตนซ์รูปภาพที่ต้องแก้ไข
-
การอัปเดตโมฆะสาธารณะ (ภาพถ่ายรูปภาพ) {
Gethibernatetemplate (). อัปเดต (รูปภาพ);
-
-
* ลบอินสแตนซ์รูปภาพที่ระบุ
-
* @param photo
* อินสแตนซ์รูปภาพที่ต้องลบ
-
โมฆะสาธารณะลบ (ภาพถ่ายภาพถ่าย) {
getHibernatetemplate (). ลบ (ภาพถ่าย);
-
-
* ลบอินสแตนซ์รูปภาพตามแอตทริบิวต์การระบุตัวตน
-
* @param id
* ค่าแอตทริบิวต์การระบุตัวตนของอินสแตนซ์รูปภาพที่ต้องลบ
-
โมฆะสาธารณะลบ (ID จำนวนเต็ม) {
getHibernatetemplate (). ลบ (รับ (id));
-
-
* สอบถามอินสแตนซ์ภาพถ่ายทั้งหมด
-
* @return อินสแตนซ์รูปภาพทั้งหมดในฐานข้อมูล
-
รายการสาธารณะ <Photo> findall () {
return (list <hoto>) Gethibernatetemplate () ค้นหา ("จาก Photo");
-
-
* ภาพถ่ายแบบสอบถามที่เป็นของผู้ใช้ที่ระบุและดำเนินการควบคุมเพจ
-
* ผู้ใช้ @param
* สอบถามผู้ใช้ที่มีรูปถ่ายเป็นของ
* @param pageno
*หน้าระบุที่จะสอบถาม
* @return รูปที่สอบถาม
-
รายการสาธารณะ <Photo> FindByUser (ผู้ใช้ผู้ใช้, int pageno) {
int offset = (pageno - 1) * page_size;
// ส่งคืนผลลัพธ์ของการสืบค้นเพจ
return (list <hoto>) findByPage ("จาก Photo B โดยที่ b.user =?", ผู้ใช้,
ชดเชย, page_size);
-
-
นำเข้า java.util.List;
นำเข้า com.b510.album.dao.userdao;
นำเข้า com.b510.album.enhance.hongtenhibernatedaosupport;
นำเข้า com.b510.album.model.user;
-
-
* @ผู้เขียน Hongten
-
-
@suppresswarnings ("ไม่ได้ตรวจสอบ")
ระดับสาธารณะ UserDaoHibernate ขยายการดำเนินการของ Hongtenhibernatedaosupport
userdao {
-
* โหลดอินสแตนซ์ของผู้ใช้ตามแอตทริบิวต์การระบุ
-
* @param id
* ค่าแอตทริบิวต์ข้อมูลประจำตัวของอินสแตนซ์ผู้ใช้ที่ต้องโหลด
* @return อินสแตนซ์ผู้ใช้ที่สอดคล้องกับแอตทริบิวต์การระบุที่ระบุ
-
ผู้ใช้สาธารณะได้รับ (จำนวนเต็ม ID) {
return (ผู้ใช้) getHiberNateTemplate (). get (user.class, id);
-
-
* ยืนยันอินสแตนซ์ของผู้ใช้ที่ระบุไว้
-
* ผู้ใช้ @param
* อินสแตนซ์ของผู้ใช้ที่ต้องคงอยู่
* @return ค่าแอตทริบิวต์ตัวตนหลังจากอินสแตนซ์ของผู้ใช้ยังคงอยู่
-
บันทึกจำนวนเต็มสาธารณะ (ผู้ใช้ผู้ใช้) {
return (จำนวนเต็ม) getHibernatetemplate (). บันทึก (ผู้ใช้);
-
-
* แก้ไขอินสแตนซ์ของผู้ใช้ที่ระบุ
-
* ผู้ใช้ @param
* อินสแตนซ์ของผู้ใช้ที่ต้องแก้ไข
-
การอัปเดตโมฆะสาธารณะ (ผู้ใช้ผู้ใช้) {
GetHiberNateTemplate (). อัปเดต (ผู้ใช้);
-
-
* ลบอินสแตนซ์ของผู้ใช้ที่ระบุ
-
* ผู้ใช้ @param
* อินสแตนซ์ของผู้ใช้ที่ต้องลบ
-
โมฆะสาธารณะลบ (ผู้ใช้ผู้ใช้) {
getHibernatetemplate (). ลบ (ผู้ใช้);
-
-
* ลบอินสแตนซ์ของผู้ใช้ตามแอตทริบิวต์การระบุ
-
* @param id
* ค่าแอตทริบิวต์การระบุตัวตนของอินสแตนซ์ของผู้ใช้ที่ต้องลบ
-
โมฆะสาธารณะลบ (ID จำนวนเต็ม) {
getHibernatetemplate (). ลบ (รับ (id));
-
-
* สอบถามอินสแตนซ์ของผู้ใช้ทั้งหมด
-
* @return อินสแตนซ์ผู้ใช้ทั้งหมดในฐานข้อมูล
-
รายการสาธารณะ <user> findall () {
return (list <user>) getHiberNateTemplate () ค้นหา ("จากผู้ใช้");
-
-
* ค้นหาผู้ใช้ตามชื่อผู้ใช้
-
* @param ชื่อ
* ชื่อผู้ใช้ของผู้ใช้ที่จะพบ
* @return ผู้ใช้ที่พบ
-
ผู้ใช้สาธารณะ findByName (ชื่อสตริง) {
รายการ <user> users = (รายการ <user>) getHiberNateTemplate () ค้นหา (
"จากผู้ใช้ u u.name =?", ชื่อ);
ถ้า (ผู้ใช้! = null && users.size () == 1) {
return users.get (0);
-
กลับเป็นโมฆะ;
-
-
นำเข้า java.util.List;
นำเข้า com.b510.album.model.photo;
นำเข้า com.b510.album.model.user;
-
* อินเทอร์เฟซโฟโต้
-
* @ผู้เขียน Hongten
-
-
ส่วนต่อประสานสาธารณะโฟโตะโฟโด {
// ใช้ค่าคงที่เพื่อควบคุมจำนวนภาพถ่ายที่แสดงในแต่ละหน้า
int สุดท้าย page_size = 8;
-
* โหลดอินสแตนซ์รูปภาพตามแอตทริบิวต์การระบุตัวตน
-
* @param id
* ค่าแอตทริบิวต์ตัวตนของอินสแตนซ์รูปภาพที่ต้องโหลด
* @return อินสแตนซ์รูปภาพที่สอดคล้องกับแอตทริบิวต์การระบุที่ระบุ
-
รูปภาพได้รับ (ID จำนวนเต็ม);
-
* คงอยู่อินสแตนซ์รูปภาพที่ระบุ
-
* @param photo
* อินสแตนซ์รูปภาพที่ต้องคงอยู่
* @return ค่าแอตทริบิวต์ข้อมูลประจำตัวหลังจากอินสแตนซ์ภาพถ่ายยังคงอยู่
-
บันทึกจำนวนเต็ม (ภาพถ่ายรูปภาพ);
-
* แก้ไขอินสแตนซ์รูปภาพที่ระบุ
-
* @param photo
* อินสแตนซ์รูปภาพที่ต้องแก้ไข
-
อัพเดทโมฆะ (ภาพถ่ายภาพถ่าย);
-
* ลบอินสแตนซ์รูปภาพที่ระบุ
-
* @param photo
* อินสแตนซ์รูปภาพที่ต้องลบ
-
เป็นโมฆะลบ (ภาพถ่ายภาพถ่าย);
-
* ลบอินสแตนซ์รูปภาพตามแอตทริบิวต์การระบุตัวตน
-
* @param id
* ค่าแอตทริบิวต์การระบุตัวตนของอินสแตนซ์รูปภาพที่ต้องลบ
-
เป็นโมฆะลบ (ID จำนวนเต็ม);
-
* สอบถามอินสแตนซ์ภาพถ่ายทั้งหมด
-
* @return อินสแตนซ์รูปภาพทั้งหมดในฐานข้อมูล
-
รายการ <Photo> findall ();
-
* ภาพถ่ายแบบสอบถามที่เป็นของผู้ใช้ที่ระบุและดำเนินการควบคุมเพจ
-
* ผู้ใช้ @param
* สอบถามผู้ใช้ที่มีรูปถ่ายเป็นของ
* @param pageno
*หน้าระบุที่จะสอบถาม
* @return รูปที่สอบถาม
-
รายการ <poto> FindByUser (ผู้ใช้ผู้ใช้, int pageno);
-
นำเข้า java.util.List;
นำเข้า com.b510.album.model.user;
-
* อินเตอร์เฟส userdao
-
* @ผู้เขียน Hongten
-
-
อินเทอร์เฟซสาธารณะ userdao {
-
* โหลดอินสแตนซ์ของผู้ใช้ตามแอตทริบิวต์การระบุ
-
* @param id
* ค่าแอตทริบิวต์ข้อมูลประจำตัวของอินสแตนซ์ผู้ใช้ที่ต้องโหลด
* @return อินสแตนซ์ผู้ใช้ที่สอดคล้องกับแอตทริบิวต์การระบุที่ระบุ
-
ผู้ใช้ได้รับ (ID จำนวนเต็ม);
-
* ยืนยันอินสแตนซ์ของผู้ใช้ที่ระบุไว้
-
* ผู้ใช้ @param
* อินสแตนซ์ของผู้ใช้ที่ต้องคงอยู่
* @return ค่าแอตทริบิวต์ตัวตนหลังจากอินสแตนซ์ของผู้ใช้ยังคงอยู่
-
บันทึกจำนวนเต็ม (ผู้ใช้ผู้ใช้);
-
* แก้ไขอินสแตนซ์ของผู้ใช้ที่ระบุ
-
* ผู้ใช้ @param
* อินสแตนซ์ของผู้ใช้ที่ต้องแก้ไข
-
การอัปเดตเป็นโมฆะ (ผู้ใช้ผู้ใช้);
-
* ลบอินสแตนซ์ของผู้ใช้ที่ระบุ
-
* ผู้ใช้ @param
* อินสแตนซ์ของผู้ใช้ที่ต้องลบ
-
เป็นโมฆะลบ (ผู้ใช้ผู้ใช้);
-
* ลบอินสแตนซ์ของผู้ใช้ตามแอตทริบิวต์การระบุ
-
* @param id
* ค่าแอตทริบิวต์การระบุตัวตนของอินสแตนซ์ของผู้ใช้ที่ต้องลบ
-
เป็นโมฆะลบ (ID จำนวนเต็ม);
-
* สอบถามอินสแตนซ์ของผู้ใช้ทั้งหมด
-
* @return อินสแตนซ์ผู้ใช้ทั้งหมดในฐานข้อมูล
-
รายการ <user> findall ();
-
* ค้นหาผู้ใช้ตามชื่อผู้ใช้
-
* @param ชื่อ
* ชื่อผู้ใช้ของผู้ใช้ที่จะพบ
* @return ผู้ใช้ที่พบ
-
ผู้ใช้ findByName (ชื่อสตริง);
-
เนื่องจากโครงการดูค่อนข้างใหญ่หลังจากเพิ่มแพ็คเกจ JAR แพ็คเกจ JAR จึงถูกยกเลิกที่นี่
ต่อไปนี้เป็นไฟล์แนบ : ajax_jquery_album_jb51net.rar (ดาวน์โหลดซอร์สโค้ด)