프로젝트 구조:
프로젝트 홈페이지:
등록 페이지:
이미지 업로드:
효과 그림 하나:
효과 그림 2:
효과 그림 3:
================================================= ===========
아래는 코드 부분입니다
================================================= ===========
데이터베이스 SQL 필요:
데이터베이스 db_ajax 생성;
db_ajax를 사용하십시오;
user_table 테이블 생성
(
user_id int auto_increment 기본 키,
이름 varchar(255) 고유,
varchar(255) 전달
);
테이블 photo_table 만들기
(
photo_id int auto_increment 기본 키,
제목 varchar(255),
파일이름 varchar(255),
owner_id 정수,
외래 키(owner_id)는 user_table(user_id)을 참조합니다.
);
<div id="uploadDiv" style="display:none">
<form action="proUpload" 메서드="포스트"
enctype="멀티파트/폼-데이터">
<테이블 셀 간격="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">
<input type="submit" value="업로드" />
<입력 유형="재설정" 값="재설정" />
</td>
</tr>
</table>
</form>
</div>
<div id="tipDiv" style="display:none">
</div>
</body>
</html>
<!-- 웹 애플리케이션이 시작될 때 로드될 Spring 컨테이너 구성 -->
<청취자>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<서블릿>
<servlet-name>proLogin</servlet-name>
<servlet-class>com.b510.album.web.ProLoginServlet</servlet-class>
</서블릿>
<서블릿 매핑>
<servlet-name>proLogin</servlet-name>
<url-패턴>/proLogin</url-pattern>
</서블릿 매핑>
<서블릿>
<servlet-name>proRegist</servlet-name>
<servlet-class>com.b510.album.web.ProRegistServlet</servlet-class>
</서블릿>
<서블릿 매핑>
<servlet-name>proRegist</servlet-name>
<url-패턴>/proRegist</url-pattern>
</서블릿 매핑>
<서블릿>
<servlet-name>validateName</servlet-name>
<servlet-class>com.b510.album.web.ValidateNameServlet</servlet-class>
</서블릿>
<서블릿 매핑>
<servlet-name>validateName</servlet-name>
<url-pattern>/validateName</url-pattern>
</서블릿 매핑>
<서블릿>
<servlet-name>getPhoto</servlet-name>
<servlet-class>com.b510.album.web.GetPhotoServlet</servlet-class>
</서블릿>
<서블릿 매핑>
<servlet-name>getPhoto</servlet-name>
<url-pattern>/getPhoto</url-pattern>
</서블릿 매핑>
<서블릿>
<servlet-name>showImg</servlet-name>
<servlet-class>com.b510.album.web.ShowImgServlet</servlet-class>
</서블릿>
<서블릿 매핑>
<servlet-name>showImg</servlet-name>
<url-pattern>/showImg</url-pattern>
</서블릿 매핑>
<서블릿>
<servlet-name>pageLoad</servlet-name>
<servlet-class>com.b510.album.web.PageLoadServlet</servlet-class>
</서블릿>
<서블릿 매핑>
<servlet-name>pageLoad</servlet-name>
<url-pattern>/pageLoad</url-pattern>
</서블릿 매핑>
<서블릿>
<servlet-name>turnPage</servlet-name>
<servlet-class>com.b510.album.web.TurnPageServlet</servlet-class>
</서블릿>
<서블릿 매핑>
<servlet-name>turnPage</servlet-name>
<url-패턴>/turnPage</url-pattern>
</서블릿 매핑>
<서블릿>
<servlet-name>proUpload</servlet-name>
<servlet-class>com.b510.album.web.ProUploadServlet</servlet-class>
</서블릿>
<서블릿 매핑>
<servlet-name>proUpload</servlet-name>
<url-pattern>/proUpload</url-pattern>
</서블릿 매핑>
<환영 파일 목록>
<welcome-file>album.html</welcome-file>
</welcome-파일-목록>
</웹-앱>
<!-- C3P0 데이터 소스를 사용하여 구현된 데이터 소스 Bean 정의 -->
<bean id="dataSource" destroy-method="close"
>
<!-- 데이터베이스에 연결할 드라이버를 지정하세요 -->
<속성 이름="driverClass" value="com.mysql.jdbc.Driver"/>
<!-- 데이터베이스에 연결할 URL을 지정하세요 -->
<속성 이름="jdbcUrl"
value="jdbc:mysql://localhost:3308/db_ajax"/>
<!-- 데이터베이스에 연결할 사용자 이름을 지정하세요 -->
<속성 이름="사용자" 값="루트"/>
<!-- 데이터베이스에 연결하기 위한 비밀번호를 지정하세요 -->
<속성 이름="비밀번호" 값="루트"/>
<!--데이터베이스 연결 풀에 대한 최대 연결 수 지정-->
<속성 이름="maxPoolSize" 값="40"/>
<!-- 데이터베이스 연결 풀에 연결하기 위한 최소 연결 수를 지정하세요 -->
<속성 이름="minPoolSize" 값="1"/>
<!-- 데이터베이스 연결 풀에 연결할 초기 연결 수를 지정합니다 -->
<속성 이름="initialPoolSize" 값="1"/>
<!-- 데이터베이스 연결 풀 연결의 최대 유휴 시간 지정 -->
<속성 이름="maxIdleTime" 값="20"/>
</bean>
<!-- Hibernate의 SessionFactory 정의 -->
<bean id="sessionFactory"
>
<!-- 종속성 주입 데이터 소스, 위에 정의된 dataSource를 주입합니다 -->
<속성 이름="데이터소스" ref="데이터소스"/>
<!-- mappingResouces 속성은 모든 매핑 파일을 나열하는 데 사용됩니다 -->
<속성 이름="mappingResources">
<목록>
<!-- 다음은 Hibernate 매핑 파일을 나열하는 데 사용됩니다-->
<값>com/b510/album/model/User.hbm.xml</값>
<값>com/b510/album/model/Photo.hbm.xml</값>
</list>
</property>
<!-- Hibernate의 SessionFactory 속성을 정의합니다 -->
<속성 이름="hibernateProperties">
<소품>
<!--데이터베이스 언어 지정-->
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLInnoDBDialect</prop>
<!-- 필요할 때마다 자동으로 데이터베이스를 생성할지 여부 -->
<prop key="hibernate.hbm2ddl.auto">업데이트</prop>
<!-- Hibernate 지속성 작업에 의해 생성된 SQL 표시 -->
<prop key="hibernate.show_sql">참</prop>
<!-- SQL 스크립트 형식을 지정하고 출력합니다 -->
<prop key="hibernate.format_sql">참</prop>
</props>
</property>
</bean>
<!-- UserDao 구성 요소 구성 -->
<bean id="userDao"
>
<!--SessionFactory 참조 삽입-->
<속성 이름="sessionFactory" ref="sessionFactory"/>
</bean>
<!-- PhotoDao 구성 요소 구성 -->
<bean id="photoDao"
>
<속성 이름="sessionFactory" ref="sessionFactory"/>
</bean>
<!-- albumService 비즈니스 로직 구성 요소 구성 -->
<bean id="앨범서비스"
>
<!-- 비즈니스 로직 구성요소에 2개의 DAO 구성요소를 삽입합니다 -->
<속성 이름="userDao" ref="userDao"/>
<속성 이름="photoDao" ref="photoDao"/>
</bean>
<!-- Hibernate의 로컬 트랜잭션 관리자를 구성하고, HibernateTransactionManager 클래스를 사용하십시오 -->
<!-- 이 클래스는 Hibernate에 대한 특정 구현인 PlatformTransactionManager 인터페이스를 구현합니다 -->
<bean id="transactionManager"
>
<!-- HibernateTransactionManager를 구성할 때 SessionFactory에 대한 참조를 삽입해야 합니다 -->
<속성 이름="sessionFactory" ref="sessionFactory"/>
</bean>
<!-- 트랜잭션 측면 Bean을 구성하고 트랜잭션 관리자를 지정합니다 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<!-- 자세한 트랜잭션 의미를 구성하는 데 사용됩니다-->
<tx:속성>
<!-- 'get'으로 시작하는 모든 메소드는 읽기 전용입니다 -->
<tx:메소드 이름="get*" 읽기 전용="true"/>
<!-- 다른 방법에서는 기본 트랜잭션 설정을 사용합니다 -->
<tx:메서드 이름="*"/>
</tx:속성>
</tx:조언>
<aop:구성>
<!-- lee 패키지 아래 Impl로 끝나는 모든 클래스가 실행하는 모든 메소드와 일치하도록 포인트컷을 구성합니다 -->
<aop:pointcut id="leeService"
표현="실행(* com.b510.album.service.impl.*Impl.*(..))"/>
<!-- leeService 진입점에서 txAdvice 트랜잭션 측면을 적용하도록 지정 -->
<aop:advisoradvisor-ref="txAdvice"
pointcut-ref="leeService"/>
</aop:구성>
</beans>
함수 재설정()
{
//사용자의 한 줄 텍스트 상자 두 개를 지우고 전달합니다.
$("#user").val("");
$("#pass").val("");
}
//등록 대화상자로 전환
함수 변경등록()
{
//로그인 버튼 2개 숨기기
$("#loginDiv").hide("500");
//등록을 위한 버튼 2개 표시
$("#registDiv").show("500");
}
//사용자 로그인을 처리하는 함수
함수 proLogin()
{
//두 개의 텍스트 상자 사용자의 값을 가져오고 전달합니다.
var user = $.trim($("#user").val());
var pass = $.trim($("#pass").val());
if (사용자 == null || 사용자 == ""
|| 통과 == null|| 통과 == "")
{
Alert("로그인하기 전에 사용자 이름과 비밀번호를 입력해야 합니다.");
거짓을 반환;
}
또 다른
{
//proLogin에 비동기 POST 요청 보내기
$.post("proLogin", $('#user,#pass').serializeArray()
, null , "스크립트");
}
}
//사용자 등록을 처리하는 함수
함수등록()
{
//두 개의 텍스트 상자 사용자의 값을 가져오고 전달합니다.
var user = $.trim($("#user").val());
var pass = $.trim($("#pass").val());
if (사용자 == null || 사용자 == "" || 패스 == null || 패스 =="")
{
Alert("등록하기 전에 사용자 이름과 비밀번호를 입력해야 합니다.");
거짓을 반환;
}
또 다른
{
//proRegist에 비동기 POST 요청 보내기
$.post("proRegist", $('#user,#pass').serializeArray()
, null , "스크립트");
}
}
//사용자 이름이 사용 가능한지 확인
함수 유효성 검사 이름()
{
//사용자 텍스트 상자의 값을 가져옵니다.
var user = $.trim($("#user").val());
if (사용자 == null || 사용자 == "")
{
Alert("아직 사용자 이름을 입력하지 않으셨습니다!");
거짓을 반환;
}
또 다른
{
//validateName에 비동기 POST 요청 보내기
$.post("validateName", $('#user').serializeArray()
, null , "스크립트");
}
}
// 현재 사용자와 현재 페이지의 사진을 주기적으로 가져옵니다.
onLoadHandler() 함수
{
//getPhoto에 비동기식 GET 요청 보내기
$.getScript("getPhoto");
//1초를 지정한 후 이 메서드를 다시 실행합니다.
setTimeout("onLoadHandler()", 1000);
}
//사진 표시
함수 showImg(파일명)
{
$.getScript("showImg?img=" + 파일이름);
// document.getElementById("show").src="uploadfiles/" + fileName + "?now=" + new Date();
// $("#show").attr("src" , "uploadfiles/" + fileName);
}
//페이지 넘김을 처리하는 함수
함수 TurnPage(플래그)
{
$.getScript("turnPage?turn=" + 플래그);
}
//업로드 창을 엽니다.
함수 openUpload()
{
$("#uploadDiv").show()
.대화(
{
모달: 사실,
크기 조정 가능: 거짓,
너비: 428,
높이: 220,
오버레이: {불투명도: 0.5, 배경: "검은색"}
});
}
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
org.springframework.context.ApplicationContext 가져오기;
org.springframework.web.context.support.WebApplicationContextUtils 가져오기;
import com.b510.album.service.AlbumService;
/**
*
* @author 홍텐
*
*/
공개 클래스 BaseServlet은 HttpServlet을 확장합니다.
개인 정적 최종 긴 serialVersionUID = -2041755371540813745L;
다음과 같이 보호된 AlbumService;
//생성자를 정의하고 Spring 컨테이너에 대한 참조를 얻습니다.
public void init(ServletConfig config)에서 ServletException이 발생합니다.
super.init(config);
ApplicationContext ctx = WebApplicationContextUtils
.getWebApplicationContext(getServletContext());
as = (AlbumService) ctx.getBean("albumService");
}
}
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 홍텐
*
*/
공개 클래스 ValidateNameServlet은 BaseServlet을 확장합니다.
개인 정적 최종 긴 serialVersionUID = 9038839276327742641L;
Public void 서비스(HttpServletRequest 요청, HttpServletResponse 응답)
IOException 발생, ServletException {
문자열 이름 = request.getParameter("user");
response.setContentType("text/javascript;charset=GBK");
// 출력 스트림을 가져옵니다.
PrintWriter 출력 = response.getWriter();
노력하다 {
if (이름 != null) {
if (as.validateName(이름)) {
out.println("alert('축하합니다. 이 사용자 이름은 아직 사용되지 않았습니다. 이 사용자 이름을 사용할 수 있습니다!');");
} 또 다른 {
out.println("alert('죄송합니다. 이 사용자 이름은 이미 다른 사람이 사용하고 있습니다!');");
out.println("$('#user').val('');");
}
} 또 다른 {
out.println("alert('사용자 이름을 확인하는 동안 예외가 발생했습니다. 사용자 이름을 변경하고 다시 시도하십시오!');");
}
} catch (AlbumException ex) {
out.println("alert('" + ex.getMessage() + "사용자 이름을 변경하고 다시 시도하세요!');");
}
}
}
import java.io.IOException;
import java.io.PrintWriter;
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 홍텐
*
*/
공개 클래스 TurnPageServlet은 BaseServlet을 확장합니다.
개인 정적 최종 긴 serialVersionUID = -5097286750384714951L;
Public void 서비스(HttpServletRequest 요청, HttpServletResponse 응답)
IOException 발생, ServletException {
String Turn = request.getParameter("turn");
HttpSession 세션 = request.getSession(true);
문자열 이름 = (String) session.getAttribute("curUser");
개체 pageObj = session.getAttribute("curPage");
// HttpSession의 curPage가 null인 경우 현재 페이지를 첫 번째 페이지로 설정합니다.
int curPage = pageObj == null 1 : (정수) pageObj;
response.setContentType("text/javascript;charset=GBK");
PrintWriter 출력 = response.getWriter();
if (curPage == 1 &&turn.equals("-1")) {
out.println("alert('이제 첫 번째 페이지입니다. 다음 페이지로 이동할 수 없습니다!')");
} 또 다른 {
// 페이지 넘김을 실행하고 curPage 값을 수정합니다.
curPage += Integer.parseInt(turn);
노력하다 {
List<PhotoHolder> 사진 = as.getPhotoByUser(name, curPage);
//페이지를 넘기면 기록이 없습니다.
if (photos.size() == 0) {
out.println("alert('페이지를 넘긴 후에도 사진 기록이 없습니다. 시스템이 자동으로 이전 페이지로 돌아갑니다.')");
//이전 페이지로 돌아가기
curPage -= Integer.parseInt(turn);
} 또 다른 {
//사용자가 탐색 중인 페이지 번호를 HttpSession에 입력합니다.
session.setAttribute("curPage", curPage);
}
} catch (AlbumException ex) {
out.println("alert('" + ex.getMessage() + "다시 시도해 주세요!')");
}
}
}
}
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 홍텐
*
*/
공개 클래스 ShowImgServlet은 BaseServlet을 확장합니다.
개인 정적 최종 긴 serialVersionUID = 1460203270448078666L;
Public void 서비스(HttpServletRequest 요청, HttpServletResponse 응답)
IOException 발생, ServletException {
String img = request.getParameter("img");
HttpSession 세션 = request.getSession(true);
//사용자가 탐색 중인 이미지를 HttpSession에 넣습니다.
session.setAttribute("curImg", img);
response.setContentType("text/javascript;charset=GBK");
// 출력 스트림을 가져옵니다.
PrintWriter 출력 = response.getWriter();
out.println("$('#show').attr('src' , 'uploadfiles/" + img + "');");
}
}
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Iterator;
java.util.List 가져오기;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
org.apache.commons.fileupload.FileItem 가져오기;
org.apache.commons.fileupload.FileItemFactory 가져오기;
import org.apache.commons.fileupload.FileUploadException;
org.apache.commons.fileupload.disk.DiskFileItemFactory 가져오기;
org.apache.commons.fileupload.servlet.ServletFileUpload 가져오기;
import com.b510.album.Exception.AlbumException;
import com.b510.album.web.base.BaseServlet;
/**
*
* @author 홍텐
*
*/
@SuppressWarnings("선택 해제됨")
공용 클래스 ProUploadServlet은 BaseServlet을 확장합니다.
개인 정적 최종 긴 serialVersionUID = 642229801989188793L;
Public void 서비스(HttpServletRequest 요청, HttpServletResponse 응답)
IOException 발생, ServletException {
반복자 iter = null;
문자열 제목 = null;
response.setContentType("text/html;charset=GBK");
// 출력 스트림을 가져옵니다.
PrintWriter 출력 = response.getWriter();
out.println("<script type='text/javascript>'");
노력하다 {
//업로더를 사용하여 업로드 처리
FileItemFactory 팩토리 = 새로운 DiskFileItemFactory();
ServletFileUpload 업로드 = 새로운 ServletFileUpload(공장);
목록 항목 = upload.parseRequest(request);
iter = items.iterator();
// 각 양식 컨트롤에 해당하는 콘텐츠를 탐색합니다.
동안(iter.hasNext()) {
FileItem 항목 = (FileItem) iter.next();
// 항목이 일반 양식 필드인 경우
if (item.isFormField()) {
문자열 이름 = item.getFieldName();
if (name.equals("제목")) {
title = item.getString("GBK");
}
}
//업로드가 필요한 파일인 경우
또 다른 {
문자열 사용자 = (문자열) request.getSession().getAttribute(
"현재사용자");
문자열 서버파일 이름 = null;
//파일명을 반환
String fileName = item.getName();
// 파일 접미사 가져오기
문자열 appden = fileName.substring(fileName
.lastIndexOf("."));
//파일 형식을 반환합니다.
String contentType = item.getContentType();
// jpg, gif, png 이미지만 업로드 가능
if (contentType.equals("image/pjpeg")
|| contentType.equals("이미지/gif")
|| contentType.equals("이미지/jpeg")
|| contentType.equals("이미지/png")) {
InputStream 입력 = item.getInputStream();
serverFileName = String.valueOf(시스템
.currentTimeMillis());
FileOutputStream 출력 = 새로운 FileOutputStream(
getServletContext().getRealPath("/")
+ "업로드파일//" + 서버파일이름
+ 추가);
바이트[] 버퍼 = 새 바이트[1024];
int len = 0;
while ((len = input.read(buffer)) > 0) {
출력.쓰기(버퍼, 0, len);
}
입력.닫기();
출력.닫기();
as.addPhoto(사용자, 제목, serverFileName + appden);
response.sendRedirect("album.html?resultCode=0");
} 또 다른 {
response.sendRedirect("album.html?resultCode=1");
}
}
}
} catch(FileUploadException fue) {
fue.printStackTrace();
response.sendRedirect("album.html?resultCode=2");
} catch (AlbumException ex) {
ex.printStackTrace();
}
}
}
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 홍텐
*
*/
공개 클래스 ProRegistServlet은 BaseServlet을 확장합니다.
개인 정적 최종 긴 serialVersionUID = -3174994243043815566L;
Public void 서비스(HttpServletRequest 요청, HttpServletResponse 응답)
IOException 발생, ServletException {
문자열 이름 = request.getParameter("user");
String pass = request.getParameter("pass");
response.setContentType("text/javascript;charset=GBK");
// 출력 스트림을 가져옵니다.
PrintWriter 출력 = response.getWriter();
노력하다 {
out.println("$('#user,#pass').val('');");
if (이름 != null && pass != null && as.registUser(name, pass) > 0) {
HttpSession 세션 = request.getSession(true);
session.setAttribute("curUser", 이름);
out.println("alert('축하합니다. 성공적으로 등록되었습니다!');");
out.println("$('#noLogin').hide(500);");
out.println("$('#hasLogin').show(500);");
//사진 목록을 가져오는 메소드를 호출합니다.
out.println("onLoadHandler();");
} 또 다른 {
out.println("alert('등록에 실패했습니다. 적절한 사용자 이름을 선택하고 다시 시도하십시오!');");
}
} catch (AlbumException ex) {
out.println("alert('" + ex.getMessage() + "사용자 이름을 변경하고 다시 시도하세요!');");
}
}
}
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 홍텐
*
*/
공개 클래스 ProLoginServlet은 BaseServlet을 확장합니다.
개인 정적 최종 긴 serialVersionUID = -1253530202224049958L;
Public void 서비스(HttpServletRequest 요청, HttpServletResponse 응답)
IOException 발생, ServletException {
문자열 이름 = request.getParameter("user");
String pass = request.getParameter("pass");
response.setContentType("text/javascript;charset=GBK");
// 출력 스트림을 가져옵니다.
PrintWriter 출력 = response.getWriter();
노력하다 {
// 사용자 ID로 입력 상자의 내용을 지우고 전달합니다.
out.println("$('#user,#pass').val('');");
if (이름 != null && pass != null && as.userLogin(name, pass)) {
HttpSession 세션 = request.getSession(true);
session.setAttribute("curUser", 이름);
out.println("alert('성공적으로 로그인하셨습니다!')");
out.println("$('#noLogin').hide(500)");
out.println("$('#hasLogin').show(500)");
//사진 목록을 가져오는 메소드를 호출합니다.
out.println("onLoadHandler();");
} 또 다른 {
out.println("alert('입력한 사용자 이름과 비밀번호가 일치하지 않습니다. 다시 시도하십시오!')");
}
} catch (AlbumException ex) {
out.println("alert('" + ex.getMessage() + "사용자 이름과 비밀번호를 변경하고 다시 시도하세요!')");
}
}
}
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 홍텐
*
*/
공개 클래스 PageLoadServlet은 BaseServlet을 확장합니다.
개인 정적 최종 긴 serialVersionUID = 7512001492425261841L;
Public void 서비스(HttpServletRequest 요청, HttpServletResponse 응답)
IOException 발생, ServletException {
response.setContentType("text/javascript;charset=GBK");
// 출력 스트림을 가져옵니다.
PrintWriter 출력 = response.getWriter();
HttpSession 세션 = request.getSession(true);
문자열 이름 = (String) session.getAttribute("curUser");
// name이 null이 아니면 사용자가 로그인했음을 나타냅니다.
if (이름 != null) {
//ID가 noLogin인 요소 숨기기(사용자 로그인 패널)
out.println("$('#noLogin').hide()");
//ID가 hasLogin인 요소 숨기기(사용자 제어판)
out.println("$('#hasLogin').show()");
//사진 목록을 가져오는 메소드를 호출합니다.
out.println("onLoadHandler();");
// HttpSession에서 curImg 속성을 제거합니다.
String curImg = (String) session.getAttribute("curImg");
//사용자가 탐색 중인 사진을 다시 표시합니다.
if (curImg != null) {
out.println("$('#show').attr('src' , 'uploadfiles/" + curImg
+ "');");
}
}
}
}
import java.io.IOException;
import java.io.PrintWriter;
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 홍텐
*
*/
공개 클래스 GetPhotoServlet은 BaseServlet을 확장합니다.
개인 정적 최종 긴 serialVersionUID = -8380695760546582385L;
Public void 서비스(HttpServletRequest 요청, HttpServletResponse 응답)
IOException 발생, ServletException {
HttpSession 세션 = request.getSession(true);
// HttpSession에서 현재 사용자의 현재 페이지 번호와 시스템의 사진 목록을 가져옵니다.
문자열 이름 = (String) session.getAttribute("curUser");
개체 pageObj = session.getAttribute("curPage");
// HttpSession의 curPage가 null인 경우 현재 페이지를 첫 번째 페이지로 설정합니다.
int curPage = pageObj == null 1 : (정수) pageObj;
response.setContentType("text/javascript;charset=GBK");
// 출력 스트림을 가져옵니다.
PrintWriter 출력 = response.getWriter();
노력하다 {
List<PhotoHolder> 사진 = as.getPhotoByUser(name, curPage);
// 목록의 ID를 가진 요소를 지웁니다.
out.println("var list = $('#list').empty();");
for (PhotoHolder ph : 사진) {
// 목록의 ID를 가진 요소에 각 사진을 동적으로 추가합니다.
out.println("list.append(/"<div align='center'>"
+ "<a href='javascript:void(0)' onclick=///"showImg('"
+ ph.getFileName() + "');///">" + ph.getTitle()
+ "</a></div>/");");
}
} catch (AlbumException ex) {
out.println("alert('" + ex.getMessage() + "다시 시도해 주세요!')");
}
}
}
/**
*
* @author 홍텐
*
*/
공개 클래스 PhotoHolder {
//사진 이름
개인 문자열 제목;
//서버에 있는 사진의 파일명
개인 문자열 파일명;
// 매개변수가 없는 생성자
공개 포토홀더() {
}
// 모든 속성을 초기화하는 생성자
public PhotoHolder(문자열 제목, 문자열 파일 이름) {
this.제목 = 제목;
this.fileName = 파일이름;
}
//제목 속성의 setter 및 getter 메소드
공개 무효 setTitle(문자열 제목) {
this.제목 = 제목;
}
공개 문자열 getTitle() {
return this.title;
}
//fileName 속성의 Setter 및 getter 메소드
공공 무효 setFileName(문자열 파일 이름) {
this.fileName = 파일이름;
}
공개 문자열 getFileName() {
this.fileName을 반환합니다.
}
}
import java.util.ArrayList;
java.util.List 가져오기;
import com.b510.album.dao.PhotoDao;
import com.b510.album.dao.UserDao;
import com.b510.album.Exception.AlbumException;
com.b510.album.model.Photo 가져오기;
import com.b510.album.model.User;
import com.b510.album.service.AlbumService;
import com.b510.album.vo.PhotoHolder;
/**
*
* @author 홍텐
*
*/
공개 클래스 AlbumServiceImpl은 AlbumService를 구현합니다.
// 비즈니스 로직 구성요소가 의존하는 2개의 DAO 구성요소
개인 UserDao ud = null;
개인 PhotoDao pd = null;
// 2개의 DAO 컴포넌트에 필요한 setter 메소드의 종속성 주입
공공 무효 setUserDao(UserDao ud) {
this.ud = ud;
}
공공 무효 setPhotoDao(PhotoDao pd) {
this.pd = pd;
}
/**
* 사용자 로그인이 성공했는지 확인합니다.
*
* @param 이름
* 로그인 사용자 이름
* @param 패스
* 로그인 비밀번호
* @return 사용자 로그인 결과, 성공하면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
*/
public boolean userLogin(문자열 이름, 문자열 패스) {
노력하다 {
// UserDao를 사용하여 사용자 이름을 기반으로 사용자를 쿼리합니다.
사용자 u = ud.findByName(이름);
if (u != null && u.getPass().equals(pass)) {
사실을 반환;
}
거짓을 반환;
} catch (예외예외) {
ex.printStackTrace();
throw new AlbumException("사용자 로그인을 처리하는 중 예외가 발생했습니다!");
}
}
/**
* 신규 사용자 등록
*
* @param 이름
* 새로 등록된 사용자의 사용자 이름
* @param 패스
* 새로 등록된 사용자의 비밀번호
* @return 새로 등록된 사용자의 기본 키를 반환합니다.
*/
public int registUser(문자열 이름, 문자열 패스) {
노력하다 {
//새 User 인스턴스 생성
사용자 u = 새로운 사용자();
u.setName(이름);
u.setPass(패스);
// 사용자 개체를 유지합니다.
ud.save(u);
u.getId()를 반환합니다.
} catch (예외예외) {
ex.printStackTrace();
throw new AlbumException("신규 사용자 등록 중 예외가 발생했습니다!");
}
}
/**
* 사진 추가
*
* @param 사용자
* 사진을 추가한 사용자
* @param 제목
* 사진에 제목을 추가하세요
* @param 파일이름
* 서버에 있는 사진의 파일명을 추가하세요.
* @return 새로 추가된 사진의 기본 키
*/
public int addPhoto(문자열 사용자, 문자열 제목, 문자열 파일 이름) {
노력하다 {
//새 Photo 인스턴스 생성
사진 p = 새 사진();
p.setTitle(제목);
p.setFileName(파일이름);
p.setUser(ud.findByName(사용자));
// 영구 사진 인스턴스
pd.save(p);
p.getId()를 반환합니다.
} catch (예외예외) {
ex.printStackTrace();
throw new AlbumException("사진을 추가하는 중 예외가 발생했습니다!");
}
}
/**
* 사용자를 기반으로 사용자의 모든 사진을 가져옵니다.
*
* @param 사용자
* 현재 사용자
* @param pageNo
*페이지 번호
* @return 사용자와 지정된 페이지에 속한 사진을 반환합니다.
*/
public List<PhotoHolder> getPhotoByUser(String user, int pageNo) {
노력하다 {
List<사진> pl = pd.findByUser(ud.findByName(user), pageNo);
List<PhotoHolder> 결과 = new ArrayList<PhotoHolder>();
for (사진 p : pl) {
result.add(new PhotoHolder(p.getTitle(), p.getFileName()));
}
결과 반환;
} catch (예외예외) {
ex.printStackTrace();
throw new AlbumException("사진 목록을 쿼리하는 중 예외가 발생했습니다!");
}
}
/**
* 사용자 이름을 사용할 수 있는지, 즉 사용자 이름이 데이터베이스에 이미 존재하는지 확인하십시오.
*
* @param 이름
* 확인이 필요한 사용자 이름
* @return 사용자 이름을 사용할 수 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
*/
public boolean verifyName(문자열 이름) {
노력하다 {
// 사용자 이름을 기반으로 해당 User 인스턴스를 쿼리합니다.
사용자 u = ud.findByName(이름);
if (u != null) {
거짓을 반환;
}
사실을 반환;
} catch (예외예외) {
ex.printStackTrace();
throw new AlbumException("사용자 이름이 존재하는지 확인하는 과정에서 예외가 발생했습니다!");
}
}
}
java.util.List 가져오기;
com.b510.album.vo.PhotoHolder 가져오기;
/**
*
* @author 홍텐
*
*/
공개 인터페이스 AlbumService {
/**
* 사용자 로그인이 성공했는지 확인합니다.
*
* @param 이름
* 로그인 사용자 이름
* @param 패스
* 로그인 비밀번호
* @return 사용자 로그인 결과, 성공하면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
*/
boolean userLogin(문자열 이름, 문자열 패스);
/**
* 신규 사용자 등록
*
* @param 이름
* 새로 등록된 사용자의 사용자 이름
* @param 패스
* 새로 등록된 사용자의 비밀번호
* @return 새로 등록된 사용자의 기본 키를 반환합니다.
*/
intregisterUser(문자열 이름, 문자열 패스);
/**
* 사진 추가
*
* @param 사용자
* 사진을 추가한 사용자
* @param 제목
* 사진에 제목을 추가하세요
* @param 파일이름
* 서버에 있는 사진의 파일명을 추가하세요.
* @return 새로 추가된 사진의 기본 키
*/
int addPhoto(문자열 사용자, 문자열 제목, 문자열 파일명);
/**
* 사용자를 기반으로 사용자의 모든 사진을 가져옵니다.
*
* @param 사용자
* 현재 사용자
* @param 페이지No
*페이지 번호
* @return 사용자와 지정된 페이지에 속한 사진을 반환합니다.
*/
List<PhotoHolder> getPhotoByUser(String user, int pageNo);
/**
* 사용자 이름을 사용할 수 있는지, 즉 사용자 이름이 데이터베이스에 이미 존재하는지 확인하십시오.
*
* @param 이름
* 확인이 필요한 사용자 이름
* @return 사용자 이름을 사용할 수 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
*/
boolean verifyName(문자열 이름);
}
/**
* 사진 엔터티 클래스
*
* @author 홍텐
*
*/
공개 수업 사진 {
//식별 속성
개인 정수 ID;
//사진 이름
개인 문자열 제목;
//서버에 있는 사진의 파일명
개인 문자열 파일명;
// 사진이 속한 사용자를 저장합니다.
개인 사용자 사용자;
// 매개변수가 없는 생성자
공개 사진() {
}
// 모든 속성을 초기화하는 생성자
공개 사진 (정수 ID, 문자열 제목, 문자열 파일 이름, 사용자 사용자) {
this.id = 아이디;
this.title = 제목;
this.filename = filename;
this.user = 사용자;
}
// ID 속성의 Setter 및 Getter 메소드
public void setid (정수 ID) {
this.id = 아이디;
}
공개 정수 getid () {
이 this.id;
}
// 제목 속성의 세터 및 getter 메소드
public void settitle (문자열 제목) {
this.title = 제목;
}
공개 문자열 getTitle () {
이를 반환하십시오.
}
// filename 속성의 setter 및 getter 메소드
public void setfilename (String filename) {
this.filename = filename;
}
공개 문자열 getFileName () {
is. filename;
}
// 사용자 속성의 Setter 및 Getter 메소드
public void setUser (사용자 사용자) {
this.user = 사용자;
}
공개 사용자 getUser () {
this.user를 반환하십시오.
}
}
java.util.set import;
java.util.hashset 가져 오기;
/**
* 사용자 엔티티 클래스
*
* @author 홍텐
*
*/
공개 클래스 사용자 {
// 식별 속성
개인 정수 ID;
// 사용자의 사용자 이름
개인 문자열 이름;
//이 사용자의 비밀번호
개인 문자열 패스;
// 세트를 사용 하여이 사용자와 관련된 사진을 저장합니다.
비공개 세트 <photo> photos = new Hashset <photo> ();
// 매개 변수가없는 생성자
공개 사용자 () {
}
// 모든 속성을 초기화하려는 생성자
공개 사용자 (정수 ID, 문자열 이름, 문자열 패스) {
this.id = 아이디;
this.name = 이름;
this.pass = 패스;
}
// ID 속성의 Setter 및 Getter 메소드
public void setid (정수 ID) {
this.id = 아이디;
}
공개 정수 getid () {
이 this.id;
}
// 이름 속성의 세터 및 getter 메소드
public void setName(문자열 이름) {
this.name = 이름;
}
공개 문자열 getName() {
this.name을 반환합니다.
}
// 패스 속성의 세터 및 getter 메소드
public void setpass (String Pass) {
this.pass = 패스;
}
공개 문자열 getpass () {
this.pass를 반환하십시오.
}
// 사진 속성의 세터 및 getter 메소드
public void setphotos (set <photo> photos) {
this.photos = 사진;
}
public set <photo> getPhotos () {
this.photos;
}
}
/**
*맞춤형 예외
*
* @author 홍텐
*
*/
공개 클래스 앨범 외환 확장 runtimeexception {
개인 정적 최종 최종 긴 SerialversionUID = 8050756054850450421L;
// 매개 변수가없는 생성자를 제공합니다
public albumexception () {
}
// 생성자에게 문자열 매개 변수를 제공합니다
public albumexception (String msg) {
슈퍼 (MSG);
}
}
import java.sql.SQLException;
java.util.List 가져오기;
import org.hibernate.HibernateException;
org.hibernate.Query 가져오기;
org.hibernate.Session 가져오기;
org.springframework.orm.hibernate3.hibernatecallback;
org.springframework.orm.hibernate3.support.hibernatedaosupport;
/**
*
* @author 홍텐
*
*/
@suppresswarnings ( "확인되지 않은")
공개 클래스 Hongtenhernatedaosupport 확장 hibernatedaosupport {
/**
* 페이징 쿼리 작업에 HQL 문을 사용하십시오
*
* @Param HQL
* HQL 문을 쿼리해야합니다
* @param 오프셋
* 첫 번째 레코드의 색인
* @param pagesize
*각 페이지에 표시 할 레코드 수
* @return 현재 페이지의 모든 레코드
*/
공개 목록 FindBypage (최종 문자열 HQL, 최종 int 오프셋,
최종 int pagesize) {
목록 목록 = gethibernateTemplate (). executeFind (new HiberNateCallback () {
공개 대상 doinhibernate (세션 세션)
최대 절전 모드를 던지기, sqlexection {
List result = session.createrecer (HQL) .SetFirstresult (오프셋)
.SetMaxResults (pagesize) .list ();
결과 반환;
}
});
반환 목록;
}
/**
* 페이징 쿼리 작업에 HQL 문을 사용하십시오
*
* @Param HQL
* HQL 문을 쿼리해야합니다
* @param 값
* HQL에 전달 해야하는 매개 변수가 있으면 값은 전달 된 매개 변수입니다.
* @param 오프셋
* 첫 번째 레코드의 색인
* @param pagesize
*각 페이지에 표시 할 레코드 수
* @return 현재 페이지의 모든 레코드
*/
공개 목록 FindBypage (최종 문자열 HQL, 최종 객체 값,
최종 int 오프셋, 최종 int pagesize) {
목록 목록 = gethibernateTemplate (). executeFind (new HiberNateCallback () {
공개 대상 doinhibernate (세션 세션)
최대 절전 모드를 던지기, sqlexection {
List result = session.createrecer (HQL) .SetParameter (0, value)
.SetFirstResult (Offset) .setMaxResults (pagesize) .list ();
결과 반환;
}
});
반환 목록;
}
/**
* 페이징 쿼리 작업에 HQL 문을 사용하십시오
*
* @Param HQL
* HQL 문을 쿼리해야합니다
* @param 값
* HQL에 전달 해야하는 여러 매개 변수가있는 경우 값은 전달 된 매개 변수 배열입니다.
* @param 오프셋
* 첫 번째 레코드의 색인
* @param pagesize
*각 페이지에 표시 할 레코드 수
* @return 현재 페이지의 모든 레코드
*/
공개 목록 FindBypage (최종 문자열 HQL, 최종 개체 [] 값,
최종 int 오프셋, 최종 int pagesize) {
목록 목록 = gethibernateTemplate (). executeFind (new HiberNateCallback () {
공개 대상 doinhibernate (세션 세션)
최대 절전 모드를 던지기, sqlexection {
query query = session.createquery (HQL);
for (int i = 0; i <value.length; i ++) {
query.setparameter (i, 값 [i]);
}
목록 결과 = query.setfirstresult (오프셋) .setMaxResults (
pagesize) .list ();
결과 반환;
}
});
반환 목록;
}
}
java.util.List 가져오기;
import com.b510.album.dao.photodao;
import com.b510.album.enhance.hongtenhibernatedaosupport;
com.b510.album.model.photo import;
com.b510.album.model.user import;
/**
*
* @author 홍텐
*
*/
@suppresswarnings ( "확인되지 않은")
공개 클래스 Photodaohibernate는 Hongtenhibernatedaosupport 구현을 확장합니다
Photodao {
/**
* 식별 속성에 따라 사진 인스턴스로드
*
* @param id
*로드 해야하는 사진 인스턴스의 ID 속성 값
* @지정된 식별 속성에 해당하는 사진 인스턴스.
*/
공개 사진 get (정수 ID) {
return (photo) gethibernateTemplate (). get (photo.class, id);
}
/**
* 지정된 사진 인스턴스를 지속하십시오
*
* @param 사진
* 지속되어야하는 사진 인스턴스
* @사진 인스턴스 후에 ID 속성 값이 유지됩니다.
*/
공개 정수 저장 (사진 사진) {
return (정수) gethibernateTemplate (). 저장 (사진);
}
/**
* 지정된 사진 인스턴스를 수정하십시오
*
* @param 사진
* 수정 해야하는 사진 인스턴스
*/
공개 무효 업데이트 (사진 사진) {
gethibernateTemplate (). 업데이트 (사진);
}
/**
* 지정된 사진 인스턴스를 삭제합니다
*
* @param 사진
* 삭제 해야하는 사진 인스턴스
*/
public void delete (사진 사진) {
gethibernateTemplate (). delete (photo);
}
/**
* 식별 속성에 따라 사진 인스턴스를 삭제합니다
*
* @param id
* 삭제 해야하는 사진 인스턴스의 식별 속성 값
*/
public void delete (정수 ID) {
gethibernateTemplate (). delete (get (id));
}
/**
* 모든 사진 인스턴스를 쿼리하십시오
*
* @데이터베이스의 모든 사진 인스턴스
*/
공개 목록 <photo> findall () {
return (list <photo>) gethibernateTemplate (). 찾기 ( "사진에서");
}
/**
* 지정된 사용자에 속하는 사진 및 페이징 제어를 수행하는 쿼리 사진
*
* @param 사용자
* 사진이 속한 사용자를 쿼리하십시오
* @param pageno
*쿼리 할 페이지가 지정되었습니다
* @Queried 사진
*/
공개 목록 <Photo> FindByUser (사용자, int pageno) {
int offset = (pageno -1) * page_size;
// 페이징 쿼리 결과를 반환합니다
return (list <photo>) findbypage ( "사진 b에서 b.user =?", 사용자,
오프셋, page_size);
}
}
java.util.List 가져오기;
import com.b510.album.dao.userdao;
import com.b510.album.enhance.hongtenhibernatedaosupport;
com.b510.album.model.user import;
/**
*
* @author 홍텐
*
*/
@suppresswarnings ( "확인되지 않은")
공개 클래스 userdaohibernate는 홍콩 에버 네이트 가스 지원 구현을 확장합니다
userdao {
/**
* 식별 속성을 기반으로 사용자 인스턴스를로드합니다
*
* @param id
*로드 해야하는 사용자 인스턴스의 ID 속성 값
* 지정된 식별 속성에 해당하는 @return 사용자 인스턴스
*/
공개 사용자 get (정수 ID) {
return (user) gethibernateTemplate (). get (user.class, id);
}
/**
* 지정된 사용자 인스턴스를 지속하십시오
*
* @param 사용자
* 지속 해야하는 사용자 인스턴스
* @return 사용자 인스턴스가 지속 된 후 ID 속성 값
*/
공개 정수 저장 (사용자) {
return (정수) gethibernateTemplate (). 저장 (사용자);
}
/**
* 지정된 사용자 인스턴스를 수정하십시오
*
* @param 사용자
* 수정 해야하는 사용자 인스턴스
*/
공개 void update (사용자 사용자) {
gethibernateTemplate (). update (사용자);
}
/**
* 지정된 사용자 인스턴스를 삭제합니다
*
* @param 사용자
* 삭제 해야하는 사용자 인스턴스
*/
public void delete (사용자) {
gethibernateTemplate (). delete (user);
}
/**
* 식별 속성에 따라 사용자 인스턴스를 삭제합니다
*
* @param id
* 삭제 해야하는 사용자 인스턴스의 식별 속성 값
*/
public void delete (정수 ID) {
gethibernateTemplate (). delete (get (id));
}
/**
* 모든 사용자 인스턴스를 쿼리하십시오
*
* @데이터베이스의 모든 사용자 인스턴스
*/
공개 목록 <user> findall () {
return (list <user>) gethibernateTemplate (). 찾기 ( "사용자");
}
/**
* 사용자 이름을 기반으로 사용자를 찾으십시오
*
* @param 이름
* 사용자의 사용자 이름을 찾을 수 있습니다
* @발견 된 사용자
*/
공개 사용자 findByName (문자열 이름) {
List <user> user = (list <user>) gethibernateTemplate (). find
"U.Name =?", 이름);
if (user! = null && userize.size () == 1) {
return users.get (0);
}
null을 반환;
}
}
java.util.List 가져오기;
com.b510.album.model.photo import;
com.b510.album.model.user import;
/**
* Photodao 인터페이스
*
* @author 홍텐
*
*/
공개 인터페이스 photodao {
// 상수를 사용하여 각 페이지에 표시된 사진 수를 제어합니다.
최종 int page_size = 8;
/**
* 식별 속성에 따라 사진 인스턴스로드
*
* @param id
*로드 해야하는 사진 인스턴스의 ID 속성 값
* @지정된 식별 속성에 해당하는 사진 인스턴스.
*/
사진 get (정수 ID);
/**
* 지정된 사진 인스턴스를 지속하십시오
*
* @param 사진
* 지속되어야하는 사진 인스턴스
* @사진 인스턴스 후에 ID 속성 값이 유지됩니다.
*/
정수 저장 (사진 사진);
/**
* 지정된 사진 인스턴스를 수정하십시오
*
* @param 사진
* 수정 해야하는 사진 인스턴스
*/
무효 업데이트 (사진 사진);
/**
* 지정된 사진 인스턴스를 삭제합니다
*
* @param 사진
* 삭제 해야하는 사진 인스턴스
*/
void delete (사진 사진);
/**
* 식별 속성에 따라 사진 인스턴스를 삭제합니다
*
* @param id
* 삭제 해야하는 사진 인스턴스의 식별 속성 값
*/
void delete (정수 ID);
/**
* 모든 사진 인스턴스를 쿼리하십시오
*
* @데이터베이스의 모든 사진 인스턴스
*/
List <photo> findall ();
/**
* 지정된 사용자에 속하는 사진 및 페이징 제어를 수행하는 쿼리 사진
*
* @param 사용자
* 사진이 속한 사용자를 쿼리하십시오
* @param pageno
*쿼리 할 페이지가 지정되었습니다
* @Queried 사진
*/
list <photo> findByUser (사용자, int pageno);
}
java.util.List 가져오기;
com.b510.album.model.user import;
/**
* userdao 인터페이스
*
* @author 홍텐
*
*/
공개 인터페이스 userDao {
/**
* 식별 속성을 기반으로 사용자 인스턴스를로드합니다
*
* @param id
*로드 해야하는 사용자 인스턴스의 ID 속성 값
* 지정된 식별 속성에 해당하는 @return 사용자 인스턴스
*/
사용자 get (정수 ID);
/**
* 지정된 사용자 인스턴스를 지속하십시오
*
* @param 사용자
* 지속 해야하는 사용자 인스턴스
* @return 사용자 인스턴스가 지속 된 후 ID 속성 값
*/
정수 저장 (사용자);
/**
* 지정된 사용자 인스턴스를 수정하십시오
*
* @param 사용자
* 수정 해야하는 사용자 인스턴스
*/
무효 업데이트 (사용자);
/**
* 지정된 사용자 인스턴스를 삭제합니다
*
* @param 사용자
* 삭제 해야하는 사용자 인스턴스
*/
void delete (사용자 사용자);
/**
* 식별 속성에 따라 사용자 인스턴스를 삭제합니다
*
* @param id
* 삭제 해야하는 사용자 인스턴스의 식별 속성 값
*/
void delete (정수 ID);
/**
* 모든 사용자 인스턴스를 쿼리하십시오
*
* @데이터베이스의 모든 사용자 인스턴스
*/
list <user> findall ();
/**
* 사용자 이름을 기반으로 사용자를 찾으십시오
*
* @param 이름
* 사용자의 사용자 이름을 찾을 수 있습니다
* @발견 된 사용자
*/
사용자 findByName (문자열 이름);
}
JAR 패키지를 추가 한 후 프로젝트가 비교적 크게 보이므로 여기에서 필요한 JAR 패키지가 취소됩니다.
다음은 첨부 파일입니다 : ajax_jquery_album_jb51net.rar (소스 코드 다운로드)