System.out.println("Hello, World");

안드로이드 - Button과 EditText


Button

- 사용자가 클릭하여 명령을 내릴수 있는 위젯이며 대부분의 운영체제나 장비에서 아주 흔하게 사용된다. 

  사각형 모양이며 표면에 명령의 의미를 설명하는 문자열이 표시도어 있다. 클래스명이 Button이므로 XML 엘리멘트 이름도 당연히 Button이다. 

  속성은 대부분 View나 TextView로부터 상속받은 것이며 고유의 속성을 따로 가지지 않는다.


EditText

- 문자열을 입력받는 위젯이며 간단히 줄여 에디트라고 부른다. TextView의 서브 클래스이므로 TextView의 모든 속성을 사용할 수 있으며 추가

  문자열 편집과 관련된 메서드가 제공한다.


예제)

<EditText

android:id="@+id/edit"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="여기다 입력"

/>

<Button

android:id="@+id/btn"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="입력 완료"

/>


<후보단어 보여주는 이벤트 처리코드>

Button btn = (Button)findViewById(R.id.버튼의 ID);

btn.setOnClickListener(new Button.OnClickListener(){

public void onClick(View v){

//클릭했을때의 동작 처리

EditText edit=(EditText)findViewById(R.id.edit);

String str = edit.getText().toString();

Toast.makeText(C03_ButtonEdit.this, str, Toast.LENGTH_SHORT).show();

}

});

}

}

}

});



Posted by 김마농

안드로이드 -ImageView


○ src

 - 출력한 이미지를 지정하는 가장 중요한 속성. 이 속성에 값을 대입하지 않으면 아무것도 보이지 않으므로 반드시 지정해야 한다.

ex) android:src="@drawble/파일명" 

    android:src="@drawble/pride"


○ maxHeight, maxWidth

 - 이미지가 출력될 최대 크기를 지정한다. 별다른 지정이 없으면 이미지의 원래 크기대로 출력되지만 모바일 장비의 해상도가 충분치 않으므로 적당히                                                              제한할 필요가 있다.

ex) android:maxHeight="크기", android:maxWidth="크기"

android:maxHeight="70px", android:maxWidth="120px"


○ adjustViewBounds

 - 이미지의 종횡비를 맞추기 위해 이미지 뷰의 크기를 적당히 조정할 것인가를 지정한다. true or false 둘중 하나의 값만 지정가능하므로 하나만 사용해야 한다.

ex) android:adjustViewBounds="true", android:adjustViewBounds="false"


○ cropToPadding

 - true일 경우 위젯의 주어진 여백에 맞추기 위해 이미지의 일부를 잘라낸다. 이 속성을 사용하면 여백을 강제로 유지하므로 이미지 전체가 다 보이지 않을 수도 있다.


○ tint

 - 이미지에 색조를 입힌다. 색상이 이미지 위에 살짝 덮혀 출력된다. 통상 반투명한 색상을 지정하여 이미지 위에 옅은 색상을 뿌리는 효과를 낸다.

ex) android:tint="#80ff000"


○ scaleType

 - 이미지의 원래 크기와 다르게 출력 할 때 적용할 확대, 축소 방식을 지정한다. matrix, fitXY, center, centerCrop, centerInside 등의 여러 가지 방법 중 하나를 지정한다.


예제)

<ImageView

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:src="@drawable/pride"

/>


<ImageView

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:src="@drawable/pride"

android:maxHeight="70px"

android:maxWidth="120px"

android:adjustViewBounds="true"

/>


<ImageVIew

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:src="@drawable/dog"

android:tint="#80ff0000"

/>


Posted by 김마농

JSTL(JSP Standard Tag Library)

-custom tag library로 JSP 스펙에는 포함되지 않았지만 자바 진영에서 진행하는 태그 라이브러리

-커스텀 태그 : JSP에서 스크립트릿으로 작성해야할 동적 로직을 태그로 처리

-jstl.java.net에서 api를 다운로드 후 web application의 lib 폴더에 넣어 사용한다.

-JSP에서 커스텀 태그를 사용하기 위해서는 taglib 지시자 태그 설정 필요

 <%@ taglib prefix="접두어" uri="태그 라이브러리 구분자"%>


