我用eclipse开发了一个tomcat 项目jspstudy,前几个jsp,servlet程序都可以运行正常,但是我又写了一个SessionExample.java程序和一个名为SessionServlet.jsp页面,启动tomcat却显示这样的错误:
HTTP Status 404 - /jspstudy/--------------------------------------------------------------------------------type Status reportmessage /jspstudy/description The requested resource (/jspstudy/) is not available.
以前的几个程序都可以运行啊!!!
SessionServlet.jsp:源代码:
<%@ page language="java" contenType="text/html;charset=gb2312"%>
<html>
<center>
<title>Session-Servlet测试</title>
<body>
<%--设置Session中的共享变量dataName和 dataValue--%>
<%
session.putValue("dataName","session-share");
session.putValue("dataValue","100");
%>
<form method=post action="./SessionExample">
输入数据上限:
<input type=text name="dataLimit">
<p>
<input type=submit>
</form>
</body>
</center>
</html>
Servlet程序SessionExample.java的源代码:
/**
 * 在JSP 和Servlet之间传递数据
 */
package test;import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;/**
 * @author 李彬
 *
 */
public class SessionExample extends HttpServlet { /**
 * 添加缺省的序列好
 */
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws IOException,ServletException 
{
response.setContentType("text/html;charset=gb2312");
PrintWriter out = response.getWriter();

//从request对象中获得当前用户的Session
HttpSession session = request.getSession(true);
//输出session信息
//获得session创建时间
Date created = new Date(session.getCreationTime());
//获得Session最后访问时间
Date accessed = new Date(session.getLastAccessedTime());
out.println("session ID:" + session.getId() + "<br>");
out.println("创建时间:" + created + "<br>");
out.println("上次访问时间:" + accessed + "<br>");

//设置Session信息
String dataName = request.getParameter("dataName");
if(dataName != null && dataName.length()>0){
String dataValue = request.getParameter("dataValue");
session.setAttribute(dataName,dataValue);
}
//输出session内容
Enumeration e = session.getAttributeNames();
while(e.hasMoreElements()){
String name = (String)e.nextElement();
String value = session.getAttribute(name).toString();
out.println(name + "=" + value +"<br>");
}
out.println("dataLimit=" + request.getParameter("dataLimit"));

}

/**
*doPost函数调用doGet()函数
*/
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws IOException ,ServletException
{
doGet(request,response);
}}
web.xml配置文件源代码:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4"><display-name>Welcom to Tomcat</display-name>
<description>
study jsp
</description>
    <servlet>
        <servlet-name>RequestInfo</servlet-name>
        <servlet-class>
          test.RequestInfo
        </servlet-class>
    </servlet>
    <servlet-mapping>
<servlet-name>RequestInfo</servlet-name>
<url-pattern>/RequestInfo</url-pattern>
</servlet-mapping>
<servlet>
        <servlet-name>RequestHeaderExample</servlet-name>
        <servlet-class>
          test.RequestHeaderExample
        </servlet-class>
    </servlet>
    <servlet-mapping>
<servlet-name>RequestHeaderExample</servlet-name>
<url-pattern>/RequestHeaderExample</url-pattern>
</servlet-mapping>
<servlet>
        <servlet-name>SessionExample</servlet-name>
        <servlet-class>
          test.SessionExample
        </servlet-class>
    </servlet>
    <servlet-mapping>
<servlet-name>SessionExample/servlet-name>
<url-pattern>/SessionExample</url-pattern>
</servlet-mapping>
    </web-app>
在C:\Program Files\Apache Software Foundation\Tomcat 5.0\conf\server.xml中叶正常配置的以下信息;
<Context path="/jspstudy" reloadable="true" docBase="E:\eclipse3.1workspace\jspstudy" workDir="E:\eclipse3.1workspace\jspstudy\work" />      </Host>
为什么就突然那个项目资源就不可用了呢??
请高手指点!!!!!!!!!

解决方案 »

  1.   

    <form method=post action="./SessionExample">应该没有"点"
      

  2.   

    就是路径错了,配置文件里和jsp的action里面看看。
      

  3.   

    <form method=post action="./SessionExample">
    应该是<form method=post action="../SessionExample">
    ../是向上跳一页
    这样应该就好了
      

  4.   

    <Context path="/jspstudy" reloadable="true" docBase="E:\eclipse3.1workspace\jspstudy" workDir="E:\eclipse3.1workspace\jspstudy\work" />设置:docBase="E:\eclipse3.1workspace\jspstudy\work"
    去掉workDir="E:\eclipse3.1workspace\jspstudy\work"  应该没用吧!

    <form method=post action="/SessionExample">试试吧!
      

  5.   

    感谢你们对我的帮助。昨天终于查出来了
      <servlet-mapping>
    <servlet-name>SessionExample/servlet-name>
    <url-pattern>/SessionExample</url-pattern>
    </servlet-mapping>
    是这个地方错了,哎,做程序的时候应该仔细阿
      

  6.   

    404是找不到该文件错误。
    500是程序运行内部错误。具体可以查下http协议的错误代码。
    这对于程序错误定位有好处