iframe태그

iframe태그

iframe태그

브라우저 영역에 다른 문서를 보여주는 태그이다.
화면을 독립적으로 사용하길 원할때 사용한다.

Read More

meta태그, 내부링크, id와 name속성의 차이

meta 태그 (메타태그)

  • meta태그는 웹사이트의 안내자이다.
    대부분의 포털사이트는 웹 사이트의 제목, 태그의 내용, 본문의 첫 100여 단어등을 검색한 후 사용자의 검색어와 비교해서 검색 결과를 나열해준다.
Read More
JOIN

JOIN

join 조인

여러 테이블에 있는 데이터를 합쳐서 출력.
join은 FROM절에 작성된다.

Read More
[자바JAVA]클래스 : 패키지, 임포트, 접근제어자, 데이터 은닉과 보호, 싱글턴디자인패턴

[ITWILL : JSP]Javabean : 기초

ITWILL학원 : 23강 JSP기초 BY 정규태강사

1. 자바빈(JavaBean) (p245~)

  • 디자인부분과 비즈니스로직부분을 분리하기 위해서 자바빈을 사용한다.
  • DTO(Data Transfer Object)로 불리기도 함

2. 자바빈 설계규약

https://m.blog.naver.com/PostView.nhn?blogId=rbamtori&logNo=220760147541&proxyReferer=https:%2F%2Fwww.google.com%2F

정리하자면

  1. 클래스는 public
  2. 멤버변수는 private
  3. 멤버변수마다 별도의 get/set메소드가 존재해야한다
  4. 기본생성자 있어야함 (public)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//1번규칙만족 : 클래스는 public
public class Javabean1 {
//2번규칙만족 : 멤버변수선언 private
private String id;

//4번규칙만족 : 기본생성자존재하지만 생략됨
//public Javabean1(){}

//3번규칙만족 : 멤버변수마다 별도의 get/set메소드가 존재해야한다.
public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}
}

3. 자바빈사용방법

  1. 자바빈 객체를 사용하는 방법
  2. 자바빈 액션태그를 사용하는 방법

예시

파라미터값으로 가져오는 방법과 위의 자바빈사용방법 두가지 총 3가지를 비교해보자.
공통적으로 사용할 페이지는 form.jsp페이지이다

먼저 form페이지이다.
사용자가 id와 pw, 좋아하는 숫자를 입력할 수 있는 페이지 코드이다.

1
2
3
4
5
6
7
8
9
<fieldset>
<legend>사용자 정보입력</legend>
<form action="beanPro2.jsp" method="post">
아이디 : <input type="text" name="id"><br>
비밀번호 : <input type="password" name="pw"><br>
좋아하는 숫자 : <input type="text" name="num"><br>
<input type="submit" value="확인">
</form>
</fieldset>

3-1. 자바빈이 아닌 파라미터값을 가져와서 사용하는 방법

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<%
request.setCharacterEncoding("UTF-8");
String id = request.getParameter("id");
String pw = request.getParameter("pw");
int num = Integer.parseInt(request.getParameter("num"));
%>
<%-- 파라미터값으로 출력 => 아이디 : <%=id %>, 비밀번호 : <%=pw %> 좋아하는 숫자 : <%=num %> --%>
<table border="1" style="text-align: center">
<tr>
<td>출력방식 </td>
<td>아이디</td>
<td>비밀번호</td>
<td>좋아하는 숫자</td>
</tr>
<tr>
<td>파라미터 이용</td>
<td><%=id %></td>
<td><%=pw %></td>
<td><%=num %></td>
</tr>
<table>

3-2. 자바빈 클래스 생성

데이터를 한번에 들고 다니기 위해 Javabean.java 객체를 만들어야 자바빈 객체와 자바빈 액션태그를 사용할 수 있다.
자바페이지는 자바빈설계규약에 맞게 작성해야한다.

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
32
33
34
35
36
37
//1번규칙만족 : 클래스는 public
public class Javabean2 {
//2번규칙만족 : 멤버변수선언 private
private String id;
private String pw;
int num;

//4번규칙만족 : 기본생성자존재하지만 생략됨
//public Javabean2(){}

//3번규칙만족 : 멤버변수마다 별도의 get/set메소드가 존재해야한다.
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPw() {
return pw;
}
public void setPw(String pw) {
this.pw = pw;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}

//전체데이터를 효율적으로 한번에 표시하기위해 toString은 필수다
//toString은 자동 단축키로 만들어서 쓰는 거임 : alt+shift+s에서 `Generate toString()`클릭
@Override
public String toString() {
return "Javabean2 [id=" + id + ", pw=" + pw + ", num=" + num + "]";
}
}

3-3. 자바빈 객체 사용

자바빈 객체를 사용하여 Form페이지에서 입력받은 값을 화면에 출력하는 코드이다.

  1. javabean타입의 객체생성 -> import생성
  2. 변수 Jb는 private이므로 get메서드와 set메서드로 접근해야함
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//1. javabean타입의 객체생성 -> import생성
Javabean2 jb = new Javabean2();

//2. 값 가져오기 : private이므로 get/set메서드로 접근.
jb.setId(request.getParameter("id"));
jb.setPw(request.getParameter("pw"));
jb.setNum(Integer.parseInt(request.getParameter("num")));