○ JSTL 종류

-core : Program의 기본적인 내용들을 지원. 변수, 제어문, 출력 등

     uri : http://java.sun.com/jsp/jstl/core


-xml : XML 관련 처리

     uri : http://java.sun.com/jsp/jstl/xml


-국제화 : ResourceBundle을 이용한 국제화 처리

uri : http://java.sun.com/jsp/jstl/fmt


-데이터베이스 : JSP에서 DB 접근하기 위한 로직 지원

uri : http://java.sun.com/jsp/jstl/sql



○ 주요 코어 라이브러리

-변수지원

-set : JSP에서 Attribute로 binding된 객체 처리

-set 태그

1. 4개 속성영역에 값(Attribute)를 binding

                 - 속성

var : binding할 객체 이름

scope : binding할 속성영역. 값 : page, request, session, application

value : binding할 속성 객체

ex)<c:set var="name" scope="request" value="홍길동"/>

<c:set var="errorMessage" scope="request" value="치명적인 오류"/> 

이것을 get할때는 똑같이 ${requestScope.errorMessage}하면 된다.


2. binding된 Attribute의 property에 값을 설정

- 속성

target : property를 설정한 attribute

value : property에 설정할 값

property : 값을 설정할 property

ex) <c:set target="${requestScope.cto}" property="id" value="aaa"/>


-remove 태그

-remove : binding된 attribute 제거

-4개 속성영역에 binding된 attribute 객체를 제거하는 태그

-속성

var : 제거할 속성의 이름

scope : 제거할 속성이 binding된 영역(page, request, session, application)

ex) <c:remove scope="request" var="cto"/>


-제어문 지원

-if : if문

-if 태그

-단일 조건 조건문 처리 -if문과 동일

-다중 조건 처리에는 사용할 수 없다.(if-else)

-속성

-test : 조건 설정 true/false

-구문

<c:if test="조건">조건 만족시 실행할 내용</c:if>

<c:if test="<%=x<10">조건 만족시 실행할 내용</c:if>


-choose : 다중 조건 처리

- 다중 조건을 처리하는 태그 - if else, switch case

- choose 태그는 조건들을 묶어주는 역할

- 하위 태그

when 태그

-선택할 조건을 표기하기 위한 태그

-속성 : test - 조건 설정

-otherwise 

-else의 역할(switch case의 default)의 역할

구문

<c:choose>

<c:when test="조건1">

조건1이 true일 경우 실행할 내용

  </c:when>

<c:otherwise>

when의 모든 조건이 만족하지 않을 경우 실행할 내용

</c:otherwise>

</c:choose>


-forEach : 반복문 처리

> 컬렉션이나 배열을 반복해서 element들을 조회

> 속성

-items : 반복할 컬렉션이나 배열 설정

-var : 반복시 조회할 element를 참조할 변수 선언

ex)<c:forEach var="var" items="배열">

${var.id}

    </c:forEach>


> 특정 횟수만큼 반복을 처리

-begin : 시작 값

-end : 종료 값

-step : 증감 값

-var : 변화되는 값을 저장할 변수 선언

ex)<c:forEach begin="1" end="10" step="1" var="i">

${ i } - 안녕

</c:forEach>



ex) if문 적용하기


-출력지원

-out 태그

-태그형태의 문자열을 그대로 출력되도록 처리할 수 있다.

-속성

-value : 출력할 내용

-escapeXml : 태그 출력 여부 처리

-true : 태그를 해석하지 않고 그대로 출력

-false : 태그를 해석해서 출력

-default : value의 값이 null일 경우 출력할 기본 값

ex) 그냥 출력하기


ex) EL과 연동


ex) 출력할때 태그 연동하기


ex) null값 출력 및 기본 값 


위 그림처럼 requestScope에 아무것도 없으면 null값이 출력된다. 또한 default="값"에다가 값을 넣으면 기본값이 출력된다.



또한 default에 안넣는다고 해도 <c:out> 값 </c:out>에 값을 넣어도 기본값으로 나온다.


Posted by 김마농

