struts로 검색한 결과 :: 시소커뮤니티[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

회원가입 I 비밀번호 찾기


SSISO Community검색
SSISO Community메뉴
[카페목록보기]
[블로그등록하기]  
[블로그리스트]  
SSISO Community카페
블로그 카테고리
정치 경제
문화 칼럼
비디오게임 스포츠
핫이슈 TV
포토 온라인게임
PC게임 에뮬게임
라이프 사람들
유머 만화애니
방송 1
1 1
1 1
1 1
1 1
1

struts로 검색한 결과
등록일:2008-03-15 20:26:55
작성자:
제목:서버재시작없이 Struts 설정파일 초기화


다음과  같은  순서로  구현한다.

1.  확장  클래스  생성(MyAppServlet.java)
2.  web.xml  파일  수정
3.  reload.do를  호출할때  사용할  Action클래스  추가(ReloadstrutsConfigAction.java)
4.  struts-config.xml  파일  수정
5  reload.jsp  생성
-----------------------------------------------------------------------------
1.  확장  클래스  생성(MyAppServlet.java)

package  alpha.servlet;

import  java.io.IOException;

import  javax.servlet.RequestDispatcher;
import  javax.servlet.ServletException;
import  javax.servlet.http.HttpServletRequest;
import  javax.servlet.http.HttpServletResponse;

import  org.apache.struts.action.ActionServlet;
import  org.apache.struts.config.ModuleConfig;
import  org.apache.struts.util.RequestUtils;

public  class  MyAppServlet  extends  ActionServlet  {

protected  void  process(
HttpServletRequest  request,
HttpServletResponse  response)
throws  IOException,  ServletException  {
String  uri  =  request.getRequestURI();

if  ((uri.indexOf("reload.do")  !=  (-1)))  {
init();

RequestUtils.selectModule(request,  getServletContext());
ModuleConfig  config  =  getModuleConfig(request);
getRequestProcessor(config).init(this,  config);

RequestDispatcher  dispatcher  =
request.getRequestDispatcher("/reload.jsp");
dispatcher.forward(request,  response);
}  else  {
super.process(request,  response);
}
}
}

이  클래스에서  하는  역할은
첫째,  ActionServlet의  init()메소드를  호출함으로서  struts-config.xml을  초기화할  수  있다.
둘째,  RequestProcessor  클래스를  초기화한다.  왜냐면  RequestProcessor  클래스는
한번  호출된  Action클래스들을  저장하여  재새용을  하기  때문이다.

2.  web.xml  파일  수정
struts의  ActionServlet  대신  임의로  만든  MyAppServlet이  어플리케이션의  모든  요청을  처리하는
진입점이  되게  변경해주어야  한다.  해서  그  역할을  담당하는  web.xml을  다음과  같이  수정한다

<!--  Default  config  -->
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>

위  부분을  아래와  같이  수정한다.

<!--  Application  reload  -->
<servlet-name>action</servlet-name>
<display-name>struts  Action  Servlet</display-name>
<servlet-class>alpha.servlet.MyAppServlet</servlet-class>

3.  reload.do를  호출할때  사용할  Action클래스  추가(ReloadstrutsConfigAction.java)
이  클래스는  reload.do  로  진입할때  매핑할  (특별한  작업을  수행하지  않을)  Action클래라고  생각하면  된다.
실제로  reload.do로  진입시  MyAppServlet에서  가로채  reload.jsp로  넘어가기  때문에  이  Action클래스는
사용되지도  않는다.

package  alpha.action;

import  javax.servlet.http.HttpServletRequest;
import  javax.servlet.http.HttpServletResponse;

import  org.apache.struts.action.Action;
import  org.apache.struts.action.ActionForm;
import  org.apache.struts.action.ActionForward;
import  org.apache.struts.action.ActionMapping;

/**
*  @struts.action
*  path="/reload"
*/
public  class  ReloadstrutsConfigAction  extends  Action{

public  ActionForward  execute(
ActionMapping  mapping,
ActionForm  form,
HttpServletRequest  request,
HttpServletResponse  response)
throws  Exception  {

return  null;  //  ActionForward  또한  null  로  처리하고  있다
}

}

4.  struts-config.xml  파일  수정
ReloadstrutsConfigAction  클래스는  struts-config.xml  파일에  다음과  같이  매핑된다
<!--  Application  reload  -->
<action
path="/reload"
type="alpha.action.ReloadstrutsConfigAction"
unknown="false"
validate="true"
>
</action>

5.  reload.jsp  생성

<%@  page  contentType="text/html;  charset=EUC-KR"  %>
struts-Config.xml파일이  정상적으로  리로드(reload)  되었습니다.<br/>

---------------------------------------------------------------------------------
지금까지  만든  결과물을  테스트하기  위해서
ApplicationResources.properties  파일을  생성한  후
이  리소스를  사용하는  간단한  jsp를  작성합니다.
jsp를  구동한  이후에  ApplicationResources.properties  를  수정한  후  새로고침을  하여도
변경된  내용은  반영이  되진  않습니다.

http://localhost:8080/xxx/reload.do  를  실행합니다.
그리고  jsp를  다시  호출하면  수정된  메세지가  반영이  되는것을  볼수  있습니다.

[출처]  [본문스크랩]  서버재시작없이  struts  설정파일  초기화  |작성자  어린양이
http://blog.naver.com/dlckdeo81?Redirect=Log&logNo=41775934