java struts框架 登录界面登不进去 求解

时间:2022-08-31 11:12:55
1.login.jsp配置

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>My JSP 'login.jsp' starting page</title>
</head>
<body>
<h1>管理员登陆</h1>
<form action="/myssh/login.do?flag=login"  method="post">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="id" /></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="pwd" /></td>
</tr>
<tr>
<td><input type="submit" value="登陆" /></td>
<td><input type="reset" value="重填" /></td>
</tr>
</table>
<br />
</form>
</body>
</html>

2.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="employeeForm" type="com.yf.web.forms.EmployeeForm" />
</form-beans>
<action-mappings>
<action path="/login" parameter="flag" name="employeeForm"
type="com.yf.web.action.LoginAction">
<forward name="ok" path="/WEB-INF/mainFrame.jsp" />
<forward name="err" path="/WEB-INF/login.jsp" />
</action>
</action-mappings>
</struts-config>

3.web.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app 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">
<display-name>yy</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

<!--配置struts -->
<servlet>
<servlet-name>struts</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>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>struts</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>

4.LoginAction.java配置

package com.yf.web.action;

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

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

import com.yf.web.forms.EmployeeForm;

public class LoginAction extends DispatchAction {
// 响应登陆请求
public ActionForward login(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
// 取出表单
EmployeeForm employeeForm = (EmployeeForm)form;
if ("1234".equals(employeeForm.getPwd())) 
{
return mapping.findForward("ok");

else
{
System.out.println("密码错误!");
return mapping.findForward("err");
}
}

// 响应注销请求
public ActionForward logout(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
return super.execute(mapping, form, request, response);
}
}

5.EmployeeForm.java配置
package com.yf.web.forms;

import org.apache.struts.action.ActionForm;

public class EmployeeForm extends ActionForm {
/**
 * 
 */

private String id;
private String pwd;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}

}

20 个解决方案

#1


报错信息也贴上来吧

#2


能看一下错误信息吗,

#3


看你的登录页面就是index吧!地址输入http://localhost:8080/项目名然后回车不会出现吗??

#4


java struts框架 登录界面登不进去 求解

错误是这样的

#5


感觉是你的Action继承问题啊,

#6


/myssh/login.do?flag=login"  这个地址能找到谁???

#7


from表单提交地址错了。
<form action="/login.do?action=login"  method="post">

#8



from表单提交地址错了。
<form action="/login.do?flag=login"  method="post">

#9


引用 8 楼 xiaxiaolin_yun 的回复:
from表单提交地址错了。
<form action="/login.do?flag=login"  method="post">

那怎么改

#10


就是我写的那样啊,你把前面那个myssh去掉

#11


引用 10 楼 xiaxiaolin_yun 的回复:
就是我写的那样啊,你把前面那个myssh去掉


改过了  不行

#12


<action path="/login" parameter="flag" name="employeeForm"type="com.yf.web.action.LoginAction"> 
你配置的action映射地址是/login,但是你form提交的路径是"/myssh/login.do?flag=login“,路径没有提交对。

#13


引用 12 楼 llwking 的回复:
<action path="/login" parameter="flag" name="employeeForm"type="com.yf.web.action.LoginAction"> 
你配置的action映射地址是/login,但是你form提交的路径是"/myssh/login.do?flag=login“,路径没有提交对。

么有错  改过也不行

#14


楼主,你是不是没在struts.xml配置文件中配置请求访问的设置,struts2默认是没有接收.do请求的,可以是.action或者就是login请求。

#15


引用 14 楼 u011106669 的回复:
楼主,你是不是没在struts.xml配置文件中配置请求访问的设置,struts2默认是没有接收.do请求的,可以是.action或者就是login请求。


.do是Struts1不是Struts2,人家写的就是Struts,没说是Struts2

#16


引用 15 楼 llwking 的回复:
Quote: 引用 14 楼 u011106669 的回复:

楼主,你是不是没在struts.xml配置文件中配置请求访问的设置,struts2默认是没有接收.do请求的,可以是.action或者就是login请求。


.do是Struts1不是Struts2,人家写的就是Struts,没说是Struts2[/quote
]对啊,他这个是strtus1不是struts2啊。.do的请求也配置了。

#17


楼主,把form中的Action路径修改下:/myssh/login/login.do

#18


楼主,把form中的Action路径修改下:/myssh/login/login.do

#19


建议楼主还是一步步来找问题,因为你报的是404,
1、确认你的tomcat启动成功,能访问tomcat首页;
2、项目位置在tomcat里放置的位置必须对(方法就是先不要访问登陆页面,而是访问到项目名称那节点,然后看是否显示你的index.jsp页面的内容);
3、1和2没问题了再来检查jsp页面的form的action跟stru.tsxml配置是否匹配;
4、具体问题具体分析``

#20


struts配置中action好像要继承default-struts的

#1


报错信息也贴上来吧

#2


能看一下错误信息吗,

#3


看你的登录页面就是index吧!地址输入http://localhost:8080/项目名然后回车不会出现吗??

#4


java struts框架 登录界面登不进去 求解

错误是这样的

#5


感觉是你的Action继承问题啊,

#6


/myssh/login.do?flag=login"  这个地址能找到谁???

#7


from表单提交地址错了。
<form action="/login.do?action=login"  method="post">

#8



from表单提交地址错了。
<form action="/login.do?flag=login"  method="post">

#9


引用 8 楼 xiaxiaolin_yun 的回复:
from表单提交地址错了。
<form action="/login.do?flag=login"  method="post">

那怎么改

#10


就是我写的那样啊,你把前面那个myssh去掉

#11


引用 10 楼 xiaxiaolin_yun 的回复:
就是我写的那样啊,你把前面那个myssh去掉


改过了  不行

#12


<action path="/login" parameter="flag" name="employeeForm"type="com.yf.web.action.LoginAction"> 
你配置的action映射地址是/login,但是你form提交的路径是"/myssh/login.do?flag=login“,路径没有提交对。

#13


引用 12 楼 llwking 的回复:
<action path="/login" parameter="flag" name="employeeForm"type="com.yf.web.action.LoginAction"> 
你配置的action映射地址是/login,但是你form提交的路径是"/myssh/login.do?flag=login“,路径没有提交对。

么有错  改过也不行

#14


楼主,你是不是没在struts.xml配置文件中配置请求访问的设置,struts2默认是没有接收.do请求的,可以是.action或者就是login请求。

#15


引用 14 楼 u011106669 的回复:
楼主,你是不是没在struts.xml配置文件中配置请求访问的设置,struts2默认是没有接收.do请求的,可以是.action或者就是login请求。


.do是Struts1不是Struts2,人家写的就是Struts,没说是Struts2

#16


引用 15 楼 llwking 的回复:
Quote: 引用 14 楼 u011106669 的回复:

楼主,你是不是没在struts.xml配置文件中配置请求访问的设置,struts2默认是没有接收.do请求的,可以是.action或者就是login请求。


.do是Struts1不是Struts2,人家写的就是Struts,没说是Struts2[/quote
]对啊,他这个是strtus1不是struts2啊。.do的请求也配置了。

#17


楼主,把form中的Action路径修改下:/myssh/login/login.do

#18


楼主,把form中的Action路径修改下:/myssh/login/login.do

#19


建议楼主还是一步步来找问题,因为你报的是404,
1、确认你的tomcat启动成功,能访问tomcat首页;
2、项目位置在tomcat里放置的位置必须对(方法就是先不要访问登陆页面,而是访问到项目名称那节点,然后看是否显示你的index.jsp页面的内容);
3、1和2没问题了再来检查jsp页面的form的action跟stru.tsxml配置是否匹配;
4、具体问题具体分析``

#20


struts配置中action好像要继承default-struts的

#21