1. http://jstl.java.net/로 들어가서 다운로드를 클릭한다.



2. JSTL API를 클릭한다.


3. javax.servlet.jsp.jstl-api-1.2.1.jar을 다운 받는다.


4. 다시 뒤로 돌아와서 JSTL Implementation을 선택한다.


5. javax.servlet.jsp.jstl-1.2.1.jar을 다운받는다.


6. 다운받은 2파일을 lib 폴더에 넣으면 자동으로 적용된다.



Posted by 김마농

EL(Expression Language) 표현식 언어

-JSP 2.0에서 새로 추가된 스크립트 언어

- 기존의 expression tag의 업그레이드 버전

-주요기능

-리터럴 데이터 출력

-각종 연산자를 제공하여 연산결과 출력을 지원'

-4개 속성 scope(page, request, session, application)에 binding된 Attribute(객체)나 그 Attribute의 property 값 출력

-JSTL과 연동


-구문

- ${출력내용} - ${10}, ${"안녕"}, ${10+20}

- ${value1.value2[.value3 ..]}

특정 객체의 property 접근 할 때 사용

- ${value1[value2]}

컬렉션(list 계열)의 값을 출력할 때 주로 사용

- value1에는 EL 내장 객체나 attribute명이 들어온다.

- 구문을 실행 도중 null이 나오면 더 이상 진행하지 않고 출력도 하지 않는다.

- 예)

${requestScope.mto.id}

${cto.address.zipcode}

${sessionScope.lost[0]}

- JSP의 script(스크립트 릿, 표현식, 선언식, 지시자) 태그에는 사용 못한다.

- action 태그내에는 사용 가능

-<jsp:include page="${dir}/a.jsp"/>


-EL의 내장 객체(기본객체)

-EL은 11개의 내장객체를 제공하여 별다른 추가 코드 없이 특정 객체에 접근 하여 사용할 수 있도록 한다.

-JSP의 내장객체와는 다르다.

-EL 내장객체중 pageContext를 제외하고는 모두 name-value 형태의 값을 관리한다.

- ${}내에서만 사용가능하며 첫번재 값으로만 올 수 있다.

-Scope와 관련된 내장객체

-pageScope : page Scope에 접근

-requestScope : request Scope에 접근 

-sessionScope : session Scope에 접근

-applicationScope : application Scope에 접근


-요청 파라미터 관련 내장 객체

-param : 요청 파라미터 조회시 사용(하나의 이름으로 넘어온 경우)

-paraValues - 요청 파라미터 조회시 사용(하나의 이름으로 여러값이 넘어온 경우)


-Header값 관련

-header

-headerValues


-쿠키값 조회

-cookie : ${cookie.이름.value}


- 초기 파라미터 조회(context-param으로 설정된 것)

-initParam


-pageContext 객체 관련 내장 객체

-pageContext

Posted by 김마농

include 

-JSP 페이지 내에 다른 컴포넌트(JSP,HTML,Servlet)를 포함시키는 기술

- 주로 JSP나 HTML을 포함시킨다.

- include 지시자 태그를 이용, 표준 action 태그 이용

- 기타 : JSTL의 import 태그 이용, tiles 프레임 워크

-<%@ include %> 지시자 태그 이용

- copy and paste 방식

-jsp를 servlet으로 변환하기 전에 포함시킬 파일의 내용을 카피하여 붙인다.

-구문 : <%@include file="포함 시킬 파일명 "%>

-<jsp:include> 액션 태그 이용

- 요청 디스패치 방식

- 수행을 포함시킬 컴포넌트로 이동한 뒤 출력 내용을 포함시키는 방식

- 구문

<jsp:include page="url"/>

<jsp:include page="url">

<jsp:param name="name" value="value"/>

</jsp:include>



Posted by 김마농

● 액션 태그 (Action Tag)

- JSP 내에서 자바코드를 줄이기 위한 태그

- 액션 태그는 JSP내에서 Java 코드 없이 태그를 이용해 동적인 실행을 처리 하기 위해 제한됨

- 태드와 Java 코드를 연결하여 JSP가 Servlet으로 변환 시 Web Container가 그에 알맞은 동적인 실행을 처리


