Vitual host에 alias를 붙이니 오류가 났다..

virtual host이기 때문에 서버 설정을 바꾸는게 아니라 가상 호스트 설정만 바꾸어야 한다. (보안상..)

httpd-vhosts.conf 에서
Alias /yeory "D:/yeory/webapp1"  # Alias 설정.

<Directory "D:/yeory/webapp1">
     Options FollowSymLinks
     AllowOverride None
     Order deny,allow
     Allow from all
</Directory>


만약 가상호스팅을 하지 않고 단독으로 사용한다면 별수없이 서버 설정을 바꾸는게 맞다.
즉 httpd.conf의

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>
적색 부분을 Allow from all 바꿔주면 된다.

그리고 자신의 WebRoot로 이동했을때 기본 페이지인 index.jsp, default.jsp 등이 보여지지 않으면 서버 설정을 수정하여야 한다.

<IfModule dir_module>
    DirectoryIndex index.html index.jsp default.jsp
</IfModule>

적색 부분 처럼 자신이 작성한 기본 페이지를 추가해주면 되는 것..

'Web' 카테고리의 다른 글

Tomcat console encoding.  (0) 2010.09.01
[Script] 특수문자 강제 치환.  (0) 2010.07.23
Apache error : client denied by server configuration  (0) 2010.03.31
DWR 간단 테스트  (0) 2010.03.29
JSP 에러 모음  (0) 2010.03.29
브라우저 구분하기.  (0) 2010.03.29


Eclipse에서 Web Project 생성.

Project Name : DWR-Test

dwr.jar 파일을 Project내의 WEB-INF/lib에 넣어준다.


