Struts 1登录应用程序示例错误 [英] Struts 1 login application example error
问题描述
我是Struts的新手,并尝试执行登录表单".但是在ACTION类中的默认构造函数之后,它不会执行.
I am new to Struts and tried to execute Login Form. But it's not getting executed after the default constructor in the ACTION class.
LoginForm.java
LoginForm.java
package struts.login.action;
import org.apache.struts.action.ActionForm;
@SuppressWarnings("serial")
public class LoginForm extends ActionForm {
public LoginForm() {
}
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
LoginAction.java
LoginAction.java
package struts.login.action;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class LoginAction extends Action {
private final static String SUCCESS = "success";
private final static String FAILURE = "failure";
//private final static String FAILURE = "failure";
public LoginAction() {
System.out.println("default constructor of Login Action");
}
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
ServletRequest request, ServletResponse response) throws Exception {
LoginForm loginForm = (LoginForm) form;
if(loginForm.getUsername().equals(loginForm.getPassword())){
return mapping.findForward(SUCCESS);
}
else{
return mapping.findForward(FAILURE);
}
}
}
Login.jsp
Login.jsp
<%@ taglib uri="/WEB-INF/tld/struts-html.tld" prefix="html"%>
<html>
<head>
<title>Login Page</title>
</head>
<body>
<div style="color:red">
</div>
<html:form action="/Login" method="get">
User Name :<html:text property="username"/><br>
Password :<html:password property="password"/>
<html:submit value="Login Here" />
</html:form>
</body>
</html>
success.jsp
success.jsp
<html>
<head>
<title>Insert title here</title>
</head>
<body>
Successfully logged in!
</body>
</html>
failure.jsp
failure.jsp
<html>
<head>
<title>Insert title here</title>
</head>
<body>
login failed please try again!
</body>
</html>
struts-config.xml
struts-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
<form-beans>
<form-bean name="loginForm" type="struts.login.action.LoginForm">
</form-bean>
</form-beans>
<action-mappings>
<action path="/Login" name="loginForm" type="struts.login.action.LoginAction" >
<forward name="success" path="/success.jsp"></forward>
<forward name="failure" path= "/failure.jsp"></forward>
</action>
</action-mappings>
</struts-config>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
<!-- Standard ActionServlet Configuration -->
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>application</param-name>
<param-value>ApplicationResources</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Standard ActionServlet Mapping -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!-- Struts Tag Library Descriptors -->
<jsp-config>
<taglib>
<taglib-uri>/WEB-INF/tld/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-html.tld</taglib-location>
</taglib>
</jsp-config>
</web-app>
我已将struts-html.tld文件包含在WEB-INF/tld文件夹中. 使用用户名和密码登录后,它不会重定向到success.jsp或failure.jsp页面
I have included struts-html.tld file in WEB-INF/tld folder. After login with username and password It's not redirected to either success.jsp or failure.jsp page
推荐答案
这是因为您在操作类的execute方法中而不是HttpServletRequest和HttpServlet Response中传递了ServletRequest和ServletResponse. 使用喜欢跟随
It is because you have passed ServletRequest and ServletResponse in execute method in action class instead of HttpServletRequest and HttpServlet Response.. Use Like Following
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
}
并导入以下内容:
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
希望它能正常工作.
这篇关于Struts 1登录应用程序示例错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!