● 종류

- 표준 Action 태그 : JSP 스펙에서 제공하는 태그

- Custom tag : 사용자 정의 액션 태그

- 기본 구문 

- <prefix : 태그명 속성  = "속성값" [속성 = "속성값".. ]>

- prefix : 태그 library를 구분하기 위한 이름 (접두어)

- xml 문법을 따른다.

- 대소문자 구분    ※ HTML은 대소문자 구분 없다.

- 속성의 값은 ' 또는 " 으로 감싸준다.

- 태그는 반드시 닫아야 한다.

ex)

<c:forEach item="list" var="mto"> </c:forEach>

<jsp:getProperty name='cto' property='name'/>


● 표준 액션 태그

 - JSP 스펙에서 제공하는 액션태그

- 따로 library를 설정할 필요 없이 web container가 제공한다.

- 구문

<jsp:태그명 속성='값' ...>

- 주요 태그

- Attribute로 설정된 빈 객체와 연동하기 위한 태그

- useBean, setProperty (특정 빈에 값 셋팅), getProperty (

- 수행을 이동하기 위한 태그

- include, forword, param


※ <jsp:useBean>

- 속성 영역(page, request, session, application) 에 binding 된 속성 객체를 lookup 한다. 만약 가져오지 못하면 생성하여 그 영역에 binding 한다.

- 태그의 attribute(속성)

- id : 자바 식별자, binding시 설정 이름

- class : lookup 할 클래스의 이름. fully name으로 설정

- scope : 속성 영역, 값 : page(기본), request, session, application

ex )

<jsp:useBean id="mto" class="dto.MemberDTO" scope="request"/>

→ 의미

- MemberDTO mto = (MemberDTO)request.getAttribute("mto");

if(mto==null){

mto = new MemberDTO();

request.setAttribute("mto", mto);

}


※ <jsp:setProperty>

- <jsp:useBean> 태그로 lookup 한 객체 (Attribute)의 property에 값을 설정하는 태그

- Lookup 한 Attribute의 setter메소드를 호출하여 값을 설정 한다.

- 명시적인 값을 설정

- 요청 파라미터로 넘어온 값을 설정

- 속성

- name : 값을 설정할 bean의 이름. useBean의 id 값

- property : 값을 설정할 property 명. (setter메소드에서 set을 제외한 이름)

- value : 설정할 값

- param : 요청파라미터의 값을 설정할 경우, 요청 파라미터의 이름

  - 요청 파라미터로 넘어온 값을 설정할 경우 property의 이름과 요청 파라미터의 이름이 동일한 경우 param을 생략 할 수 있다.

  - ex)

<jsp:setProperty name = "mto" property="id" value = "myid" />

 → 의미 : mto.setId("myid");

--------------------------------------------------------------------------------

<jsp:setProperty name="mto" property = "name" param="p_name" />

 → 의미 : mto.setName(request.getParameter("p_name"));



※ <jsp:getProperty> 태그

- <jsp:useBean> 태그로 lookup한 객체의 property 값을 조회하여 출력하는 태그

- bean 객체의 getter 메소드를 호출한다. (getXXX 또는 isXXX)

- 속성

- name : 프라퍼티를 조회할 객체의 이름. useBean의 id값

- property : 조회할 프라퍼티의 이름 (getter 메소드의 이름)

- ex) <jsp:getProperty name = "mto" property="age" />

→ 의미

 <%= mto.getAge() %>



※ <jsp:forword>

- JSP의 수행을 다른 컴포넌트로 (JSP, Servlet, HTML) 로 이동하는 태그

- RequestDispacher객체.forword() 실행을 태그화 하는 것.

- 요청 Dispatch 방식으로 이동

- 속성

- page : 수행을 이동항 컴포넌트의 url 설정

- ex)<jsp:forword page="abc.jsp/>

→ 의미

  RequestDispatcher rdp = request.getRequestDispatcher("abc.jsp");

  rdp.forword(request, response);

Posted by 김마농

JSP -> 서블릿


서블릿

-callBack 

-init() - jspInit()

