http://okjsp.pe.kr/seq/58275

여기 가면 pdf문서와 소스파일이 있는데 나도 이거보고 응용해서 방명록같지 않은 방명록을 만들어 보았다. 아직 스트럿츠에 있는 수많은 기능들을 이해하지 못했지만, 계속 해나가면 될 것 같다.

스트럿츠에서 TILES라는 것도 참 유용한 것 같고, 커스텀 태그 라이브러리를 이용해서 JSP코드를 매우 깔끔하고 읽기 쉽게 표현할 수 있다는 것도 좋은 것 같다.
예외처리나 뭐 이것저것 아직 공부해야할 부분이 많은 듯하다.
 
Posted by 머드초보
,
 

세번째 시간이다.

이제 글을 쓰는 기능을 구현해보도록하자.
글을 쓸 때에는 살짝 복잡하다. 백번 말하는 것보다 소스코드를 보면서 실습하는게 훨씬 더 이해가 잘된다.

글쓰기기능이 단순한 list보기보다 조금 틀린점은 ActionForm이라는 녀석이 들어간다.

ActionForm은 글을 쓸 때 폼에 맞춰서 이름, 비밀번호, 내용 등을 적은 다음에 submit해주면 그 폼에 있는 내용이 제대로 되었는지 검사하는 등 폼에 있는 내용을 가지고 뭘 하는 거다-_-; 솔직히 자세히는 모르겠지만, 글을 쓸 때에는 내용검사만 필요할 것같아서 내용검사만 공부해보자-_-;

가장 먼저 struts-config.xml파일을 건드려보자.

<form-beans>
  <!-- write를 위한 ActionForm 설정 -->
  <form-bean
   name="writeForm"
   type="guestbook.forms.writeForm">
  </form-bean> 
 </form-beans>

ActionForm을 사용하기 위해서는 form-beans 태그를 작성한다. 그래서 그안에 form-bean태그를 이용해서 폼태그와 클래스이름을 넣어준다.

글을 쓰기위해서 추가해야할 action태그는 이것이다.

<action path="/write" type="guestbook.actions.writeAction" name="writeForm"
    validate="true" input="/writeForm.jsp">
    <forward name="success" path="/list.do" redirect="true"/>
  </action>

잘 보면 listAction태그랑 비슷하다. 하지만, validate에서 true를 놓아서 유효성검사를 하겠다는 것이다. 유효성검사해서 에러가 발생하면 다시 writeForm.jsp로 가라는 뜻이다. 에러가 발생하지 않으면 writeAction을 실행하게 된다.
그리고 중간에 forward는 success를 받으면 list.do를 redirect(이거 안하면 주소창에서 다시 읽지 않아서 write.do로 남아있게 된다. 글쓰고 해줘야한다.)로 실행하라는 것이다.

추가했으면 writeForm.jsp부터 보자.


태그라이브러리로 html:form을 사용했다. 뭐 html에서 사용하는 form과 하는 역할은 거의 비슷하다. action은 write라고 써있는데 이것은 write.do를 실행하게 된다. focus는 처음 실행시 포커스위치이고, 나머지 html:text, html:password, html:textarea도 input태그와 같은 역할을 한다.
저렇게 하고 html:submit버튼을 만들면 form태그는 완성이다.
그 뒤에 html:messages태그를 한번 보도록 하자. 저 태그는 이름을 안적고 submit해버리면 이름을 적으라고 메시지를 보내는 역할을 하는 것이다. 나중에 writeAction클래스를 보면서 다시 설명해보자.

다음은 writeForm클래스 소스 내용이다.


빈클래스와 비슷해보인다. 여기서는 폼에서 받은 데이터 값을 가지고 유효성 검사를 한다. 보면 validate라는 메소드가 보인다. 이 메소드에서 검사를 해서 만약에 name이나, password, content 등이 null이 되버리면 errors메시지를 추가한다. 아까 writeForm.jsp에 본 invalidContentError이라는 이름으로 정하고 error.invalidContent라는 메시지를 생성하는 것이다. error.invalidContent는 어디에 있느냐! 이것은 따로 properties파일을 만들어준다.

build->class -> resources -> application.properties 라는 파일을 생성한다.

