404在Tomcat上通过eclipse运行项目时

时间:2013-05-13 05:40:46

标签: java struts2 struts http-status-code-404 web-project

我有一个Struts 2项目,其目录结构如下。但是当我尝试在Tomcat 7上使用Eclipse运行这个项目时,它给了我404错误。

enter image description here

Struts.xml

<?xml version="1.0" encoding="UTF-8"?>

<struts>
  <action name="login" class="com.actions.LoginAction" method="execute">
     <result name="success">/jsp/login.jsp</result>  
  </action>
</struts>

login.jsp

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Login Page</title>
</head>
<body>
  <s:form action="login" method="post">
  Login name : <input type="text" value="name"/>
  </s:form>
</body>
</html>

在路径http://localhost:8080/StrutsPro/jsp/login.jsp上运行时,它会提供HTTP 404,为什么?

6 个答案:

答案 0 :(得分:1)

检查web.xml。

否则将所有.jsp文件放在WebContent文件夹

答案 1 :(得分:0)

根据您的代码结构,您的项目屋顶文件夹中没有index.jsp / html。运行服务器时,默认情况下会首先找到index.html / jsp。如果它不可用,它将返回404错误。要解决此问题,您可以在web.xml文件中添加以下行

<welcome-file-list>
<welcome-file>/jsp/login.jsp</welcome-file>
</welcome-file-list>

保存所有更改并运行服务器。如果问题再次存在,则必须检查Struts配置文件和构建路径。

答案 2 :(得分:0)

你的项目真的很奇怪。

顺便说一句:

  • struts.xml 中声明<package>;操作不会直接进入<struts>元素;

  • 为该程序包提供“/ StrutsPro”命名空间;

  • 声明用于检查 LoginAction 中的用户凭据的方法(然后execute()将打开要由用户填充的JSP页面,tryToLogin(),例如,将接收来自POST的数据并尝试针对数据库验证它们;或者,您可以使用两种方法指定两个不同的操作而不是一个操作,这取决于您;

  • <s:submit />内放置一个<s:form>按钮,将数据发送到登录方法/操作;

  • 调用指向你的Action的url,而不是你的JSP。 JSP是视图,它总是由控制器返回,在Struts2中是Action。您运行Action,Action为您提供已评估的JSP。您不运行JSP。

例如,根据您在 web.xml

中为操作提供的扩展程序,您应致电:http://localhost:8080/StrutsPro/login.actionhttp://localhost:8080/StrutsPro/login.do

答案 3 :(得分:0)

试试这个答案:

<强>的login.jsp

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Login Page</title>
</head>
<body>
  <s:form action="login" method="post">
           Login name : <s:textfield name="name"/> 
           <s:submit value="Click Me" name="Click Me"></s:submit>
  </s:form>
</body>
</html>

<强> struts.xml中

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="default" namespace="/" extends="struts-default">
<action name="login"  class="com.actions.LoginAction">
<result name="success">/jsp/login.jsp</result>  
</action>
</package>
</struts> 

<强> LoginAction.java

private String name;

//Create setter and getter methods for NAME.

public String execute(){
  return SUCCESS;
}

您可以保存所有更改并重新启动服务器。要访问该页面,请输入网址http://localhost:8080/StrutsPro/login.action

希望这会对你有所帮助。

答案 4 :(得分:0)

404状态代码实际上意味着给定网址的资源不可用。

要从服务器请求资源,请确保该文档中包含taglib definitions的有效且可编译。

<%@ taglib prefix="s" uri="/struts-tags" %>

您不应直接在URL中访问JSP页面。使用返回调度程序结果的action configuration

<action name="UnderConstruction">
    <result>/UnderConstruction.jsp</result>
</action>

答案 5 :(得分:0)

我是struts的新手,我遇到了同样的错误。与404一起,在控制台中,它有UnableToLodaConfiguration错误,尽管我已经放置了正确的struts.xml配置。有人建议我将我的工作区从桌面重新定位到C:\并且令人惊讶的是它有效。