'Web'에 해당되는 글 21건

Resolvering Views

Web/Spring

※ Resolvering Views 


▶ Resolvering Views 란?

요청한 결과(model)를 사용자에게 어떠한 방법(View)으로 보여지도록(rendering) 할건지 정하는 방법을 의미한다.


▶ ViewResolver 구현 클래스

- UrlBasedViewResolver

 ViewResolver의 구현체로 특별한 맵핑 정보 없이 view 이름을 URL로 사용

 View 이름과 실제 view 자원과의 이름이 같을 때 사용할 수 있다.


- InternalResourceViewResolver

 웹 어플리케이션의 WAR 파일 내에 포함된 뷰 템플릿을 찾는다.

 뷰 템플릿의 경로는 논리적 뷰 이름에 접두어와 접미어를 붙여 구성

 

- BeanNameViewResolver

 논리적 뷰 이름과 동일한 ID를 갖는 <bean> 으로 등록된 View의 구현체를 찾는다.



 

▶ InternalResourceViewResolver와 UrlBasedViewResolver 구분

InternalResourceViewResolver은 UrlBasedViewResolver를 상속받아 구현되어있다.



document에서는 어떠한 상황에서 InternalResourceViewResolver 사용하면 유용한지에 대해서 기술하고 있다.

1) AlwaysInclude: Controls whether either a forward or include is done.

2) ExposeContextBeansAsAttributes: Allows all beans in context to be available as request attributes, which means they can be referenced from the EL in JSP.

3) ExposedContextBeanNames: If non-null, specifies the list of beans that will be exposed, as opposed to all of them.


▶ ViewResolver 설정 방법



▶ ViewResolver 사용시 주의사항

UrlBasedViewResolver, InternalResourceViewResolver는 ViewResolver 우선순위를 마지막 순위를 갖도록 지정한다.


ex) 

 엑셀파일 다운로드를 위해서 BeanNameViewResolver를 이용, 'excelView'라는 이름으로 view 객체를 생성 놓았다.

 UrlBasedViewResolver, InternalResourceViewResolver를 ViewResolver 우선순위를 마지막 순위를 갖도록 지정하지 않는 경우에

 'excelView' 이름을 가진 실제 view 자원 존재한다면, 엑셀파일 다운로드를 위해서 선언된 'excelView' 이름의 view 객체가 실행되지 않을 수 있다.



▶  출처

http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-viewresolver

http://isstory83.tistory.com/117

http://devbox.tistory.com/entry/Spring-ViewResolver-%EC%84%A4%EC%A0%95

http://stackoverflow.com/questions/17453032/what-different-between-internalresourceviewresolver-vs-urlbasedviewresolver

http://forum.spring.io/forum/spring-projects/web/64551-internalresourceviewresolver-and-urlbasedviewresolver


jQuery .data() 정리

Web/Javascript/Jquery
▶ 개요
HTML5로 넘어오면서 data-* 속성이 표준화

▶ 사용 예시
        .data()가 저장되는 방식

▶ 사용 방법
// 정보 불러오기
$.data('code')
// 정보 변경하기
$.data('code','00000000')

'Web > Javascript/Jquery' 카테고리의 다른 글

Jquery 숫자만 Input 입력  (0) 2016.06.10
Ajax 정의  (0) 2016.05.27
JQuery 영문+숫자만 Input Text 입력  (1) 2015.07.03
Input 한글/영어 제어하기  (0) 2015.07.03

Eclipse 대소문자 변환 단축키

Web

▶ 소문자 -> 대문자 변경

CTRL+SHIFT+X (CMD+SHIFT+Y on Mac OS X)


▶ 대문자 -> 소문자 변경

CTRL+SHIFT+Y (CMD+SHIFT+X on Mac OS X)


▶ 출처

http://www.daveoncode.com/2009/08/25/eclipse-shortcut-switch-convert-uppercase-text-cod-lowercase/

Jquery 숫자만 Input 입력

Web/Javascript/Jquery
- script 부분
$(function(){
	//숫자만 입력토록 함.
	$(document).on("keyup", ".amt", function() {
		$(this).val( $(this).val().replace(/[^0-9]/gi,""));
	});
});

- body 부분


$.click()은 document가 생성된 이후에 추가된 element에 대해서는 event 처리가 되지 않는다. (찾아보니, $.live() 호출해야 함)
$.on()을 이용하면 동적으로 생성된 element에 대해서 특별한 function 호출 없이도 event 처리된다.


'Web > Javascript/Jquery' 카테고리의 다른 글