error.invalidName=\uc774\ub984\uc744 \uc801\uc5b4\uc8fc\uc138\uc694.
error.invalidPassword=\ube44\ubc00\ubc88\ud638\ub97c \uc801\uc5b4\uc8fc\uc138\uc694.
error.invalidContent=\ub0b4\uc6a9\uc744 \uc801\uc5b4\uc8fc\uc138\uc694.

왠 이상한 유니코드냐! 한글이 안된다. 그러므로 java sdk에서 제공하는 native2ascii를 실행해서 한글을 쓰면 유니코드가 나오는데 이것을 여기에 적어 넣도록하자.
이 properties파일을 사용하기 위해서 struts-config.xml파일에 추가하자.
<message-resources parameter="guestbook.resources.application" />

다음 시간으로!

 
Posted by 머드초보
,
 
솔직하게 말해서 스트럿츠 이렇게 하는게 맞는지는 잘 모르겠다-_-; 틀린점 있으면 지적해주세요!

초간단 방명록인데 그냥 쓰기랑 쓴 글을 보여주는 기능 밖에 없는 방명록을 만들어보자!-_-;

가장 먼저 준비물은 이클립스WTP, 톰캣, 스트럿츠, JDK5.0 이다.

이클립스 WTP2.0 (올인원으로 받자)
http://europa-mirror1.eclipse.org/webtools/downloads/

톰캣5.5 (아마도 6.0에서 해도 상관없을 것이다.)
http://tomcat.apache.org/download-55.cgi

스트럿츠1.3.8
http://struts.apache.org/download.cgi#struts138

JDK5.0 (아마 6에서 해도 상관없을 것이다-_-;)
http://java.sun.com/javase/downloads/index_jdk5.jsp

설치는 이클립스는 그냥 압축풀고, 톰캣도 그냥 압축풀고, 스트럿츠는 나중에 프로젝트 만들고나서 설정하겠다. JDK5.0 다음신공으로 설치하면 끝이다.

다 설치를 했으면 이클립스를 구동하자.

우선 서버를 추가하자. File->New->Other선택 후 Server에서 Server선택해서 자신의 톰캣버전을 선택하자.

그다음 프로젝트를 만들자. File->New->Project 선택 후 dy라고 쳐서 Dynamic Web Project선택.
Project Name은 SimpleGuestBook이라고하고 모든 옵션을 디폴트로하고 Finish를 하자.

여러 폴더가 보일 것이다.
Java Resources: src -> 자바소스를 넣는 곳.
build -> 자바소스가 빌드되어서 이곳에 클래스로 저장이 된다.
WebContent -> WEB-INF폴더와 jsp, web.xml, struts-config.xml등의 설정파일을 저장할 곳.


대충 이런 구조로 되어있다. 우선 가장 먼저 "Hello 방명록"을 출력하는 것을 만들어보자.

※스트럿츠설치는 WebContent/WEB-INF/lib 폴더에 struts를 받아서 풀면 있는 lib폴더에 있는 lib파일을 다 가져다가 넣는다. 그리고 태그라이브러리라는 것을 써야 하는데 struts-taglib-1.3.8.jar파일을 풀면 META-INF/TLD폴더에 TLD파일들이 있는데 이 파일을 WEB-INF/TLD폴더를 생성해서 넣어 놓도록 하자.
 
WebContent/WEB-INF/web.xml을 열어서 수정하자. <web-app>안에 이렇게 넣자.


web.xml은 한번 설정해놓으면 건드릴 것이 없다. 우리가 설정해야할 곳은 위에 actionservlet에 등록한 스트럿츠설정파일이다.
WEB-INF/config폴더를 생성해서 struts-config.xml 파일을 생성하자.

간단히 action을 지정해줬는데 http://localhost:8080/SimpleGuestBook/Welcome.do 라고 실행하게 되면 index.jsp를 포워딩하는 그런 것이다.

WebContent폴더에 index.jsp를 생성한 뒤

이렇게 적어보자. 그런 뒤 SimpleGuestBook(프로젝트이름)에 대고 오른쪽버튼을 누른 뒤
Run As -> Run on Server해서 우리가 추가한 서버로 실행해보자.

그러면 http://localhost:8080/SimpleGuestBook/ 라고 주소창에 뜨고 환영합니다 라는 말이 뜰 것이다. 이것은 index.jsp를 바로 실행한 것이기 때문에
http://localhost:8080/SimpleGuestBook/Welcome.do 라고 쳐보자. 똑같이 나올 것이다.
스트럿츠 설정파일에서 Welcome은 index.jsp를 포워딩하기 때문이다.
만약 실행이 안된다면 프로젝트명에 대고 F5를 눌러서 Refresh를 해보던가 lib파일을 넣지 않았던가 하는 설정 문제 일것이다.

