관리 메뉴

me made it !

[JSP] 20230310 JSP try- catch, DTO(VO)와 DAO 본문

TIL/JSP

[JSP] 20230310 JSP try- catch, DTO(VO)와 DAO

yeoney 2023. 3. 10. 17:05
반응형
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@page import ="java.sql.*" %>
<%@include file="dbconn.jsp" %>
<%@include file="function.jsp" %>
<%
 request.setCharacterEncoding("UTF-8");
 
 
 String memberId = request.getParameter("memberId");
 String memberPwd = request.getParameter("memberPwd");  
 String memberName = request.getParameter("memberName");  
 String memberPhone = request.getParameter("memberPhone");
 String memberEmail = request.getParameter("memberEmail");  
 String memberGender = request.getParameter("memberGender");  
 String memberAddr = request.getParameter("memberAddr");  
 String memberBirth = request.getParameter("memberBirth");

 
 memberInsert(conn,memberId,memberPwd,memberName,memberPhone,memberEmail,memberGender,memberAddr,memberBirth);
 
 %>
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@page import ="java.sql.*" %>
<%
//공통으로 사용하는 파일입니다
String url= "jdbc:oracle:thin:@127.0.0.1:1521:xe";
String user="system";
String password="1234";
Class.forName("oracle.jdbc.driver.OracleDriver");	//동적로딩 - 메모리에 올린다
Connection conn = DriverManager.getConnection(url, user, password);	//DB와 접속시킨다.
out.println("연결객체주소는?"+conn);
%>
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@page import ="java.sql.*" %>
 <%!
 
 public int memberInsert(Connection conn, String memberId, String memberPwd, String memberName , String memberPhone , String memberEmail , String memberGender , String memberAddr , String memberBirth){
	 int value = 0;
	 PreparedStatement pstmt= null;	 
	 String sql ="INSERT INTO member1230(midx,memberId,memberPwd,memberName,memberPhone,memberEmail,memberGender,memberAddr,memberBirth,ip)"+
		       "VALUES(midx_seq.nextval,?,?,?,?,?,?,?,?,null)";
// 구문 쿼리클래스
		try{
			 pstmt = conn.prepareStatement(sql);
			 pstmt.setString(1,memberId);	
			 pstmt.setString(2,memberPwd);
			 pstmt.setString(3,memberName);
			 pstmt.setString(4,memberPhone);
			 pstmt.setString(5,memberEmail);
			 pstmt.setString(6,memberGender);
			 pstmt.setString(7,memberAddr);
			 pstmt.setString(8,memberBirth);
			 pstmt.executeUpdate();
		}catch(Exception e){
				e.printStackTrace();
		}finally{
			try{
				pstmt.close();
				conn.close();
			}catch(Exception e){
				e.printStackTrace();
			}
		}
		return value;
 }
%>

 

 

▶  지시어


page 지시어: JSP 페이지에 대한 문서의 타입, 에러 페이지, MIME 타입과 같은 정보들을 설정합니다.

include 지시어: JSP에서 또 다른 JSP나 HTML 페이지를 포함시킬 때 사용합니다.

taglib 지시어: EL(표현언어) 에서 자바 클래스의 메서드를 호출하거나, JSTL(JSP 표준 태그 라이브러리)를 사용하기 위해 선언합니다.


▶스크립트 요소


1. 선언부: 멤버 변수나 메서드를 선언할 때 사용하는 영역입니다.

<%! 메서드 선언%>

2. 스크립틀릿: 선언부에서 선언된 메서드를 호출하거나 자바 코드를 작성하는 영역입니다.

<%자바코드%>

3. 표현식: 주로 변수의 값을 간단하게 출력할 때 사용합니다.

<%= 자바 표현식%>

 

 

▶내장 객체 


특징

1. 컨테이너가 미리 선언해놓은 참조 변수를 이용해 사용한다

2. 별도의 객체 생성 없이 각 내장 객체의 메서드를 사용할 수 있다.

3. JSP 문서 안의 <%스크립틀릿%>과 <%=표현식%>에서만 사용할 수 있다.

4. <%!선언부%>에서는 즉시 사용하는 건 불가능하고, 매개변수로 전달받아 사용할 수는 있다.

 

request 클라이언트의 요청 정보 저장
response 클라이언트의 요청에 대한 응답 정보 저장
out  JSP 페이지에 출력할 내용을 담는 출력 스트림
session 웹 브라우저 정보를 유지하기 위한 세션 정보를 저장
application 웹 애플리케이션 관련 컨텍스트 정보를 저장
pageContext JSP 페이지에 대한 정보를 저장
page  JSP 페이지를 구현한 자바 클래스의 인스턴스
config JSP 페이지에 대한 설정 정보 저장
exception 예외가 발생했을 때 사용

 

+) URL 과 URI 의 차이 (호스트의  포함 여부)

URL : 호스트를 포함한 전체 주소

URI : 호스트를 제외한 컨텍스트 루트부터의 주소

 


 

 

한글이 깨져서 나올 때의 해결 방법: 

request.setCharacterEncoding("UTF-8");

 

▶DB와 연동


▶DTO 와 DAO 

DTO DAO
 계층 사이에서 데이터를 교환하기 위해 생성하는 객체, 별다른 로직 없이 속성과 그 속성에 접근하기 위한 게터/세터 메서드만 갖춤 . VO라고도 한다 .  데이터베이스의 데이터에 접근하기 위한 객체 , 보통 JDBC를 통해 구현한다  ! CRUD를 전담 . 
(Create, Read, Update, Delete)

 

 

 

 

 

 

 

▶JSP 기본 태그


 

 

▶JSP의 특징 

https://youtu.be/j5t0i4gaehY

 

 

 

 


https://devlog-wjdrbs96.tistory.com/152

 

[Java] JSP(Java Server Page)란 무엇인가?

1. JSP(Java Server Page)란? JSP는 Java Server Pages 의 약자이며 HTML 코드에 JAVA 코드를 넣어 동적 웹페이지를 생성하는 웹어플리케이션 도구이다. JSP가 실행되면 자바 서블릿(Servlet)으로 변환되며 웹 어플

devlog-wjdrbs96.tistory.com

 

https://velog.io/@productuidev/Study-JSP-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0

 

 

반응형