-service() _jspService()

-destroy() _jspDestroy()


JSP TAG

 - 스크립트 태그(Script) - java 코드를 넣는 tag

 - 액션 태그(tag) - JSP에서 JAVA코드를 대신하기 위한 tag

○ 표준 액션 tag : servlet/jsp spce에서 제공

○ Custom tag : 사용자 정의 태그


JSP TAG

 - 스크립트

 - action

 - Expression Language : 표현언어



JSP 스크립트 태그

- 지시자(Directive)태그


- 표현식(Expression) 태그

<%=dto.getId() %>


- 선언자(Declaration) 태그 (X)

쓰이는 경우는 거의 없다.


- 스크립트릿(Scriptlet) 태그

가장 많이 쓰인다.


 - 주석



○ 지시자 태그

- Web container가 JSP를 Servlet으로 변환 할때 특정 지시를 내리기 위해서 사용하는 태그

- 구문

<%@ 지시어 속성="값" [속성="값" . . ..] %>

<%@page import="member.dto.MemberDTO"%>

- 지시어

- page : 페이지의 기능, 특징을 지시

- include : jsp 페이지에 다른 페이지를 포함시킬 것을 지시

- taglib : jsp페이지에서 사용할 customer tag 라이브러리를 등록을 지시


-page 지시자

-페이지에 관련된 기능 환경을 정의하는 지시어

- 속성

import : jsp에서 사용할 클래스들을 import할때 사용

contentType : response.setContentType()의 인수로 들어갈 값 설정

session : 내장객체 session의 생성 여부 설정. 값 : true/false,true가 default

errorPage : jsp가 실행 도중 exception이 발생했을때 이동할 url 지정


○ 표현식 태그

-응답 Stream을 통해 출력하기 위한 태그

-구문

<%=출력내용%>

ex)

<%="안녕하세요"%> -> 서블릿 변환 -> out.print("안녕하세요");

<%int i=10;%><%=i> -> 서블릿 변환 -> out.print(i);

<%=dto.getId() %>

-서블릿으로 변환시 out.print(출력내용); 으로 변환됨


○ 선언자 태그

-JSP가 서블릿으로 변환될때 서블릿의 member 변수(Field)나 member 메소드를 선언할때 사용

-jspInit(), jspDestroy() 오버라이딩시 사용

_jspService()는 오버라이딩해서는 안된다.

-구문

<%! 선언문 %>


○ 스크립트 태그

-클라이언트의 요청에 대해 서비스하는 동적 코드(java 실행 구문)을 작성 하기 위한 태그

-태그내의 코드는 _jspService()의 로컬 코드로 삽입된다.

- 구문

<% java 코드%>

-ex)

<%if(i){%> ->java code

10보다 큽니다.-> html코드
<%}%> ->java 코드


-> _jspService(){

if(i>10){

out.println("10보다 큽니다.");

}

}


○ 주석

-jsp에서의 주석

-html주석 <!-- 주석 내용 --!> : client에 전송이 됨

-JSP 주석 : <%-- 주석내용 --%> : client에 전송이 안됨

-java 주석 : //, /*주석내용 */

-스크립트릿, 선언자 태그에서 사용 가능


○ 내장 객체(Implicit variable)

-JSP에서 기본적으로 제공해주는 객체

-변수의 선언, 객체의 생성, 할당 없이 JSP 태그에서 사용할 수 있는 객체

-JSP가 서블릿으로 변환될때 web container가 생성해서 제공

-종류

-request : HttpServletRequest

-response : HttpServletResponse

-out : JspWriter -Servlet에서의 PrintWriter 역할

-session : HttpSession -<%@ page session="false"%>로 설정하면 안 생긴다.

-application : ServletContext

-config : ServletConfig(초기 파라미터 조회 말고 안쓰인다)

-pageContext : PageContext - Servlet에는 없는 객체로 다른 내장 객체들을 생성할 수 있다.(커스텀 태그 만들때 쓰인다)

-page : this - 서블릿 객체 자신

-exception : Throwable -<%@ page isErrorPage="true"@%>로 설정된 경우만 생성(default는 false)


Posted by 김마농