jQuery .data() 정리  (0) 2016.07.12
Ajax 정의  (0) 2016.05.27
JQuery 영문+숫자만 Input Text 입력  (1) 2015.07.03
Input 한글/영어 제어하기  (0) 2015.07.03

Ajax 정의

Web/Javascript/Jquery

▶ Ajax 정의

Asynchronous JavaScript and XML

Client Browser에서 XMLHttpRequest객체를 사용해서 Server와 비동기방식의 통신을 하는 것

페이지 일부분을 업데이트 하기 위한 정보를 서버에 요청 -> 서버로부터 받은 데이터로 작업


▶ Ajax 구현

1. HTTP request 만들기

2. 서버 응답에 대한 처리


▶ jQuery 이용, Ajax 구현

jQuery이용해서 Ajax를 사용하게 되면, 크로스브라우징의 문제를 jQuery가 해결해준다는 것

또한, jQuery는 Ajax와 관련해서 많은 API를 제공한다.


▶ 참조 및 출처

https://developer.mozilla.org/ko/docs/AJAX/Getting_Started

http://www.nextree.co.kr/p4771/

https://opentutorials.org/course/1375/6851

'Web > Javascript/Jquery' 카테고리의 다른 글

jQuery .data() 정리  (0) 2016.07.12
Jquery 숫자만 Input 입력  (0) 2016.06.10
JQuery 영문+숫자만 Input Text 입력  (1) 2015.07.03
Input 한글/영어 제어하기  (0) 2015.07.03

Apache HTTP Server and Tomcat Server 비교

Web/Web 기초

▶ Apache HTTP Server

Web Server

대용량 정적Data(html, js, image, css 등) 처리 유리

cpu core가 늘어나도 성능이 높아지지 않는 취약점 존재

메모리 점유율 높음

대체 Web Server 으로서, nginx, lighttpd 등이 있다.


▶ Tomcat Server

WAS(Web Application Server)

동적 Data 처리

Java/Servlet Container


▶ Apache Server 와 Tomcat Server 분리 운영시 이점

Apache의 강력한 설정 기능 사용가능(Apache Module)

안정적인 서비스(load balancing)

  ex) Tomcat이 일시적 다운 상태일때 Apache랑 연동해두면 오류 페이지를 사용자들에게 보여주기도 쉽습니다.

확장성(php, asp 등 다른언어 서버사이드 애플리케이션으로 확장가능)


▶ Tomcat Server 분석

- Tomcat 디렉토리

  bin : Tomcat를 런하는 명령 스크립트 디렉토리

  lib : Tomcat Engine이 사용하는 외부 라이브러리 (.jar) 디렉토리

  conf : Tomcat Web 서비스를 위한 설정 파일 디렉토리

  logs : 로그파일 저장 디렉토리

  temp : Tomcat Engine에서 사용하는 임시 파일 디렉토리

  webapps : 웹 어플리케이션 deploy 디렉토리

  work : JSP 파일이 서블릿으로 컴파일(.class)된 디렉토리


Tomcat Engine은 lib, bin 디렉토리만 사용

실제 서비스를 담당하는 인스턴스들은 conf, logs, temp, webapps, work 디렉토리를 사용


▶ deploy 환경  

개발, 스테이징, 상용으로 구분된다.


- 개발 단계

 개발을 할수 있는 최소 환경

 ex) One Server, One Instance, Multiple Context

- 스테이징 단계

 기능 및 성능을 테스트 하기 위한 환경

 상용 단계와 거의 동일 환경으로 구성

- 상용 단계

 실제로 서비스하고, 고객이 접속하는 환경


스테이징 단계 이상 부터는 아래의 요구 사항 존재해야 함.

1. 하나의 서버에서 2개이상 WAS 버전이 구동 될 수 있다.

2. 상위 버전 업그레이드가 용이해야 하며, 기존 서비스 변경은 최소화 해야 한다.

3. 서비스별 튜닝 설정 (WAS, JNDI, Http Connection)이 별도로 구성되어야 한다.

3. 하나의 인스턴스를 Shutdown 해도 다른 서비스에 영향이 없어야 한다.

4. 운영 관리 및 장애 대응에 신속하게 처리 해야 한다.

  

▶ 참조 및 인용

https://beyondj2ee.wordpress.com/2012/07/03/%EB%A9%80%ED%8B%B0-%ED%86%B0%EC%BA%A3-%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4%EB%A1%9C-%EC%8B%A4%ED%96%89%ED%95%98%EA%B8%B0-multiple-tomcat-instances/



'Web > Web 기초' 카테고리의 다른 글

