블로그 이미지
바나나맛딸기우유

Tag

Notice

Recent Post

Recent Comment

Recent Trackback

Archive

calendar

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
  • total
  • today
  • yesterday

'programing/spring'에 해당되는 글 4건

  1. 2012.06.15 MIME Type
  2. 2012.06.15 Model과 ModelMap의 차이
  3. 2012.06.13 ANT 경로 패턴
  4. 2009.07.28 Session 사용..ㅠㅠ
2012. 6. 15. 16:10 programing/spring

spring에서 제공하는 제공하는 기능들 중,


HTTP 요청 몸체를 Java 객체로, 그 반대인 Java 객체를 HTTP 응답 몸체로 바꾸어주는

@RequestBody annotation과 @ResponseBody annotation을 공부하던 중...


갑자기 난데 없이 "text/plain;charset=ISO-8859-1"이라는 Contents Type을 발견했다.


머야 이게!! 이게 먼 Type이라고 @ResponseBody annotation 적용 Method의 Return Type이 String인 경우에 HTTP 응답 데이터의 Contents Type이 저거라는겨..ㅠ.ㅠ


그래서 찾아봤다. MIME Type이란다.


그래서 또 나중에 까먹었을 경우를 대비하여;;(요새 기억력 감퇴가..ㅠ.ㅠ)


Wiki 백과사전에 자세히 정리되어 있지만 나름데로 정리를 좀 해보자!!


♧ MIME Type이란?

 ☞ 우선 MIME은 『Multipurpose Internet Mail Extensions』의 약자이다.

 ☞ 머 풀어서 한글로 말을 해보자면 『전자우편을 위한 인터넷 표준 포맷』이란다.

《 Wiki 백과사전 참조 


♧ 그럼 왜 이런 Type을 쓰는 것일까?

 ☞ 장황하게 설명이 되어있는데...간단히 말해보자면,

 ☞ 전자우편은 7bit ASCII 문자를 사용해서 전송을 하는데

 ☞ 8bit 이상의 코드를 사용하는 문자나 사진, 동영상, 음악파일 등의 바이너리 파일(첨부파일 등으로 사용하는 파일)들은 바로 위와 같이 7bit ASCII를 사용할 수 없다.

 ☞ 8bit 이상의 문자나 바이너리 파일들을 전자우편에서 보낼 수 있도록 할 수 있도록 하기위해서 적용해 쓰는 것이 MIME Type이고 이러한 파일들은 MIME Type으로 변환되어 전송된다.

 ☞ 간단히 말하면 8bit 이상의 코드를 쓰는 문자나 바이너리 파일을 전자우편을 이용해 보 낼수 있도록 7bit ASCII로 Encoding 해준다고 생각하면된다!


 ▣ 이러한 이유로 MIME이 나오게 된 것이고, 현재에는 전자우편뿐만이 아니라 웹을 통해서 파일들을 전달하는데 두루 쓰이고 있다!!


⊙ Tip..

 ♧ UUEncode 방식.

 MIME Encoding이 나타나기전 위에서 본 문제점의 Encoding을 하기 위해서 UUEncode 방식이 있었다. 다만 UUEncode는 문서 끝 부분의 공백이 사실은 공백이 아니라 변환되어야 할 값인데, 공백을 무시하는 시스템의 경우엔 UUEncode파일을 원형 그대로 전달 받을 수 없었다는 것 등의 단점이 있었다. 그래서 UUEncode의 단점들을 보안해서 나온 것이 MIME Encoding이라고 한다.

 특히!! MIME에는 UUEncode에는 없었던 파일 포맷 정보(Content-Type)도 함께 담을 수 있다고 한다.


♧ Google에서 찾다보니 MIME Type 목록이 있길래 일단 추가해보자!!

(많다...ㅠ.ㅠ)