web.xml에 아래 내용 추가.

     dwr-invoker                  org.directwebremoting.servlet.DwrServlet                        debug               true                 dwr-invoker         /dwr/* 


중간 파란색 부분은 dwr 버전이 1.x라면 uk.ltd로 시작하는것을 servlet-class로 적어주어야만 한다. 무조건.


dwr.xml 만들기.

                                                      

<dwr> 위에 아래 docType을 추가한다. (코드 하이라이터에서 docType을 빼버려서..)
 <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">

creator에 new라는 것은 객체를 만들어서 사용한다는 것이고.. HelloTest는 jsp나 html에서 객체의 이름으로 사용할 것을 적는당.
param의 class란 java파일이므로 class라 한 것이고... value의 dwr.test.SimpleText는 java파일의 경로를 적은 것.
hello란 것은 SimpleText Class의 메소드로 hello가 있다는 것을 정의해준 것.(그냥 쓸거 정의하면 됨..)

SimpleText.java 만들기

src 아래에 패키지 만들기를 통해 dwr.test를 만든 후 test 아래에 SimpleText class를 만든다.

package dwr.test;    public class SimpleText {            public String hello(String value){                   return "Hello ~ "+value;            } }

hello는 dwr.xml에서 정의한 것(자신이 쓸 메소드)과 일치시켜주면 된다.

이제 톰캣에 Project를 올리고 서버를 실행시킨후에
http://localhost:{your_port}/{your_app}/dwr/
위 주소로 들어가게 되면 dwr.xml에 정의했던 Class 목록이 나오게 된다.

위와 똑같이 했다면 이런 화면....

그리고 HelloTest를 눌러보면은.. 아래와 같이 나오게 된다..

위 그림에서 보면 script 구문이 3줄이 있다.
DWR이 알아서 저걸 만들어 준다는 것이다.
그리고 그 아래에는 Test를 할 수 있는 부분이 있다.

WebContent/index.jsp 만들기.


<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>   


send를 클릭하게 되면 JavaScript의 test() function이 호출이 된다.
test에서는 demo에 적혀진 text를 value로 저장해 DWR에서  정의한 객체(HelloTest)의 메소드(hello)를 호출한다.
그런데 hello 메서드를 보게 되면 매개변수가 하나 였는데 script내에서는 2개이다..

why? 

이를 callback function이라 하는데, return값이 있다면 return 값을 처리하는 함수이다.
왜 저렇게 쓰냐고 하면... 그냥 간단히 하기 위해서??
왜 복잡한지 궁금하다면..

function test(){     var value = dwr.util.getValue("demo");     HelloTest.hello(value, cb_function);}function cb_function(data){     dwr.util.setValue("here", data);}


이렇게 사용하느니 그냥 줄여서 사용한다 이거다. 

위 예제는 정말 간단하게 DWR 설명이 가능한 예제이다..
jsp -> Java로 가는 대부분의 과정을 DWR이 처리해주고 있다..

무분별한 사용은 금지..
데이터가 많을 경우 메모리 급상승 최악에는 서버가 죽어버린다..

아래 링크에서 확인할 수 있다.
http://javaora.tistory.com/109



'Web' 카테고리의 다른 글

Tomcat console encoding.  (0) 2010.09.01
[Script] 특수문자 강제 치환.  (0) 2010.07.23
Apache error : client denied by server configuration  (0) 2010.03.31
DWR 간단 테스트  (0) 2010.03.29
JSP 에러 모음  (0) 2010.03.29
브라우저 구분하기.  (0) 2010.03.29

jQuery('#grid_selector').jqGrid( options )

 options에 해당하는 속성들.

Property Description
url

tells us where to get the data. Typically this is a server-side function with a connection to a database which returns the appropriate information to be filled into the Body layer in the grid

- 데이터를 가지고 와야할 url을 지정하는 곳. DB연결 동시에 적합한 정보를 body부분의 grid에 채워주는 server-side 기능이다.

datatype

this tells jqGrid the type of information being returned so it can construct the grid. In this case we tell the grid that we expect xml data to be returned from the server, but other formats are possible. For a list of all available datatypes refer to API Methods

- grid가 생성될때 리턴된 정보의 타입을 적는 곳. 이 경우 서버로부터 xml 데이터를 가져와 처리가능하고 다른 형식(타입)도 가능하다. 자세한 것은 API 메소드 보고 알아서 하라.

mtype

tells us how to make the ajax call: either 'GET' or 'POST'. In this case we will use the GET method to retrieve data from the server

- GET 방식으로 호출할지 POST로 호출할지를 적는 곳. 대부분 GET으로 이용한다.

colNames

an array in which we place the names of the columns. This is the text that appears in the head of the grid (Header layer). The names are separated with commas

- 컬럼의 이름을 지정하는 곳. Header Layer에 표시된다.

colModel an array that describes the model of the columns. This is the most important part of the grid. Here I explain only the options used above. For the complete list of options see colModel API:
name
the name of the column. This name does not have to be the name from database table, but later we will see how we can use this when we have different data formats

- 컬럼의 이름. 이름은 DB Table의 이름이 될 수 없으며, 추후 서로 다른 타입의 데이터 타입의 정보를 가지고 있을때 어떻게 사용할 수 있는지 볼 수 있다.

index
the name passed to the server on which to sort the data (note that we could pass column numbers instead). Typically this is the name (or names) from database -- this is server-side sorting, so what you pass depends on what your server expects to receive

- 데이터 정렬을 위한 인덱스. (DB의 테이블의 컬럼명을 따른다.)

width
the width of the column, in pixels
align
the alignment of the column
sortable
specifies if the data in the grid can be sorted on this column; if false, clicking on the header has no effect
pager

defines that we want to use a pager bar to navigate through the records. This must be a valid html element; in our example we gave the div the id of "pager", but any name is acceptable. Note that the Navigation layer (the "pager" div) can be positioned anywhere you want, determined by your html; in our example we specified that the pager will appear after the Body layer.

- 여러 데이터를 페이지 bar 하기 위해 선언하는 것. 반드시 유효한 element 여야 한다.

Navigation layer( Div : pager ) 를 이용하여 원할때 어디서든지 사용 가능하다.

rowNum

sets how many records we want to view in the grid. This parameter is passed to the url for use by the server routine retrieving the data

- grid에 몇개의 데이터를 보여 줄 것인지 지정 하는 것.

rowList

an array to construct a select box element in the pager in which we can change the number of the visible rows. When changed during the execution, this parameter replaces the rowNum parameter that is passed to the url

- pager의 select box가 생성될때 배열로 볼수 있는 데이터의 수를 지정한다. 갯수가 바뀌어 실행이 되면 rowNum 파라미터가 자동적으로 바뀌게 되어 url로 전송이 되어 다시 데이터를 가져온다.

sortname

sets the initial sorting column. Can be a name or number. This parameter is added to the url for use by the server routine

- 초기화 될때 sort할 컬럼을 지정한다. 숫자 or 컬럼 이름일 수 있고, 서버 루틴 사용을 위한 파라미터에 추가되는 것(?)

sortorder

sets the sorting order. This parameter is added to the url

- 정렬 방법 (desc | asc)

viewrecords

defines whether we want to display the number of total records from the query in the pager bar

- 총 레코드 수를 pager bar에 표시할 것 인지 지정하는 것.

imgpath

the path to the images needed for the grid. The path should not end with '/'

- 생략

caption

sets the caption for the grid. If this parameter is not set the Caption layer will be not visible

- Grid의 제목을 설정하는 것. 이 부분이 없으면 제목은 보여지지 않는다.



+ Recent posts