* 서버에 파일 전송하는 방법
1. 태그문법
<a href="파일명"></a>
2. jsp문법
response.sendRedirect("파일명")
3. 자바스크립트문법
location="파일명"
4. form 양식
action="파일명"
- 웹페이지에서 파일 이동을 할때 특정값을 가지고 갈수 있다.
값을 가지고 갈 경우에는 ? 뒤에 변수명=값 형태로 작성한다
- 전달되는 값이 2개 이상일 경우에는 &로 연결한다
- 주의: ? 뒤에 오는 구문을 코딩할 경우에는 공백문자(spacebar)를
주면 안된다
sungjukView.jsp? idx=5 & kor=60 <--주의사항
- ?뒤에 오는 값은 get방식으로 서버에 전송된다
* 수정페이지
- 쓰기+상세보기 페이지가 합쳐져 있는 것.
* include 디렉티브
- DB연결등과 같은 반복적인 작업을 할 경우
공통부분에 해당하는 내용만 발췌해서 저장하고
문서 포함을 시킨다.
- 공통적으로 포함될 내용을 가진 파일을 해당 JSP페이지내에 삽입하는 기능을 제공한다.
- <%@ include file="파일명" %>
- New -> JSP File -> ssi.jsp
- ssi.jsp파일의 첫줄과 작업페이지의 첫줄은 반드시 동일해야 한다
- ssi.jsp파일 내용을 현재 작업페이지에 복사해 준 것 임.
* <input type="hidden">
- 폼요소이지만 브라우저에 출력되지는 않는다.
- primary key, 페이지등 프로그램 작성에 필요한 값을 담아서
서버로 가지고 갈때 주로 사용된다.
sungjukView.jsp--------------
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.PreparedStatement"%>
<%@ page import="java.sql.ResultSet" %>
<%
String driver="org.gjt.mm.mysql.Driver";
String url="jdbc:mysql://localhost:3306/erpjavadb?useUnicode=true&characterEncoding=euckr";
String user = "root";
String password = "1234";
Connection con=null;
ResultSet rs=null;
Class.forName(driver);
con=DriverManager.getConnection(url,user,password);
int idx=Integer.parseInt(request.getParameter("idx"));
String sql="SELECT * FROM tb_sungjuk";
sql+=" WHERE sno=?";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setInt(1,idx);
rs=pstmt.executeQuery();//ResultSet에 담기
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>성적페이지 상세보기</title>
</head>
<body>
<center>
* 성적페이지 상세보기 * <br/>
<%
if (rs.next())
{ //레코드포인터가 가르킬 요소가 있는지? 있으면 출력
%>
<table border="1">
<tr>
<td>이름</td>
<td><%=rs.getString("uname")%></td>
</tr>
<tr>
<td>국어</td>
<td><%=rs.getInt("kor")%></td>
</tr>
<tr>
<td>영어</td>
<td><%=rs.getInt("eng")%></td>
</tr>
<tr>
<td>수학</td>
<td><%=rs.getInt("mat")%></td>
</tr>
<tr>
<td>평균</td>
<td><%=rs.getInt("aver")%></td>
</tr>
<tr>
<td>주소</td>
<td><%=rs.getString("address")%></td>
</tr>
<tr>
<td>작성일</td>
<td><%=rs.getString("regdt").substring(0,10)%></td>
</tr>
</table>
<%
}
else
{ //레코드포인터가 가르킬 요소가 없을 경우
out.print("해당하는 레코드 없음!!");
}
%>
<a href="sungjukList.jsp">목록</a>
<!-- 공백문자 -->
<a href="sungjukEdit.jsp?idx=<%=rs.getInt("sno")%>">수정</a>
<a href="sungjukDel.jsp?idx=<%=idx%>">삭제</a>
</center>
</body>
</html>
<%
try{
if ( rs != null){ rs.close(); }
}catch(Exception e){}
try{
if ( pstmt != null){ pstmt.close(); }
}catch(Exception e){}
try{
if ( con != null){ con.close(); }
}catch(Exception e){}
%>
sungjukDel.jsp---------------
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.PreparedStatement"%>
<%
String driver="org.gjt.mm.mysql.Driver";
String url="jdbc:mysql://localhost:3306/erpjavadb?useUnicode=true&characterEncoding=euckr";
String user = "root";
String password = "1234";
Connection con=null;
Class.forName(driver);
con=DriverManager.getConnection(url,user,password);
int idx=Integer.parseInt(request.getParameter("idx"));
String sql="DELETE FROM tb_sungjuk";
sql+=" WHERE sno=?";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setInt(1,idx);
int res=pstmt.executeUpdate();//쿼리문 성공 1
if(res==1)
//request객체 사용자->서버
//response객체 서버->사용자
response.sendRedirect("sungjukList.jsp");
else
out.print("레코드삭제 실패!!");
%>
<%
try{
if ( pstmt != null){ pstmt.close(); }
}catch(Exception e){}
try{
if ( con != null){ con.close(); }
}catch(Exception e){}
%>
ssi.jsp--------------------
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.PreparedStatement"%>
<%@ page import="java.sql.ResultSet" %>
<%
String driver="org.gjt.mm.mysql.Driver";
String url="jdbc:mysql://localhost:3306/erpjavadb?useUnicode=true&characterEncoding=euckr";
String user = "root";
String password = "1234";
Connection con=null;
ResultSet rs=null;
PreparedStatement pstmt=null;
Class.forName(driver);
con=DriverManager.getConnection(url,user,password);
//request객체가 가지고 있는 한글값을 euc-kr로 인코딩해 줌
request.setCharacterEncoding("euc-kr");
%>
<%!
//jsp에서 메소드 작성할때
public void close(Connection con, PreparedStatement pstmt)
{
try{
if ( pstmt != null){
pstmt.close();
}
}catch(Exception e){}
try{
if ( con != null){
con.close();
}
}catch(Exception e){}
}//end
public void close(Connection con,
PreparedStatement pstmt,
ResultSet rs)
{
try{
if ( rs != null){ rs.close(); }
}catch(Exception e){}
try{
if ( pstmt != null){ pstmt.close(); }
}catch(Exception e){}
try{
if ( con != null){ con.close(); }
}catch(Exception e){}
}//end
%>
sungjukEdit.jsp------------
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ include file="ssi.jsp" %>
<%
int idx=Integer.parseInt(request.getParameter("idx"));
String sql="SELECT * FROM tb_sungjuk";
sql+=" WHERE sno=?";
pstmt=con.prepareStatement(sql);
pstmt.setInt(1,idx);
rs=pstmt.executeQuery();
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>성적 수정 하기</title>
</head>
<body>
<center>
* 성적수정 *<br/>
<%
if (rs.next()){
%>
<form name="myform" method="post" action="sungjukEditok.jsp">
<input type="hidden" name="idx" value="<%=idx%>">
<table border="1">
<tr>
<td>이름</td>
<td>
<input type="text" name="uname" value="<%=rs.getString("uname")%>">
</td>
</tr>
<tr>
<td>국어</td>
<td>
<input type="text" name="kor" value="<%=rs.getInt("kor")%>">
</td>
</tr>
<tr>
<td>영어</td>
<td>
<input type="text" name="eng" value="<%=rs.getInt("eng")%>">
</td>
</tr>
<tr>
<td>수학</td>
<td>
<input type="text" name="mat" value="<%=rs.getInt("mat")%>">
</td>
</tr>
<tr>
<td>평균</td>
<td>
<input type="text" name="aver" value="<%=rs.getInt("aver")%>" readonly>
</td>
</tr>
<tr>
<td>주소</td>
<td>
<input type="text" name="address" value="<%=rs.getString("address")%>">
</td>
</tr>
</table>
<input type="submit" value="수정">
<input type="reset" value="취소">
</form>
<%
}
else{
out.print("관련 레코드 없음!!");
}
%>
</center>
</body>
</html>
<%
//close 오버로딩 함수 호출
close(con,pstmt,rs);
%>
sungjukEditok.jsp----------
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ include file="ssi.jsp" %>
<%
int idx=Integer.parseInt(request.getParameter("idx"));
String uname=request.getParameter("uname");
int kor=Integer.parseInt(request.getParameter("kor"));
int eng=Integer.parseInt(request.getParameter("eng"));
int mat=Integer.parseInt(request.getParameter("mat"));
int aver=(kor+eng+mat)/3;
String address=request.getParameter("address");
String sql="UPDATE tb_sungjuk";
sql+=" SET uname=?";
sql+=" ,kor=?";
sql+=" ,eng=?";
sql+=" ,mat=?";
sql+=" ,aver=?";
sql+=" ,address=?";
sql+=" WHERE sno=?";
pstmt=con.prepareStatement(sql);
pstmt.setString(1,uname);
pstmt.setInt(2,kor);
pstmt.setInt(3,eng);
pstmt.setInt(4,mat);
pstmt.setInt(5,aver);
pstmt.setString(6,address);
pstmt.setInt(7,idx);
int res=pstmt.executeUpdate();//쿼리문 성공 1
if(res==1)
response.sendRedirect("sungjukList.jsp");
else
out.print("레코드수정 실패!!");
%>
<%
close(con,pstmt,rs);
%>
-------------------------
* 함수 오버로딩 복습(숙제)
* 수정페이지 sungjukEdit.jsp 유효성 검사
추가페이지 sungjukInt.jsp참조
'..열심히 공부하세.. > JSP' 카테고리의 다른 글
성적테이블 행추가, 성적테이블 목록 (0) | 2012.05.18 |
---|---|
[톰캣] My-SQL 드라이버 설치 및 이클립스 연동 (0) | 2012.05.18 |
JSP기초 및 자바스크립트 유효성 검사 (0) | 2012.05.17 |
[28] 자바 메일보내기 (첨부파일) (0) | 2012.03.06 |
[27] 자바메일보내기 (0) | 2012.03.06 |