1
내 struts.xml
내가 doFilter
방법에서 작업 (dologincheck
)를 호출 할 필요가doFilter 방법에서 스트럿츠 액션을 호출하는 방법
<action name="dologincheck" class="com.platinum.uac.biz.LoginAction" method="doLogin">
<result name="success" type="tiles">Homepage</result>
<!-- <result name="success">/Profile/view/ViewProfile1.jsp</result>-->
<result name="none">/Profile/add/Failure.jsp</result>
<result name="mail">/Profile/add/EmailAuthentication.jsp</result>
</action>
<action name="newuseraction" class="com.platinum.uac.biz.NewUserAction" method="newuser">
<result name="success" >/Profile/add/ProfileDetails.jsp</result>
<result name="error" >/index.jsp</result>
</action>
다음과 같이 두 가지 작업이 있습니다. 내가 doFilter
방법에서 작업을 호출하는 방법을 모르기 때문에 여기 붙어
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws
IOException, ServletException {
try {
System.out.println("this is do filter before the jsp page");
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = ((HttpServletResponse) res);
HttpSession session = request.getSession(true);
String username, password;
Cookie[] cookies;
LoginPojo user = (LoginPojo) session.getAttribute("username");
if (user == null) {
cookies = request.getCookies();
if (cookies != null && cookies.length > 0) {
username = getCookieValue(cookies, "username");
password = getCookieValue(cookies, "password");
System.out.println(username);
System.out.println(password);
if (username != null && password != null) {
LoginPojo pojo = new LoginPojo(username, password);
results = dao.Login(pojo);
session.setAttribute("userName", user); // usersession?
request.getRequestDispatcher("dologincheck").forward(request,
response);
} else {
request.getRequestDispatcher("/index.jsp").forward(request,
response);
}
} else {
request.getRequestDispatcher("/index.jsp").forward(request,
response);
}
}
} catch (Exception e) {
}
chain.doFilter(req, res);
//throw new UnsupportedOperationException("Not supported yet.");
}
web.xml
의 내 필터 부분은 내가 대답을 얻었다
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>AutomaticLogin</filter-name>
<filter-class>com.platinum.uac.biz.AutomaticLogin</filter-class>
</filter>
<filter-mapping>
<filter-name>AutomaticLogin</filter-name>
<url-pattern>*.jsp</url-pattern>
<url-pattern>*.action</url-pattern>
<servlet-name>action</servlet-name>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
바이 패스 struts2 필터 체인 그리고, 실제 작업에 리디렉션 인터셉터를 사용할 때까지 행위 실행. –
대신에 인터셉터를 사용하여 동일한 결과를 얻으십시오. – Rajesh