Programming/jsp2014. 4. 23. 09:41
eclipse에서 war로 프로젝트를 넣었는데
뜬금포 안되서 깜놀 -_-a


일단 해결책으로 Java build path를 넣으라고 해서
구글로 검색을 하다 보니.. Tomcat 어쩌구 ... 아.. -_-a

"Add External JARs..."를 눌러


tomcat/lib/servlet-api.jar를 추가해주면 해결!
왜 이걸 잊고 있었지?! ㅠㅠ


'Programming > jsp' 카테고리의 다른 글

eclipse quantumDB CSV 파일 import  (0) 2014.04.23
tomcat war deploy  (0) 2014.04.23
apache commons / beanutils , logging, digester  (0) 2014.04.18
maven  (0) 2014.04.18
jsp EL/JSTL 사용법  (0) 2014.04.13
Posted by 구차니
Programming/jsp2014. 4. 18. 19:17
학원에서 배울 commons 패키지...

타입에 맞게 값을 받아오도록 도와주는 패키지
However, there are some occasions where dynamic access to Java object properties (without compiled-in knowledge of the property getter and setter methods to be called) is needed. Example use cases include:
[링크 : http://commons.apache.org/proper/commons-beanutils/]

라이브러리 디버깅등의 목적으로 로그를 남기는 것을 도와주는 패키지
When writing a library it is very useful to log information. However there are many logging implementations out there, and a library cannot impose the use of a particular one on the overall application that the library is a part of.
[링크 : http://commons.apache.org/proper/commons-logging/]

XML에 저장한 값들을 불러 초기화에 쓰기 용이하도록 도와주는 패키지
Many projects read XML configuration files to provide initialization of various Java objects within the system. There are several ways of doing this, and the Digester component was designed to provide a common implementation that can be used in many different projects.
[링크 : http://commons.apache.org/proper/commons-digester/]

'Programming > jsp' 카테고리의 다른 글

tomcat war deploy  (0) 2014.04.23
javax.servlet.http cannot be resolved?!?!  (0) 2014.04.23
maven  (0) 2014.04.18
jsp EL/JSTL 사용법  (0) 2014.04.13
jsp / el과 jstl  (0) 2014.04.13
Posted by 구차니
Programming/jsp2014. 4. 18. 16:50
project object model (POM) 어쩌구 하는데 먼진 모르겠고
'프로젝트 빌드관리를 위한 툴' 이거 하나면 정리 되려나?

아무튼 이녀석이.. 
프로젝트 추가시 빌드할 목록에 자동으로 추가하고
자동으로 이클립스에서 저장하면 빌드하는 등의 역활을 하는 것으로 보인다.

Maven's Objectives

Maven's primary goal is to allow a developer to comprehend the complete state of a development effort in the shortest period of time. In order to attain this goal there are several areas of concern that Maven attempts to deal with:

  • Making the build process easy
  • Providing a uniform build system
  • Providing quality project information
  • Providing guidelines for best practices development
  • Allowing transparent migration to new features
[링크 : http://maven.apache.org/what-is-maven.html
[링크 : http://maven.apache.org/


그리고 이클립스 특유의 프로젝트 폴더 구조인
java / resource / webapps 가 바로 maven에서 관리하는 것으로 보여진다.
(물론 pom.xml은.. 이클립스에서 maven plugin - m2eclipse - 가 알아서 하니까 존재도 몰랐네..)
간단하게 생각하세요. 
maven 의 주임무는 라이브러리(dependency) 목록의 관리가 되겠습니다. (pom.xml) 
여기서 pom.xml은 협업개발자들이 모두 공유하기때문에 신경쓸일없습니다. 
자기 업무에 필요한 라이브러리(dependency)를 추가했을경우 커밋만해주면 끝. 
pom.xml 에 설정한대로 필요한 모든 라이브러리를 관리해준다.(등록/삭제) 

maven 으로 웹프로젝트시 폴더구조가 특이하죠? 
src/main/java => 이곳에 모든 자바소스, 패키지들이 들어갑니다. 
src/main/resource => 이곳에 xml 설정파일들이 들어갑니다. 
src/main/webapps => 이곳에 jsp (프레젠테이션) 부분들이 모두 들어갑니다. 

[링크 : http://www.okjsp.net/bbs?seq=158969]


'Programming > jsp' 카테고리의 다른 글

javax.servlet.http cannot be resolved?!?!  (0) 2014.04.23
apache commons / beanutils , logging, digester  (0) 2014.04.18
jsp EL/JSTL 사용법  (0) 2014.04.13
jsp / el과 jstl  (0) 2014.04.13
jdbc는 DESCRIBE를 지원안해?  (0) 2014.04.11
Posted by 구차니
Programming/jsp2014. 4. 13. 00:28
EL - EL은 ${} 를 변수로 사용한다. 기본적으로 스트링형태로 출력이 되어
jsp 에서 값을 계산후 출력하는 번거로움에서 한단계 해방된다
<%@ page contentType="text/html; charset=euc-kr"%>
<%@ page session="false"%>
<%@ taglib prefix="e" uri="/WEB-INF/el-functions.tld"%>
<%
java.util.Date today = new java.util.Date();
request.setAttribute("today", today);
%>
<html>
<head>
<title>EL 함수 호출</title>
</head>
<body>
오늘은
<b>${e:dateFormat(today) }</b> 입니다.
</body>
</html>  



JSTL - JSTL의 core는 기본적으로 prefix가 c이지만 
EL에서 처럼 사용자가 prefix를 지정해서 사용이 가능하기에 JSTL에서 prefix를 반드시 c로 설정할 필요는 없다.
JSTL은 tag library이기 때문에 EL에서 사용하던 ${} 에서 <>로 바뀌게 된다.
좋게 말하면.. 가독성이 올라가지만 나쁘게 말하면 태그로 바뀌었을뿐
코드인건 여전하기에 html으로 syntax highlight가 되지 않아 큰 장점으로 생각되진 않는다.
<%@ page contentType="text/html; charset=euc-kr"%>
<%@taglib prefix="e" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
<title>if 태그</title>
</head>
<body>
<e:if test="true">무조건 수행<br>
</e:if>

<e:if test="${param.name== 'bk' }">
name 파라미터의 값이 ${param.name } 입니다.<br>
</e:if>

<e:if test="${18 < param.age }">
당신이 나이는 18세 이상입니다.
</e:if>
</body>
</html> 

'Programming > jsp' 카테고리의 다른 글

apache commons / beanutils , logging, digester  (0) 2014.04.18
maven  (0) 2014.04.18
jsp / el과 jstl  (0) 2014.04.13
jdbc는 DESCRIBE를 지원안해?  (0) 2014.04.11
웹개발언어 관련 생각꺼리..  (0) 2014.04.09
Posted by 구차니
Programming/jsp2014. 4. 13. 00:05
el과 jstl을 쓰니 엄청나게 jsp.java 파일이 지저분해진다 -_-a
JSTL은 EL을 확장해서 만든 Jsp Standard Tag Library이다 보니
기본적으로 EL에서 사용하는 기능에 tag library 관련하여 더많은 내용을 초기화 하게 된다.

el 사용시
public final class elEx1_jsp extends org.apache.jasper.runtime.HttpJspBase
    implements org.apache.jasper.runtime.JspSourceDependent {

  private static final JspFactory _jspxFactory = JspFactory.getDefaultFactory();

  private static java.util.List _jspx_dependants;

  private javax.el.ExpressionFactory _el_expressionfactory;
  private org.apache.AnnotationProcessor _jsp_annotationprocessor;

  public Object getDependants() {
    return _jspx_dependants;
  }

  public void _jspInit() {
    _el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();
    _jsp_annotationprocessor = (org.apache.AnnotationProcessor) getServletConfig().getServletContext().getAttribute(org.apache.AnnotationProcessor.class.getName());
  }

  public void _jspDestroy() {
  }

  public void _jspService(HttpServletRequest request, HttpServletResponse response)
        throws java.io.IOException, ServletException {

    PageContext pageContext = null;
    HttpSession session = null;
    ServletContext application = null;
    ServletConfig config = null;
    JspWriter out = null;
    Object page = this;
    JspWriter _jspx_out = null;
    PageContext _jspx_page_context = null; 
  }

EL 문법은 바로 처리되는게 아니라
Evaluate 되어서 String으로 변환되어 출력된다.
out.write((java.lang.String) org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate("${2 + 5}", java.lang.String.class, (PageContext)_jspx_page_context, null, false)); 


jstl 사용시
public final class use_005fforeach_005ftag_jsp extends org.apache.jasper.runtime.HttpJspBase
    implements org.apache.jasper.runtime.JspSourceDependent {

  private static final JspFactory _jspxFactory = JspFactory.getDefaultFactory();

  private static java.util.List _jspx_dependants;

  private org.apache.jasper.runtime.TagHandlerPool _005fjspx_005ftagPool_005fc_005fset_0026_005fvar_005fvalue_005fnobody;
  private org.apache.jasper.runtime.TagHandlerPool _005fjspx_005ftagPool_005fc_005fforEach_0026_005fvar_005fstep_005fend_005fbegin;
  private org.apache.jasper.runtime.TagHandlerPool _005fjspx_005ftagPool_005fc_005fforEach_0026_005fvar_005fend_005fbegin;
  private org.apache.jasper.runtime.TagHandlerPool _005fjspx_005ftagPool_005fc_005fforEach_0026_005fvarStatus_005fvar_005fitems_005fbegin;
  private org.apache.jasper.runtime.TagHandlerPool _005fjspx_005ftagPool_005fc_005fforEach_0026_005fvar_005fitems;

  private javax.el.ExpressionFactory _el_expressionfactory;
  private org.apache.AnnotationProcessor _jsp_annotationprocessor;

  public Object getDependants() {
    return _jspx_dependants;
  }

  public void _jspInit() {
    _005fjspx_005ftagPool_005fc_005fset_0026_005fvar_005fvalue_005fnobody = org.apache.jasper.runtime.TagHandlerPool.getTagHandlerPool(getServletConfig());
    _005fjspx_005ftagPool_005fc_005fforEach_0026_005fvar_005fstep_005fend_005fbegin = org.apache.jasper.runtime.TagHandlerPool.getTagHandlerPool(getServletConfig());
    _005fjspx_005ftagPool_005fc_005fforEach_0026_005fvar_005fend_005fbegin = org.apache.jasper.runtime.TagHandlerPool.getTagHandlerPool(getServletConfig());
    _005fjspx_005ftagPool_005fc_005fforEach_0026_005fvarStatus_005fvar_005fitems_005fbegin = org.apache.jasper.runtime.TagHandlerPool.getTagHandlerPool(getServletConfig());
    _005fjspx_005ftagPool_005fc_005fforEach_0026_005fvar_005fitems = org.apache.jasper.runtime.TagHandlerPool.getTagHandlerPool(getServletConfig());
    _el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();
    _jsp_annotationprocessor = (org.apache.AnnotationProcessor) getServletConfig().getServletContext().getAttribute(org.apache.AnnotationProcessor.class.getName());
  }

  public void _jspDestroy() {
    _005fjspx_005ftagPool_005fc_005fset_0026_005fvar_005fvalue_005fnobody.release();
    _005fjspx_005ftagPool_005fc_005fforEach_0026_005fvar_005fstep_005fend_005fbegin.release();
    _005fjspx_005ftagPool_005fc_005fforEach_0026_005fvar_005fend_005fbegin.release();
    _005fjspx_005ftagPool_005fc_005fforEach_0026_005fvarStatus_005fvar_005fitems_005fbegin.release();
    _005fjspx_005ftagPool_005fc_005fforEach_0026_005fvar_005fitems.release();
  }

  public void _jspService(HttpServletRequest request, HttpServletResponse response)
        throws java.io.IOException, ServletException {

    PageContext pageContext = null;
    HttpSession session = null;
    ServletContext application = null;
    ServletConfig config = null;
    JspWriter out = null;
    Object page = this;
    JspWriter _jspx_out = null;
    PageContext _jspx_page_context = null;
  }
 

EL과는 인자가 하나 null 에서 변경된다.
out.write((java.lang.String) org.apache.jasper.runtime.PageContextImpl.proprietarEvaluate("${e:dateFormat(today) }", java.lang.String.class, (PageContext)_jspx_page_context, _jspx_fnmap_0, false)); 

'Programming > jsp' 카테고리의 다른 글

maven  (0) 2014.04.18
jsp EL/JSTL 사용법  (0) 2014.04.13
jdbc는 DESCRIBE를 지원안해?  (0) 2014.04.11
웹개발언어 관련 생각꺼리..  (0) 2014.04.09
jsp model1, model2  (0) 2014.04.08
Posted by 구차니
Programming/jsp2014. 4. 11. 01:39
DESCRIBE는 table의 구조를 알려주는 명령어인데
[링크 : http://docs.oracle.com/cd/B19306_01/server.102/b14357/ch12019.htm]


eclispe+ quantumDB에서 쌩쇼를 해도 안되길래


혹시나 하는 마음에 sqlplus에서 해봤더니.. 헐....
jdbc 특성(?) 상 데이터 빼오는데 특화가 되서 저런 관리용 명령어들은 다 빼버린건가?
$ sqlplus

SQL*Plus: Release 10.2.0.1.0 - Production on Fri Apr 11 01:33:07 2014

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Enter user-name: system
Enter password:

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> desc USER_USERS;
 Name                                      Null?    Type
 ----------------------------------------- -------- ---------------------------- USERNAME                                  NOT NULL VARCHAR2(30)
 USER_ID                                   NOT NULL NUMBER
 ACCOUNT_STATUS                            NOT NULL VARCHAR2(32)
 LOCK_DATE                                          DATE
 EXPIRY_DATE                                        DATE
 DEFAULT_TABLESPACE                        NOT NULL VARCHAR2(30)
 TEMPORARY_TABLESPACE                      NOT NULL VARCHAR2(30)
 CREATED                                   NOT NULL DATE
 INITIAL_RSRC_CONSUMER_GROUP                        VARCHAR2(30)
 EXTERNAL_NAME                                      VARCHAR2(4000)




조금(?)오래된 글이지만 회피법은 있어도 정공법은 없는듯?
[링크 : http://www.coderanch.com/t/299298/JDBC/databases/Oracle-describe-table-jdbc ]

'Programming > jsp' 카테고리의 다른 글

jsp EL/JSTL 사용법  (0) 2014.04.13
jsp / el과 jstl  (0) 2014.04.13
웹개발언어 관련 생각꺼리..  (0) 2014.04.09
jsp model1, model2  (0) 2014.04.08
win7 에서 jsp 구동시 IPv6로 뜨는 문제  (0) 2014.04.08
Posted by 구차니
Programming/jsp2014. 4. 9. 17:06
php는 웬지 퇴물신세인거 같고..(이글이 모든걸 대표하진 않겠지만..)
ruby on rails나 
python+flask
이런것들로 신형 언어들에 대한 기대가 높다고 해야하나..

[링크 : https://kldp.org/node/118666]
[링크 : http://www.slipp.net/questions/89]

[링크 : http://en.wikipedia.org/wiki/NoSQL]
[링크 : http://en.wikipedia.org/wiki/ACID]

'Programming > jsp' 카테고리의 다른 글

jsp / el과 jstl  (0) 2014.04.13
jdbc는 DESCRIBE를 지원안해?  (0) 2014.04.11
jsp model1, model2  (0) 2014.04.08
win7 에서 jsp 구동시 IPv6로 뜨는 문제  (0) 2014.04.08
eclipse에서 tomcat 서버 추가가 되지 않을 경우  (0) 2014.04.06
Posted by 구차니
Programming/jsp2014. 4. 8. 23:08
jsp의 model 1과 model 2는
jsp 개발방법을 위한 디자인 패턴용어이다.

일단 model 1의 경우 자바 코드와 html이 혼재되는 문제가 있기에
이를 개선하여 MVC(Model View Control)로 업그레이드(?) 시킨 MVC model 2가 존재하고
기존의 model 1과의 구분을 위해 MVC1 / MVC2로 명칭을 재명명한것으로 보인다.

라고는 하지만..
MVC2는 상당부분 자바와 HTML이 분리가 되지만 그럼에도 불구하고
완벽하게 분리가 되진 않는 것으로 보여진다.

---
2014.04.18 수정
MVC model 1
MVC model 2로 MVC 패턴을 따르는 model 1, model 2라는 의미로
축약하여 MVC1 / MVC2로 쓰이긴 한 듯?

아무튼. MVC는 design pattern의 일종이고
model 1 / model 2는 JSP에서 정의한 MVC를 사용+적용한 디자인 패턴으로 추측된다.
---

model 1
[링크 : http://blog.naver.com/wono77/140064510909

model 2 
[링크 : http://ggoreb.tistory.com/42] 
[링크 : http://blog.daum.net/gunsu0j/175]

[링크 : http://whdvy777.tistory.com/243] 모델1 과 모델2 차이점
[링크 : http://en.wikipedia.org/wiki/Model_1]
[링크 : http://en.wikipedia.org/wiki/Model_2]
Posted by 구차니
Programming/jsp2014. 4. 8. 20:04
간편하게 함수를 변경하거나 하는 식으로 구현은 힘든건가...?
tomcat 구동 옵션에(정확하게는 VM 설정) ipv4를 사용하도록 설정하면 된다.
 -Djava.net.preferIPv4Stack=true 


[링크 : http://tskwon.tistory.com/272]


+ 테스트를 해보니 IPv4 / IPv6 전부는 아니고
localhost 접속시 127.0.0.1 대신 0:0:0:0:0:0:0:1 로 표기되는 문제를 수정해 준다.

'Programming > jsp' 카테고리의 다른 글

웹개발언어 관련 생각꺼리..  (0) 2014.04.09
jsp model1, model2  (0) 2014.04.08
eclipse에서 tomcat 서버 추가가 되지 않을 경우  (0) 2014.04.06
oracle sql / sequence  (0) 2014.04.04
jsp / tomcat connection pool  (0) 2014.04.02
Posted by 구차니
Programming/jsp2014. 4. 6. 21:54
"cannot create a server using the selected type"
이라는 에러를 뿜으며 배째는 이클립스 -_-


분명.. Server 항목도 없음에도 불구하고 배를 째는데...


.metadata\.plugins\org.eclipse.core.runtime\.settings\org.eclipse.wst.server.core.prefs 파일

.metadata\.plugins\org.eclipse.core.runtime\.settings\org.eclipse.jst.server.tomcat.core.prefs 파일

.metadata\.plugins\org.eclipse.wst.server.core 디렉토리

를 날려도 영 안된다.. ㅠㅠ

[링크 : http://blog.naver.com/prime768/50047432163]

여기는 파일만 삭제하고 추가할 경우


.metadata\.plugins\org.eclipse.wst.server.core 디렉토리 까지 날린경우



아무튼 UI 상으로는 추가가 되지만
워크스페이스가 꼬였는지 복사해온 경로상의 아파치를 자꾸 실행하려고 해서 쥐쥐 ㅠㅠ


결론 : workspace를 함부로 복사하지 말자 -_-a


'Programming > jsp' 카테고리의 다른 글

jsp model1, model2  (0) 2014.04.08
win7 에서 jsp 구동시 IPv6로 뜨는 문제  (0) 2014.04.08
oracle sql / sequence  (0) 2014.04.04
jsp / tomcat connection pool  (0) 2014.04.02
jsp jdbc 기본 코드  (0) 2014.04.01
Posted by 구차니