.*		application/octet-stream
.323 text/h323
.acx application/internet-property-stream
.ai application/postscript
.aif audio/x-aiff
.aifc audio/aiff
.aiff audio/aiff
.asf video/x-ms-asf
.asr video/x-ms-asf
.asx video/x-ms-asf
.au audio/basic
.avi video/x-msvideo
.axs application/olescript
.bas text/plain
.bcpio application/x-bcpio
.bin application/octet-stream
.bmp image/bmp
.c text/plain
.cat application/vndms-pkiseccat
.cdf application/x-cdf
.cer application/x-x509-ca-cert
.clp application/x-msclip
.cmx image/x-cmx
.cod image/cis-cod
.cpio application/x-cpio
.crd application/x-mscardfile
.crl application/pkix-crl
.crt application/x-x509-ca-cert
.csh application/x-csh
.css text/css
.dcr application/x-director
.der application/x-x509-ca-cert
.dib image/bmp
.dir application/x-director
.dll application/x-msdownload
.doc application/msword
.dot application/msword
.dvi application/x-dvi
.dxr application/x-director
.eml message/rfc822
.eps application/postscript
.etx text/x-setext
.evy application/envoy
.exe application/octet-stream
.fif application/fractals
.flr x-world/x-vrml
.gif image/gif
.gtar application/x-gtar
.gz application/x-gzip
.h text/plain
.hdf application/x-hdf
.hlp application/winhlp
.hqx application/mac-binhex40
.hta application/hta
.htc text/x-component
.htm text/html
.html text/html
.htt text/webviewhtml
.ico image/x-icon
.ief image/ief
.iii application/x-iphone
.ins application/x-internet-signup
.isp application/x-internet-signup
.IVF video/x-ivf
.jfif image/pjpeg
.jpe image/jpeg
.jpeg image/jpeg
.jpg image/jpeg
.js application/x-javascript
.latex application/x-latex
.lsf video/x-la-asf
.lsx video/x-la-asf
.m13 application/x-msmediaview
.m14 application/x-msmediaview
.m1v video/mpeg
.m3u audio/x-mpegurl
.man application/x-troff-man
.mdb application/x-msaccess
.me application/x-troff-me
.mht message/rfc822
.mhtml message/rfc822
.mid audio/mid
.mny application/x-msmoney
.mov video/quicktime
.movie video/x-sgi-movie
.mp2 video/mpeg
.mp3 audio/mpeg
.mpa video/mpeg
.mpe video/mpeg
.mpeg video/mpeg
.mpg video/mpeg
.mpp application/vnd.ms-project
.mpv2 video/mpeg
.ms application/x-troff-ms
.mvb application/x-msmediaview
.nc application/x-netcdf
.nws message/rfc822
.oda application/oda
.ods application/oleobject
.p10 application/pkcs10
.p12 application/x-pkcs12
.p7b application/x-pkcs7-certificates
.p7c application/pkcs7-mime
.p7m application/pkcs7-mime
.p7r application/x-pkcs7-certreqresp
.p7s application/pkcs7-signature
.pbm image/x-portable-bitmap
.pdf application/pdf
.pfx application/x-pkcs12
.pgm image/x-portable-graymap
.pko application/vndms-pkipko
.pma application/x-perfmon
.pmc application/x-perfmon
.pml application/x-perfmon
.pmr application/x-perfmon
.pmw application/x-perfmon
.pnm image/x-portable-anymap
.pot application/vnd.ms-powerpoint
.ppm image/x-portable-pixmap
.pps application/vnd.ms-powerpoint
.ppt application/vnd.ms-powerpoint
.prf application/pics-rules
.ps application/postscript
.pub application/x-mspublisher
.qt video/quicktime
.ra audio/x-pn-realaudio
.ram audio/x-pn-realaudio
.ras image/x-cmu-raster
.rgb image/x-rgb
.rmi audio/mid
.roff application/x-troff
.rtf application/rtf
.rtx text/richtext
.scd application/x-msschedule
.sct text/scriptlet
.setpay application/set-payment-initiation
.setreg application/set-registration-initiation
.sh application/x-sh
.shar application/x-shar
.sit application/x-stuffit
.snd audio/basic
.spc application/x-pkcs7-certificates
.spl application/futuresplash
.src application/x-wais-source
.sst application/vndms-pkicertstore
.stl application/vndms-pkistl
.stm text/html
.sv4cpio application/x-sv4cpio
.sv4crc application/x-sv4crc
.t application/x-troff
.tar application/x-tar
.tcl application/x-tcl
.tex application/x-tex
.texi application/x-texinfo
.texinfo application/x-texinfo
.tgz application/x-compressed
.tif image/tiff
.tiff image/tiff
.tr application/x-troff
.trm application/x-msterminal
.tsv text/tab-separated-values
.txt text/plain
.uls text/iuls
.ustar application/x-ustar
.vcf text/x-vcard
.wav audio/wav
.wcm application/vnd.ms-works
.wdb application/vnd.ms-works
.wks application/vnd.ms-works
.wmf application/x-msmetafile
.wps application/vnd.ms-works
.wri application/x-mswrite
.wrl x-world/x-vrml
.wrz x-world/x-vrml
.xaf x-world/x-vrml
.xbm image/x-xbitmap
.xla application/vnd.ms-excel
.xlc application/vnd.ms-excel
.xlm application/vnd.ms-excel
.xls application/vnd.ms-excel
.xlt application/vnd.ms-excel
.xlw application/vnd.ms-excel
.xml text/xml
.xof x-world/x-vrml
.xpm image/x-xpixmap
.xsl text/xml
.xwd image/x-xwindowdump
.z application/x-compress
.zip application/x-zip-compressed

