관리 메뉴

nkdk의 세상

17장 어제에 이은 exam 파일의 연속입니다. 자료 넘김 본문

My Programing/JSP and Servlet

17장 어제에 이은 exam 파일의 연속입니다. 자료 넘김

nkdk 2008. 3. 9. 01:05
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>

exammark.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR" import="java.sql.*"%>
<%@page import="java.io.IOException"%>

<%!
private void printScore(JspWriter out, String name) throws IOException{
//<input type=radio name=a1 value=1>1점
for(int i=0;i<=5;i++) {
out.print("<input type=radio name=" + name);
if(i==0) out.print(" checked ");
out.print(" value="+ i + ">" + i + "점 ");
}
}
%>

<html><body><h2>시험 채점</h2>
<%
request.setCharacterEncoding("euc-kr"); // 한글 깨짐 방지

Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
String num = request.getParameter("num");

try {
if(num==null) {
out.println("학번이 선택되지 않았습니다.");
return;
}
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 exam where num='" + num + "'";
System.out.println(sql);
rs = stmt.executeQuery(sql);
rs.next();
String ans1 = rs.getString("a1");
String ans2 = rs.getString("a2");
String ans3 = rs.getString("a3");
String ans4 = rs.getString("a4");
String ans5 = rs.getString("a5");
%>
<h3>학번 : <%=num %>
<form method=post action="score.jsp">
1번 : <b><%=ans1 %></b><br>점수 : <% printScore(out, "a1"); %><hr>
2번 : <b><%=ans2 %></b><br>점수 : <% printScore(out, "a2"); %><hr>
3번 : <b><%=ans3 %></b><br>점수 : <% printScore(out, "a3"); %><hr>
4번 : <b><%=ans4 %></b><br>점수 : <% printScore(out, "a4"); %><hr>
5번 : <b><%=ans5 %></b><br>점수 : <% printScore(out, "a5"); %><hr>
<input type=hidden name=num value=<%=num %>>
<input type=submit value=점수등록 >
</form>
<%
} catch (Exception e) {
System.out.println("sql실패 : "+e);
return;
}
%>
</body></html>

scorelist.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR" import="java.sql.*"%>
<html><body><h2>***시험 본 학생 목록***</h2>
<%
request.setCharacterEncoding("euc-kr"); // 한글 깨짐 방지

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";
rs = stmt.executeQuery(sql);
while(rs.next()) {
String num = rs.getString("num");
String name = rs.getString("name");
%>
<li>학번 : <a href="exammark.jsp?num=<%=num %>"><%=num %></a>
&&&
이름 : <%=name %>
</body><html>
<%
}
rs.close(); stmt.close(); conn.close();
%>
<%
}catch (Exception ex) {

}
%>

score.jsp

<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR" import="java.sql.*"
%>

<%
String num = request.getParameter("num");
String a1 = request.getParameter("a1");
String a2 = request.getParameter("a2");
String a3 = request.getParameter("a3");
String a4 = request.getParameter("a4");
String a5 = request.getParameter("a5");

Connection conn=null;
Statement stmt=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 = "insert into score values('" + num +"',"+a1+","+a2+","+a3+","+a4+","+a5+")";
stmt.executeUpdate(sql);
stmt.close(); conn.close();

%>

<html><body><%=num %>님 채점 완료<p>
<input type=button value="계속 채점" onclick=location.href("examlist.jsp")>
<input type=button value="결과 확인" onclick=location.href("scoreshow.jsp")>
<%
}catch(Exception ex) {
System.out.println("sql error: " +ex);
return;
}
%>

</body></html>

scoreshow.jsp

<%@ page contentType="application/vnd.ms-excel" pageEncoding="EUC-KR" import="java.sql.*" %>
<%
// contentType="application/vnd.ms-excel" 엑셀을 실행 시킨다.
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection("jdbc:odbc:mydb");
stmt = conn.createStatement();
String sql = "select * from score";
rs = stmt.executeQuery(sql);
out.println("학번\t점수");
while(rs.next()) {
String num = rs.getString("num");
int s1 = rs.getInt("s1");
int s2 = rs.getInt("s2");
int s3 = rs.getInt("s3");
int s4 = rs.getInt("s4");
int s5 = rs.getInt("s5");
int sum = (s1+s2+s3+s4+s5) * 4;
out.println(num + "\t" + sum);
}

stmt.close(); conn.close();
}catch(Exception ex) {
System.out.println("sql error: " +ex);
return;
}
%>