JSP 2023.3.29

문우림·2023년 3월 29일
0

JSP

목록 보기
4/4
post-thumbnail

1. 예외 처리

  • HTTP상태 500 ➡ 서버 에러 응답 코드는 요청을 처리하는 과정에서 서버가 예상하지 못한 상황에 놓였다는 것을 알리는 에러, 내장 코드 오류.
  • 400 ➡ 페이지가 존재하지 않음.

내장 객체

  • out(출력 스트림)
  • request(요청)
  • response(응답)
  • session(세션)
  • exception(예외 처리)

<% response.setStatus(200); %>

선언 안했을 경우

1-1. 예외 발생 시 실행되는 파일들

web.xml

<error-page>
     <error-code>404</error-code>
     <location>/error404.jsp</location>
  </error-page>
  <error-page>
     <error-code>500</error-code>
     <location>/error500.jsp</location> //location은 변경이 있을 경우 경로를 지정해준다.
  </error-page>

error500.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	500Error.
</body>
</html>

결과

error404.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	404Error.
	
</body>
</html>

결과

2. JDBC관련 클래스

📌JDBC Driver(오라클, MySQL, SQL Server)를 자바에 불러오기 위한 클래스(객체)

  • Connection
  • Statement
  • ResultSet

📌java.sql패키지

+ DriveManager : JVM에서 JDBC전체를 관리하는 클래스. Driver등록, Connection연결작업 등.

  • Driver : DB를 만드는 Vendor(오라클, MySQL등)을 implements하여, 자신들의 DB를 연결할 수 있는 class를 만드는 인터페이스.

  • Connection : DB와 연결성을 갖는 인터페이스

  • Statement : SQL문을 실행하는 인터페이스

  • ResultSet : 조회된 결과 데이터를 갖는 인터페이스

JDBC객체

2-1. DEPT테이블 정보 가져와서 데이터 출력 예제

<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.ResultSet"%>
<!-- sql로 import해준다 -->
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
	String url = "jdbc:oracle:thin:@localhost:1521/xe"; /* 1521:오라클 포트 번호, url은 반드시 복사해서 입력, DB서버 주소*/
	Class.forName("oracle.jdbc.driver.OracleDriver"); /* 복붙하기, 연결계정의주소*/
	
	/* Connection connection;
	Statement statement;
	ResultSet resultset; */
	
	String sql = "SELECT * FROM dept"; //SQL문 작성
	
	Connection con = DriverManager.getConnection(url, "scott", "tiger"); //연결 객체 생성
	Statement st = con.createStatement(); //실행객체 생성
	ResultSet rs = st.executeQuery(sql); //결과객체 생성
	
	while(rs.next()){ //SQL데이터 불어와서 웹 브라우저에 출력
		out.println("부서번호: " + rs.getString("deptno") + ("<br>"));
		out.println("부서이름: " + rs.getString("dname") + ("<br>"));
		out.println("부서위치: " + rs.getString("loc") + ("<br>"));
		out.println("<hr>");
	}
	
	//순서 지켜줘야된다. 끝(밑)에서부터 닫는다.
	rs.close(); 
	st.close();
	con.close();
	
	%>
</body>
</html>

3. emp.jsp (emp 테이블에 있는 모든 데이타를 뽑아 오시오.)

<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.ResultSet"%>
<!-- sql로 import해준다 -->
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
	String url = "jdbc:oracle:thin:@localhost:1521/xe"; /* 1521:오라클 포트 번호, url은 반드시 복사해서 입력 */
	Class.forName("oracle.jdbc.driver.OracleDriver"); /* 복붙하기 */
	
	String sql = "SELECT * FROM EMP";
	
	Connection con = DriverManager.getConnection(url, "scott", "tiger");
	Statement st = con.createStatement();
	ResultSet rs = st.executeQuery(sql);
	
	while(rs.next()){
		out.println("사원번호: " + rs.getString("EMPNO") + ("<br>"));
		out.println("사원이름: " + rs.getString("ENAME") + ("<br>"));
		out.println("직업: " + rs.getString("JOB") + ("<br>"));
		out.println("매니져: " + rs.getString("MGR") + ("<br>"));
		out.println("취업날짜: " + rs.getString("HIREDATE") + ("<br>"));
		out.println("월급: " + rs.getString("SAL") + ("<br>"));
		out.println("보너스: " + rs.getString("COMM") + ("<br>"));
		out.println("부서번호: " + rs.getString("DEPTNO") + ("<br>"));
		
		out.println("<hr>");
	}
	
	//순서 지켜줘야된다. 끝(밑)에서부터 닫는다.
	rs.close(); 
	st.close();
	con.close();
	
	%>
</body>
</html>

0개의 댓글