//3. 값 출력
<table border="1" style="text-align: center">
<tr>
<td>자바빈 객체 이용</td>
<td><%=jb.getId() %></td>
<td><%=jb.getPw() %></td>
<td><%=jb.getNum() %></td>
</tr>
</table>

3-4. 자바빈 액션태그 사용

  • 액션태그방식은 html문법이며 공통으로 사용되는 메뉴들을(주로 페이지) 특정 공간에 추가한다.

  • 해당 페이지가 java파일(서블릿)으로 컴파일 된 후에 include한다. 따라서 컴파일을 두번하게된다.

  • 액션태그방식은 jsp가 java파일이 되고 거기에 include를 하고 class파일이 된다.

  • jsp:useBean태그의 속성중 하나인 scope를 이용하면 더욱 효과적이다.

    • scope 속성에 page, request, session, application값을 설정하면 해당 영역에 지정해서 저장가능하다.
    • scope 속성의 설정값이 없으면 기본 page에 저장된다.

3-4-1. jsp:useBean 태그

id =객체참조변수 class=사용할 클래스파일 경로(객체의 경로)

1
2
<jsp:useBean id=객체참조변수 class=사용할 클래스파일 경로(객체의 경로) />
// 객체아래 코드는 Javabean1 jb = new Javabean1();

3-4-2. jsp:setProperty 태그

3가지 속성이 있다.

  1. property속성 : 자바빈 객체의 멤버변수(저장공간)
  2. name속성 : 자바빈 객체의 레퍼런스( = jsp:useBean의 id값)
  3. param속성 : 전달되는 파라미터값
1
2
3
jsp:setProperty property=변수명 name=객체생성 id와 동일한 값 param=파라미터값
//예시
<jsp:setProperty property="id" name="bean" param="id"/>
  • 만약 setProperty에서 파라미터 가져올때 파라미터가 2개 이상인 경우는?
    property값과 param값이 동일하면 param값 생략가능하다.
1
2
3
4
5
6
<jsp:useBean id="bean" class="com.itwillbs.bean.Javabean1"/>
<jsp:setProperty property="*" name="bean" param="*"/>

<! -- 여기서 property값과 param값이 동일하면 아래처럼 param값 생략가능 -->

<jsp:setProperty property="*" name="bean"/>

3-4-3. jsp:getProperty 태그

1
2
3
4
5
6
7
8
9
<jsp:getProperty property="set했던변수와 동일한 변수명" name="객체생성 id와 동일한 값"/><br>

//예시
<jsp:getProperty property="id" name="bean"/><br>

<!-- 스크립틀릿을 통한 출력 -->
<%
out.println("자바빈 액션태그객체를 자바코드로 출력 : " + bean.getId());
%>

3-4-4. 액션태그 전체 예시

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//1. 액션태그만드는 객체
<jsp:useBean id="bean" class="com.itwillbs.bean.Javabean2"/>

//2. 파라미터값 저장(파라미터 모든 값을 저장하려면 * 아니면 각각 입력)
<jsp:setProperty property="*" name="bean"/>

//3. 파라미터값 출력
<jsp:getProperty property="id" name="bean"/>
<jsp:getProperty property="pw" name="bean"/>
<jsp:getProperty property="num" name="bean"/>

//4. 데이터 처리 : 테이블사용
<table border="1" style="text-align: center">
<tr>
<td>자바빈 액션태그 이용</td>
<td><%=bean.getId() %></td>
<td><%=bean.getPw() %></td>
<td><%=bean.getNum() %></td>
<td><%=bean.toString() %></td>
</tr>
</table>

[ITWILL : JSP] try catch구문

ITWILL학원 : 23강 JSP기초 BY 정규태강사

try catch구문

  • 예외처리라고도 부른다.

  • 개발자가 예측하기 어려운 에러들을 예외라고 한다.

  • 이러한 예외를 java 컴파일러가 객체로 만들어서 처리해준다.

  • 우리는 try catch를 만들기만 하면 컴파일러가 알아서 한다.

  • 실무에서 가장 많이 사용하는 방식은 아래 방식이다
    ClassNotFoundException과 SQLException은 여러 Exception종류 중에 임의로 작성한 것이고 제외한 나머지 코드들은 통으로 함께 쓰이는 코드이다.
    생각할 수 있는 구체적인 Exception을 찾아서 작성한 뒤 그 외에 발생할 수있는 예외를 대비해 catch(Exception e)로 추가 예외처리를 해준다.

  • catch(Exception e)로 한번에 다 예외처리가 가능한데 왜 따로따로(ClassNotFoundException와 SQLException등등) 먼저 예외처리를 할까?
    예외마다 처리방법이 각기 다르다.
    따라서 각각 예외처리를 해주고 혹시 모를 또다른 예외를 위해 catch(Exception e)구문으로 예외처리를 해주는 것이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
try{

예외가 발생할 수도 있는 코드를 작성

} catch(ClassNotFoundException e){ //class예외만 처리
예외정보를 출력
예외처리

}catch(SQLException e) { //SQL예외만처리
예외정보를 출력
예외처리

}catch(Exception e) { //모든 예외를 처리할 수 있음.
예외정보를 출력
예외처리

}finally{
예외 발생 유무와 상관없이 반드시 실행되는 코드
//ex)보통 자원해제로 메모리효율성을 높인다.
//ex)
if(pstmt != null) pstmt.close();
if(con != null) con.close();
}