본문 바로가기

Java, Spring/06일

6일차 04

데이터 보여주자

<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@page import="java.sql.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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=UTF-8">
<title>Insert title here</title>
</head>
<%

	Connection cn = null; 		
	PreparedStatement ps = null;
	ResultSet rs = null;
	
	List list = new ArrayList();	//upcasting 자식클래스의 인스턴스를 부모클래스의 참조변수로 참조하는것.
	
	String sql = 
			"SELECT seq, title, name, writeday, readcount " +
			"FROM board " +
			"ORDER BY seq DESC ";
	
	try {
		Class.forName("oracle.jdbc.OracleDriver");	//드라이버 로드..
		cn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "oraclejava", "oraclejava");
		ps = cn.prepareStatement(sql);
		rs = ps.executeQuery();		
%>			

<body>
<table>
	<caption>게시판 리스트</caption>
	<tr>
		<th>번호</th>
		<th>제목</th>
		<th>이름</th>
		<th>날짜</th>	
		<th>조회수</th>	
	</tr>
<%		while (rs.next()) {
	%>
	<tr>
		<td><%=rs.getInt("seq") %></td>
		<td><%=rs.getString("title") %></td>
		<td><%=rs.getString("name") %></td>
		<td><%=rs.getString("writeday") %></td>
		<td><%=rs.getInt("readcount") %></td>
	</tr>
<%		} 
		
		} catch (Exception e){
			e.printStackTrace();
		} finally {
			if (rs!= null) try { rs.close(); } catch(Exception e) {}
			if (ps!= null) try { ps.close(); } catch(Exception e) {}
			if (cn!= null) try { cn.close(); } catch(Exception e) {}
		
	}

%>
</table>	
</body>
</html>

완전 스파게티코드..업무가 다른 코드가 섞여있으면 관리가 어렵지..

참고...

jps에서는 try치고 ctrl+space 잘 안먹어.. 웹서버 설치한 디렉토리는

C:\Java\apache-tomcat-7.0.27\webapps\ROOT 여기에 파일이 들어가 실제로 돌아가는 서버지.. 작업은 이클립스 내부의 다른 폴더(workspace)에서 작업하잖아.. C:\Java\workspace\.metadata\.plugins\org.eclipse.wst.server.core\가 서버인양 개발해.. 

C:\Java\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\webdev\org\apache\jsp 에 jsp코드가 java소스코드로 바뀌어..컴파일 하고 필요한 위치에 넣고 실행돼.. 이 과정이 내부에서 수행돼.. 그러니까 jsp에서 몇단계를 거쳐야지 문법이 틀렸는지 맞았는지 알 수 있기 때문에 이 상태에서 ctrl+space잘 안되는 경우가 많다고..

왜 이런과정을 거치느냐..

서블릿 –  별거아니야.. 자바프로그램인데 웹프로그램을 쉽게 할 수 있도록 클래스하나를 상속받은 상태야. httpservlet라는 클래스지. 그 클래스는 웹에 대한 대부분의 스펙을 다 만든 www (w3c) (http://ko.wikipedia.org/wiki/W3C) 에서 표준으로 만든 cgi스펙을 지원하는게 자바에서는 httpservlet이라는 클래스가 있는거지.. 그것만 상속받으면 그걸로 끝이야. 자바에선 httpservlet 상속받은게 그냥 Servlet인거야.. 근데 그렇게 해서 만들어놨더니 불편한 점이 있었어.. 일단 자바를 잘해야돼. 컴파일도 할줄 알아야해. 그 당시 ms에서 asp가 나왔는데 편했어. VB랑 문법이 같고, 서버가 윈도우에 내장되어 있었지.  공개진영에선 php(+apache, mySQL).. 그래서 jsp가 만들어진거야.. java파일로 만들고 컴파일해서 실행해도록만들었어야 했는데 이클립스가 자동으로 해주는거지.. 그래서 이제 이클립스를 쓸 때 주의 사항이 있는데.. insert.jsp를 Insert.jsp로 바꾸면 실행안돼. copy해서 새로 만들고 기존거 삭제하고 F2이름바꾸기 해야돼..why? 빌게이츠때문.. 도스에선 대소문자가 구분안되거든...

 

 

'Java, Spring > 06일' 카테고리의 다른 글

6일차 01  (0) 2012.09.20
6일차 02  (0) 2012.09.20
6일차 03  (0) 2012.09.20
6일차 05  (0) 2012.09.20