자바 의 Struts 2 차단기 상세 설명
1.차단기 가 무엇 입 니까?
차단 기 는 필터 에 해당 합 니 다.원 하지 않 는 것 을 제거 하고 원 하 는 것 을 남 기 는 것 입 니 다.차단 기 는 일부 코드 를 추상 화하 여 원래 의 action 을 보완 할 수 있다.동시에 코드 의 번 거 로 움 을 줄 이 고 재 활용 율 을 높 일 수 있다.쉽게 말 하면 그물 로 필요 없 는 모래 를 걸 러 내 고 물 에 남 기 는 것 이다.
2.차단기 의 역할:
차단 기 는 특정한 기능 을 구성 할 수 있다.예 를 들 어 권한 인증,로그 기록,로그 인 판단 등 입 니 다.
3.차단기 의 원리:
모든 Action 요청 은 차단기 에 있 습 니 다.모든 action 은 작업 을 아래 의 차단기 에 전달 할 수도 있 고 인터페이스 로 직접 종료 할 수도 있 습 니 다.
4.정의 차단기:
(1)Interceptor 인 터 페 이 스 를 사용자 정의 합 니 다.(그러나 초보 자 는 프레임 워 크 의 Interceptor 를 직접 실현 합 니 다)
(2)struts.xml 에 정 의 된 차단 기 를 등록 합 니 다.
(3)필요 한 action 에서 차단 기 를 참조 할 수 있 습 니 다.
Interceptor 인 터 페 이 스 는 세 가지 방법 을 설명 했다.
public interface Interceptor extends Serializable {
void destroy();
void init();
String intercept(ActionInvocation invocation) throws Exception;
}
Init 방법 은 action 작용 전에 호출 되 는 것 으로 썩 은 기계 에 대한 초기 화 작업 을 시작 하 는 것 입 니 다.Destory 방법 은 차단기 가 쓰레기 로 회수 되 기 전에 호출 되 어 init 방법 으로 초기 화 된 자원 을 회수 합 니 다.
interceptor 방법 은 차단기 의 주요 조작 입 니 다.후속 Action 이나 차단 기 를 호출 하려 면 이 방법 에서 invocation.invoke()방법 을 호출 하면 됩 니 다.이 방법 이 호출 된 전후 에 Action 호출 전후 차단 기 를 삽입 할 수 있 습 니 다.
현재 사용자 로그 인 을 차단 합 니 다.코드 는 다음 과 같 습 니 다.
public String intercept(ActionInvocation invocation) throws Exception {
System.out.println(" action ");
ActionContext actionContext=invocation.getInvocationContext();
Map<String,Object> session=actionContext.getSession();
Object currentUser=session.get("currentUser");
String result=null;
if(currentUser!=null){
result=invocation.invoke();
}else{
HttpServletRequest request=(HttpServletRequest)invocation.getInvocationContext().get(ServletActionContext.HTTP_REQUEST);
request.setAttribute("error", " ");
result="error";
}
System.out.println("result+"+result);
System.out.println(" action ");
return result;
}
등록 차단기:
<interceptors>
<interceptor name="myInterceptor"
class="com.fangchao.interceptor.MyInterceptor"></interceptor>
<interceptor name="loginInterceptor"
class="com.fangchao.interceptor.LoginInterceptor"></interceptor>
<interceptor-stack name="myStack">
<interceptor-ref name="loginInterceptor"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
위 코드 의 interceptor-stack 은 차단기 스 택 입 니 다.지금까지 아래 에서 인용 할 때 비교적 편리 하 다.일반적으로 모든 action 은 defaultStack 을 사용 합 니 다.차단기 파라미터:
설정 매개 변수:
<interceptor-ref name="validation">
<param name="excludeMethods">myValidationExcudeMethod</param>
</interceptor-ref>
<interceptor-ref name="workflow">
<param name="excludeMethods">myWorkflowExcludeMethod</param>
</interceptor-ref>
혹은
<interceptor-ref name="defaultStack">
<param name="validation.excludeMethods">myValidationExcludeMethod</param>
<param name="workflow.excludeMethods">myWorkflowExcludeMethod</param>
</interceptor-ref>
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
java의 Struts2 파일 업로드 및 다운로드 예파일 업로드 Struts 응용 프로그램에서 File Upload 차단기와 Jakarta Commons File Upload 구성 요소로 파일을 업로드할 수 있습니다. Jsp 페이지의 파일 업로드 폼에 파일 탭을 사용...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.