Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- ajax
- flex3
- Lift
- Eclipse
- iBatis
- 디즈니씨
- 도커
- C/C++
- ejb
- 주식이야기
- 베트남어
- 명사 추출기
- nodejs express
- 나의 취미
- 명사 뽑아내기
- ror실행
- node.js web framework
- Cross
- php thumbnail
- 스킨 스쿠버
- scala
- 나의 프로젝트
- 메일왕창보내는법
- Node.js
- docker
- 명사 분석기
- rss
- 책이야기
- express for node.js
- php
Archives
- Today
- Total
nkdk의 세상
16장 xml을 이용하여 보드에 자료 올리기 본문
board.dtd
<!ELEMENT board (unit)+ >
<!ELEMENT unit (name, date, comment) >
<!ELEMENT name (#PCDATA)>
<!ELEMENT date (#PCDATA)>
<!ELEMENT comment (#PCDATA)>
board.xsl
<?xml version="1.0" encoding="EUC-KR"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<html><body><center><b>XML 방명록</b><p/>
<table border="1">
<xsl:apply-templates select="board"/>
</table>
</center></body></html>
</xsl:template>
<xsl:template match="board">
<xsl:for-each select="unit">
<tr><td>작성자</td><td><xsl:value-of select="name"/></td></tr>
<tr><td>작성일</td><td><xsl:value-of select="date"/></td></tr>
<tr><td colspan="2" height="50"><xsl:value-of select="comment"/></td></tr>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
input.html
<html><body><center>
<h2>XML 방명록</h2>
<form action="/jsp/DbInput" method="post">
<table>
<tr>
<td>이름:</td><td><input type=text name="name"></td>
</tr>
<tr>
<td>내용:</td><td><textarea name="comment" cols="40" rows="5" ></textarea></td>
</tr>
</table>
<input type="submit" value="입력완료">
</form>
</center></body></html>
DbInput.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
public class DbInput extends HttpServlet {
Connection conn;
Statement stmt;
ResultSet rs;
public void init() throws ServletException{
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection("jdbc:odbc:mydb");
} catch (Exception e) {
System.out.println("ss"+e);
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("euc-kr");
String name = request.getParameter("name");
String comment = request.getParameter("name");
response.setContentType("text/html;charset=euc-kr");
PrintWriter out = response.getWriter();
try {
conn.setAutoCommit(false);
stmt = conn.createStatement();
String sql = "insert into board(name, comment) values('"+name+"','" + comment +"')";
stmt.executeUpdate(sql);
conn.commit();
response.sendRedirect("/jsp/board.jsp");
} catch (Exception e) {
try {
conn.rollback();
} catch (Exception ex) {
System.out.println("입력오류:"+ex);
}
}finally{
try {
conn.setAutoCommit(true);
} catch (Exception exc) {}
}
}
}
// board.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE board SYSTEM "board.dtd" >
<?xml-stylesheet type="text/xsl" href="board.xsl"?>
<board>
<unit>
<name>김정</name>
<date>2007-10-09</date>
<comment>방명록 내용</comment>
</unit>
<unit>
<name>김정근</name>
<date>2007-10-09</date>
<comment>방명록 내용</comment>
</unit>
<unit>
<name>김정일</name>
<date>2007-10-09</date>
<comment>방명록 내용</comment>
</unit>
</board>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR" import="java.sql.*" %>
<?xml version="1.0" encoding="EUC-KR"?>
<!DOCTYPE board SYSTEM "board.dtd" >
<?xml-stylesheet type="text/xsl" href="board.xsl"?>
<board>
<%
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection("jdbc:odbc:mydb");
} catch (Exception e) {
System.out.println("연결실패 : "+e);
return;
}
try {
stmt = conn.createStatement();
rs = stmt.executeQuery("select * from board");
while(rs.next()) {
%>
<unit>
<name><%=rs.getString("name") %></name>
<date><%=rs.getString("date") %></date>
<comment><%=rs.getString("comment") %></comment>
</unit>
<%
}
} catch (Exception e) {
System.out.println("SQL 오류 : "+e);
return;
}
%>
</board>
exam.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR" import="java.sql.*"
%>
<%
request.setCharacterEncoding("euc-kr"); // 한글 깨짐 방지
String num = request.getParameter("num");
String name = request.getParameter("name");
String ans1 = request.getParameter("1");
String ans2 = request.getParameter("2");
String ans3 = request.getParameter("3");
String ans4 = request.getParameter("4");
String ans5 = request.getParameter("5");
String ip = request.getRemoteHost();
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection("jdbc:odbc:mydb");
} catch (Exception e) {
System.out.println("연결실패 : "+e);
return;
}
try {
stmt = conn.createStatement();
String sql = "select * from student where num='"+ num + "'";
rs = stmt.executeQuery(sql);
if(rs.next()) {
%>
<script language="javascript">
alert("이미 시험에 응시 하였습니다.");
history.back();
</script>
<%
}
sql="insert into student values('" + num + "','"+name+"','"+ip+"')";
System.out.println(sql);
stmt.execute(sql);
sql = "insert into exam values('" + num + "','" + ans1 + "','" + ans2 + "','" + ans3 + "','" + ans4 + "','" + ans5 + "')";
stmt.executeUpdate(sql);
stmt.close(); conn.close();
}catch(Exception ex) {
System.out.println("sql error: " +ex);
return;
}
%>
<html><body>
<h2>시험 답안 등록</h2>
<%=name %>님 수고하셨습니다.
</body></html>
exam.html
<html><head>
<script>
function check() {
if(frm.num.value=="") {
alert("학번을 채우시오.");
frm.num.focus();
return;
}
if(frm.name.value=="") {
alert("이름을 채우시오.");
frm.name.focus();
return;ㄱ
}
frm.submit();
}
</script>
</head>
<body><h2>2007년 2학기 중간 고사</h2>
<form method=post action=exam.jsp name=frm>
학번 : <input type=text name=num>&&&
이름 : <input type=text name=name>&&&
<hr>
<b>다음 사항을 채우시오</b><p>
1. 자바의 특징은?<br><input type=text name="1" size=80><p>
2. 오바의 특징은?<br><input type=text name="2" size=80><p>
3. 가바의 특징은?<br><input type=text name="3" size=80><p>
4. 이바의 특징은?<br><input type=text name="4" size=80><p>
5. 알바의 특징은?<br><input type=text name="5" size=80><p>
</form>
<input type=button value="전송" onclick="check()">
</body></html>
<!ELEMENT board (unit)+ >
<!ELEMENT unit (name, date, comment) >
<!ELEMENT name (#PCDATA)>
<!ELEMENT date (#PCDATA)>
<!ELEMENT comment (#PCDATA)>
board.xsl
<?xml version="1.0" encoding="EUC-KR"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<html><body><center><b>XML 방명록</b><p/>
<table border="1">
<xsl:apply-templates select="board"/>
</table>
</center></body></html>
</xsl:template>
<xsl:template match="board">
<xsl:for-each select="unit">
<tr><td>작성자</td><td><xsl:value-of select="name"/></td></tr>
<tr><td>작성일</td><td><xsl:value-of select="date"/></td></tr>
<tr><td colspan="2" height="50"><xsl:value-of select="comment"/></td></tr>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
input.html
<html><body><center>
<h2>XML 방명록</h2>
<form action="/jsp/DbInput" method="post">
<table>
<tr>
<td>이름:</td><td><input type=text name="name"></td>
</tr>
<tr>
<td>내용:</td><td><textarea name="comment" cols="40" rows="5" ></textarea></td>
</tr>
</table>
<input type="submit" value="입력완료">
</form>
</center></body></html>
DbInput.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
public class DbInput extends HttpServlet {
Connection conn;
Statement stmt;
ResultSet rs;
public void init() throws ServletException{
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection("jdbc:odbc:mydb");
} catch (Exception e) {
System.out.println("ss"+e);
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("euc-kr");
String name = request.getParameter("name");
String comment = request.getParameter("name");
response.setContentType("text/html;charset=euc-kr");
PrintWriter out = response.getWriter();
try {
conn.setAutoCommit(false);
stmt = conn.createStatement();
String sql = "insert into board(name, comment) values('"+name+"','" + comment +"')";
stmt.executeUpdate(sql);
conn.commit();
response.sendRedirect("/jsp/board.jsp");
} catch (Exception e) {
try {
conn.rollback();
} catch (Exception ex) {
System.out.println("입력오류:"+ex);
}
}finally{
try {
conn.setAutoCommit(true);
} catch (Exception exc) {}
}
}
}
// board.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE board SYSTEM "board.dtd" >
<?xml-stylesheet type="text/xsl" href="board.xsl"?>
<board>
<unit>
<name>김정</name>
<date>2007-10-09</date>
<comment>방명록 내용</comment>
</unit>
<unit>
<name>김정근</name>
<date>2007-10-09</date>
<comment>방명록 내용</comment>
</unit>
<unit>
<name>김정일</name>
<date>2007-10-09</date>
<comment>방명록 내용</comment>
</unit>
</board>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR" import="java.sql.*" %>
<?xml version="1.0" encoding="EUC-KR"?>
<!DOCTYPE board SYSTEM "board.dtd" >
<?xml-stylesheet type="text/xsl" href="board.xsl"?>
<board>
<%
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection("jdbc:odbc:mydb");
} catch (Exception e) {
System.out.println("연결실패 : "+e);
return;
}
try {
stmt = conn.createStatement();
rs = stmt.executeQuery("select * from board");
while(rs.next()) {
%>
<unit>
<name><%=rs.getString("name") %></name>
<date><%=rs.getString("date") %></date>
<comment><%=rs.getString("comment") %></comment>
</unit>
<%
}
} catch (Exception e) {
System.out.println("SQL 오류 : "+e);
return;
}
%>
</board>
exam.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR" import="java.sql.*"
%>
<%
request.setCharacterEncoding("euc-kr"); // 한글 깨짐 방지
String num = request.getParameter("num");
String name = request.getParameter("name");
String ans1 = request.getParameter("1");
String ans2 = request.getParameter("2");
String ans3 = request.getParameter("3");
String ans4 = request.getParameter("4");
String ans5 = request.getParameter("5");
String ip = request.getRemoteHost();
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection("jdbc:odbc:mydb");
} catch (Exception e) {
System.out.println("연결실패 : "+e);
return;
}
try {
stmt = conn.createStatement();
String sql = "select * from student where num='"+ num + "'";
rs = stmt.executeQuery(sql);
if(rs.next()) {
%>
<script language="javascript">
alert("이미 시험에 응시 하였습니다.");
history.back();
</script>
<%
}
sql="insert into student values('" + num + "','"+name+"','"+ip+"')";
System.out.println(sql);
stmt.execute(sql);
sql = "insert into exam values('" + num + "','" + ans1 + "','" + ans2 + "','" + ans3 + "','" + ans4 + "','" + ans5 + "')";
stmt.executeUpdate(sql);
stmt.close(); conn.close();
}catch(Exception ex) {
System.out.println("sql error: " +ex);
return;
}
%>
<html><body>
<h2>시험 답안 등록</h2>
<%=name %>님 수고하셨습니다.
</body></html>
exam.html
<html><head>
<script>
function check() {
if(frm.num.value=="") {
alert("학번을 채우시오.");
frm.num.focus();
return;
}
if(frm.name.value=="") {
alert("이름을 채우시오.");
frm.name.focus();
return;ㄱ
}
frm.submit();
}
</script>
</head>
<body><h2>2007년 2학기 중간 고사</h2>
<form method=post action=exam.jsp name=frm>
학번 : <input type=text name=num>&&&
이름 : <input type=text name=name>&&&
<hr>
<b>다음 사항을 채우시오</b><p>
1. 자바의 특징은?<br><input type=text name="1" size=80><p>
2. 오바의 특징은?<br><input type=text name="2" size=80><p>
3. 가바의 특징은?<br><input type=text name="3" size=80><p>
4. 이바의 특징은?<br><input type=text name="4" size=80><p>
5. 알바의 특징은?<br><input type=text name="5" size=80><p>
</form>
<input type=button value="전송" onclick="check()">
</body></html>