'programing > spring' 카테고리의 다른 글

Model과 ModelMap의 차이  (0) 2012.06.15
ANT 경로 패턴  (0) 2012.06.13
Session 사용..ㅠㅠ  (0) 2009.07.28
posted by 바나나맛딸기우유
2012. 6. 15. 14:58 programing/spring

Spring 공부를 하다보니 Model과 ModelMap이란 놈이 있었다.


생긴 것도 비슷하고, 가지고 있는 method()도 똑같은 이 놈들을 왜 나누어놓았을까?


우선 알아본 결과 Model과 ModelMap은 활용상의 차이는 없다.


실질적으로 이 둘의 차이점은,


Model → Interface

ModelMap → 구현체


이것 뿐이다. Model이나 ModelMap 둘 중 어떤 것을 사용하던지, Spring MVC에서 내부적으로 사용하는 객체의 타입은 동일하다.


그래도 에이 설마 이것만으로 나누어 놓았을까 하는 생각에,


공부하고 있는 책의 저자에게 물어보았다.


책의 저자에게서 온 답은....두둥!!


개발자의 선호도 차이로 둘중 하나를 사용한다는 차이정도랄까..


이런 것 뿐이란다. Interface를 선호하는 개발자는 Model을 사용할 것이고, 구현 클래스의 다른 기능이 필요한 개발자라면 ModelMap을 사용한다는 정도?!


결국 공부하면서 Model과 ModelMap..이 둘의 차이가 멀까? 란 고민은...


조금은 쓸때없는 고민이 되어버렸다고나 할까;; 허무하네..


이젠 이렇게 신경쓸 필요가 없으니 다행이라고 해야하나 ㅠ.ㅠ


먼가 찝찝하구만;

'programing > spring' 카테고리의 다른 글

MIME Type  (0) 2012.06.15
ANT 경로 패턴  (0) 2012.06.13
Session 사용..ㅠㅠ  (0) 2009.07.28
posted by 바나나맛딸기우유
2012. 6. 13. 21:01 programing/spring

ANT 경로 패턴

♤ 자꾸 까먹어서리..ㅠ.ㅠ

? 

1개의 문자와 매칭 

* 

0개 이상의 문자와 매칭 

** 

0개 이상의 디렉토리와 매칭 


♤ Example

<bean id="handlerMapping2"

  class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">

       <property name="alwaysUseFullPath" value="true" />