자 오늘은 여기까지-_-;

 

 
Posted by 머드초보
,
 

매우 간단한 예제를 실행해보도록 하자.

우선 File -> New -> Other 를 선택한다. 그런다음에 JAVA를 선택하고 더블클릭하면 하위 메뉴들이 나오는데 거기에 플러그인이 제대로 설치가 되었다면 Tomcat Project라고 생겼을 것이다.
사용자 삽입 이미지

Tomcat Project를 선택하고 프로젝트이름을 "HelloWorld"라고 칭해보자.
나머지 옵션은 디폴트로 하고 Finish를 클릭한다.

그러면 프로젝트가 생성이 되었는데 이제 클래스를 생성해보자.
클래스를 생성하기전에 패키지를 먼저 생성하자.
왼쪽WorkSpace에 WEB-INF/src 폴더에 오른쪽 마우스버튼을 클릭해서 package를 생성하자.
이름은 helloworld 라고 칭하자.
그다음 helloworld패키지에 new해서 class를 선택하여 클래스를 생성하자.
이름은 TestJava라고 하자.
사용자 삽입 이미지

Finish를 클릭한뒤 코드는 다음과 같이 해보자.
사용자 삽입 이미지
컨트롤+S를 누르면 저장된 뒤 class파일도 자동으로 생성해준다.

그다음은 jsp파일을 생성해보자.

최상위 HelloWorld프로젝트폴더를 클릭하고 new를 눌러서 other를 선택한다.
Web이라는 폴더에 JSP가 있다. 클릭해서 test.jsp란 이름으로 생성하자.

코드는 방금 생성한 class에서 Method라는 메소드를 불러오도록 짠다.
사용자 삽입 이미지

제대로 코딩했다면 이클립스 메뉴에 스타트톰캣을 한다. 톰캣을 시작한뒤 익스플로러 창에다가

http://localhost:8080/HelloWorld/test.jsp 라고 치면 'Hello World!' 라고 뜰 것이다.

 
Posted by 머드초보
,
 

우여곡절 끝에 몇시간의 삽질 끝에 끝냈다.

톰캣플러그인을 설치하면 이클립스에서 톰캣을 실행하고, 중지하고, 재시작을 할 수 있는 메뉴와 아이콘이 생긴다. 그리고, JSP를 프로그래밍하기 쉬운 프로젝트를 생성할 수 있다.

기본적으로 자바를 설치해야한다. 6u2! 새로운 버전이 나왔다-_-; 아래 사이트에서 받자.
http://java.sun.com/javase/downloads/index.jsp

그다음 준비물은 WTP2.0(Web Tool Platform).
이클립스인데 웹 개발 툴을 올인원 다 모아둔거 같다. 잘은 모르지만 사람들이 좋아하는 올인원이라는 단어가 들어가있어서 마음이 끌리게 한다(모든것이 한개에 있으니 기분이좋다-_-;).
http://europa-mirror1.eclipse.org/webtools/downloads/ 이곳에서 받자.

그다음 준비물은 톰캣이다. 톰캣을 설치하지 않은 사람들은 아래 사이트로 가서 받아서 설치.
http://tomcat.apache.org/download-60.cgi

그다음은 톰캣 플러그인이다. 이것은 이클립스를 설치한 후에 압축을 풀어서 eclips\plugin폴더에 넣어버리자. http://www.eclipsetotale.com/tomcatPlugin.html

다 설치가 완료 됐으면, 이클립스를 실행해보자.

이클립스에 tomcat이라는 메뉴가 생겼을 것이다. 메뉴를 살펴보면, 시작과 중지, 재시작 메뉴가 있을 것이다. 우선 시작하기 전에 톰캣환경설정을 해야한다. 환경변수를 추가하자.

JAVAHOME=설치한 자바폴더 지정.
CATALINA_HOME=설치한 톰캣폴더 지정.

저렇게 환경변수를 지정했으면 톰캣이 정상적으로 실행이 될 것이다.

사용자 삽입 이미지

그럼 간단한 JSP예제를 살펴보도록 하자-_-;
예제바로가기
 
Posted by 머드초보
,