浏览器在页面重新加载时要求重新发送数据
browser asks to resend data when page is reloaded
我正在使用 struts2 编写应用程序。我在登录部分遇到问题。当执行登录时,它会重定向到 index.jsp page.Now 问题就出现了。问题是登录后 index.jsp 被重新加载,浏览器要求我重新发送数据。我不知道为什么会这样?
这是我的 struts.xml 验证操作代码:-
<action name="authenticate" class="com.action.LoginAction">
<result name="success">index.jsp</result>
<result name="failure">loginerror.jsp</result>
</action>
这是登录操作的代码 class:-
public String execute() {
if(sessionMap.containsKey("project_user")){
return "success";
}
Project_User project_User=Login.checkCredentials(email_id,password);
if(project_User!=null) {
sessionMap.put("project_user", project_User);
return "success";
} else
return "failure";
}
同样当index.jsp出现时,浏览器的url区域保持不变,浏览器url区域中的link仍然显示动作名称,如:- localhost:8084/Tek-Hub/authenticate/
如果有人知道它请帮助我。
谢谢xx
您需要使用名为 PRG (Post / Redirect / Get) 的模式。
这样,在执行第一个操作结果时会执行第二个请求(因为重定向),并且登陆页面的刷新(例如按 F5)会触发第二个操作(GET 操作) ,而不是登录操作(POST 一个)。
改变这个:
<action name="authenticate" class="com.action.LoginAction">
<result name="success">index.jsp</result>
<result name="failure">loginerror.jsp</result>
</action>
对此:
<action name="authenticate" class="com.action.LoginAction">
<result name="success" type="redirectAction">index.action</result>
<result name="failure">loginerror.jsp</result>
</action>
<action name="index" class="com.action.IndexAction">
<result name="success">index.jsp</result>
</action>
我正在使用 struts2 编写应用程序。我在登录部分遇到问题。当执行登录时,它会重定向到 index.jsp page.Now 问题就出现了。问题是登录后 index.jsp 被重新加载,浏览器要求我重新发送数据。我不知道为什么会这样? 这是我的 struts.xml 验证操作代码:-
<action name="authenticate" class="com.action.LoginAction">
<result name="success">index.jsp</result>
<result name="failure">loginerror.jsp</result>
</action>
这是登录操作的代码 class:-
public String execute() {
if(sessionMap.containsKey("project_user")){
return "success";
}
Project_User project_User=Login.checkCredentials(email_id,password);
if(project_User!=null) {
sessionMap.put("project_user", project_User);
return "success";
} else
return "failure";
}
同样当index.jsp出现时,浏览器的url区域保持不变,浏览器url区域中的link仍然显示动作名称,如:- localhost:8084/Tek-Hub/authenticate/ 如果有人知道它请帮助我。 谢谢xx
您需要使用名为 PRG (Post / Redirect / Get) 的模式。
这样,在执行第一个操作结果时会执行第二个请求(因为重定向),并且登陆页面的刷新(例如按 F5)会触发第二个操作(GET 操作) ,而不是登录操作(POST 一个)。
改变这个:
<action name="authenticate" class="com.action.LoginAction">
<result name="success">index.jsp</result>
<result name="failure">loginerror.jsp</result>
</action>
对此:
<action name="authenticate" class="com.action.LoginAction">
<result name="success" type="redirectAction">index.action</result>
<result name="failure">loginerror.jsp</result>
</action>
<action name="index" class="com.action.IndexAction">
<result name="success">index.jsp</result>
</action>