</bean>


<bean id="handlerMapping1"

     class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">

       <property name="alwaysUserFullPath" value="true" />

       <property name="mappings">

              <props>

                     <prop key="/content/**/*.do">contentController</prop>

                     <prop key="/greeting/hello.do">helloController</prop>

              </props>

       </property>

</bean>

  위와 같은 HandlerMapping을 정의했다고 가정을 하면,

  "content/read.do"라는 요청 url은 어디에 맵핑이 될까?

  첨에는 *니까 0개 이상의 문자와 매칭되는데 handlerMapping1에 되겠지..라고  간단히 생각했으나;; 역시 생각은 깊게 해야되;;

  ** 요게 있으니까 content/read.do는 handlerMapping1에 매핑될 수가 없다!!

  왜냐하면!! **는 0개 이상의 디렉토리와 매칭이 되어야 하니까!!

  content/~~~/read.do 요런식으로 content와 read.do 사이에 어떠한 디렉토리가 있으면 handlerMapping1에 매핑 될 수 있겠지..

  역시 사람은 생각을 하고 살아야해..ㅠ.ㅠ

  따라서 content/rea.do는 handlerMapping2에 매핑된다고 할 수 있다.

'programing > spring' 카테고리의 다른 글

MIME Type  (0) 2012.06.15
Model과 ModelMap의 차이  (0) 2012.06.15
Session 사용..ㅠㅠ  (0) 2009.07.28
posted by 바나나맛딸기우유
2009. 7. 28. 21:34 programing/spring
우선..잘은 모르지만..ㅎ.ㅎ;;

개발 Tool은 Eclipse.. Spring/Spring MVC 사용

import javax.servlet.http.HttpSession;

/* Controller단에서 HttpSession 객체를 생성한다. */
/* 그럼  위의 package가 알아서 import될 것이다..ㅋㅋ*/
HttpSession session = request.getSession();

/* session에  값을 넣는다.*/
session.setAttribute("boardSeq", boardSeq);

==> 첫번째 프로퍼티는 Map에서의 Key라고 보면 된다.
   "boardSeq"로 꺼내서 사용할수 있다는 말..ㅎ
     두번째 프로터피는 Map에서의 value라고 보면 된다.
   사용될 값이 직접 들어가 있다는 말..ㅎ

꺼내어 사용할 때는 session.getAttribute()를 통해서
  session에 담긴 값을 가져와서 사용할 수 있다.
사용할 때도 Httpsession을 생성해서 사용하여야한다.
HttpSession session = request.getSession();

그리고 session에 넣을 때 사용했던 이름을 가져와서 쓰면 된다.
int boardSeq = (Integer)session.getAttribute("boardSeq");
==> getAttribute의 프로퍼티로 들어가는 부분은..
       session에 저장할때 썻던 앞의 Key이름을 써주면 된다.

session에 담길때 Object형으로 담기기 때문에~
  빼내서 쓸때 필요한 형변환을 해주어야 한다는거~



※ Tip...
혹시나 jsp파일에서 session에 있는 값을 가져와서 사용하고 싶을 때가 있을 수 있다.
나도 머 찾아보니까..
<% %>태그를 이용하여 위에서 처럼 session의 값을 꺼내어 쓰는 방법이 있었다.

하지만 EL태그를 사용하면 편하게 session의 값을 꺼내 쓸수 있다. ㅋㅋㅋ
${boardSeq} <== 이렇게 session에 있는 이름을 가지고 바로 꺼내어 쓸 수가 있었다.
음하하하...너무 쉽게 쓰여져서..먼가가 있을 것 같은 불안감이 들긴하지만..ㅎ.ㅎ;;
그래도 꺼내어 쓸 수가 있더라~!!! ^0^/



'programing > spring' 카테고리의 다른 글

MIME Type  (0) 2012.06.15
Model과 ModelMap의 차이  (0) 2012.06.15
ANT 경로 패턴  (0) 2012.06.13
posted by 바나나맛딸기우유