[HTML] <img> usemap Attribute  (0) 2017.03.31
개행문자(CR, LF) 정리  (0) 2016.12.28

정적 include 지시문과 동적 include 지시문

Web/JSP
※ 정적 include 지시문과 동적 include 지시문
정적 include 지시문과 동적 include 지시문은 다른 페이지를 현재 페이지에 포함 시킬 수 있는 기능으로써, 페이지를 모듈화 할 때 사용하면 유용하다.
두 개의 차이점과 사용방식에 대해서 정리해보았습니다.

▶ 정적 include 지시문
- 사용방법
<%@include file=" ... "%>

- 설명
포함되는 JSP 페이지를 로드하고 그것을 java로 변경 후 여러 페이지를 합쳐서 컴파일(하나의 페이지를 만듦) 진행한다.
이러하기에 정적 include 호출 페이지에서 별도의 변수 선언없이 부모페이지의 변수를 공유한다.
즉 정적 include 호출 페이지에서 부모페이지로 제어이동을 발생하지 않으며, class로 컴파일 할때 한번만 컴파일하면 되기 때문에 성능상의 이점이 있다.





▶ 동적 include 지시문
- 사용방법

  
  

- 설명
동적 include 포함된 페이지가 호출 될때마다 포함되는 자식페이지의 내용 포함해서 재 컴파일 수행한다.
컴파일이 완료된 각기 다른 class 파일을 이용해서 view 생성하기 때문에 동적 include 포함된 페이지와 자식페이지는 변수를 공유하지 하지 않는다.
변경이 이루어 져야하거나, 특정 파라미터를 전달하고 싶은경우 이용하면 편리하다.

- flush 속성
flush 속성의 값을 'true' 로 지정하면 포함될 페이지로 제어가 이동될 때 현재 페이지가 지금까지 버퍼에 저장한 내용을 웹 브라우저에 출력하고 버퍼를 비운다.




▶ 참조
http://devyongsik.tistory.com/92
http://fruitdev.tistory.com/88
http://hyeonstorage.tistory.com/94
http://neokido.tistory.com/entry/%EC%A0%95%EC%A0%81%EA%B3%BC-%EB%8F%99%EC%A0%81%EC%9D%B8-jsp-include-%EC%A7%80%EC%8B%9C%EB%AC%B8



'Web > JSP' 카테고리의 다른 글

[Java] HTML 특수문자 처리  (0) 2015.09.14

[STS] encoding 관련 warning 처리

Web/Spring

[WARN] Using platform encoding (MS949 actually) to copy filtered resources, i.e. build is platform dependent!


위와 같은 warning log가 발생하는 경우


- 해결방안

pom.xml 에 properties에 다음 두 라인을 추가하면 warning이 사라진다.


<properties>

....

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

</properties>

'Web > Spring' 카테고리의 다른 글

[오류] Cannot change version of project facet Dynamic Web Module  (0) 2017.06.23
Resolvering Views  (0) 2016.07.14

[Java] HTML 특수문자 처리

Web/JSP

DB에서 받아온 문자열을 HTML에서 표현 또는 JSP에서 jstl의 split 함수 등 사용 할 때에

특수문자 제대로 출력 안되는 경우가 있다.


ex)

- java 소스

import org.apache.commons.lang.StringEscapeUtils;

....



String str ="<문자열>출력";

System.out.println("변환전 문자열: "+str);

str = StringEscapeUtils.escapeHtml(str);

System.out.println("변환후 문자열: "+str);


- 결과

변환전 문자열: <문자열>출력

변환후 문자열: &lt;&#47928;&#51088;&#50676;&gt;&#52636;&#47141;







'Web > JSP' 카테고리의 다른 글

정적 include 지시문과 동적 include 지시문  (0) 2016.05.22

JQuery 영문+숫자만 Input Text 입력

Web/Javascript/Jquery

$(document).ready(function(){

  //한글입력 안되게 처리

  $("input[name=aaa]").keyup(function(event){ 

   if (!(event.keyCode >=37 && event.keyCode<=40)) {

    var inputVal = $(this).val();

    $(this).val(inputVal.replace(/[^a-z0-9]/gi,''));

   }

  });

});


영문,숫자만:<input type="text" name="aaa" />


'Web > Javascript/Jquery' 카테고리의 다른 글

jQuery .data() 정리  (0) 2016.07.12
Jquery 숫자만 Input 입력  (0) 2016.06.10
Ajax 정의  (0) 2016.05.27
Input 한글/영어 제어하기  (0) 2015.07.03