Loading...
  所在位置:论坛首页 -> 计算机科学与技术 -> 程序设计 -> [求助]关于Servlet中请求资源找不到的问题
回复

[求助]关于Servlet中请求资源找不到的问题

作者:hll 时间:2010-11-29 10:52:38 收藏 编辑

我是想通过实现接口Servlet来写一个简单的Servlet程序,程序和其配置文件如下package testservlet;
import javax.servlet.*;
import java.io.*;
public class HelloServlet implements Servlet{
public void init(ServletConfig param1)throws ServletException{
 System.out.println("init it");
}

@Override
/*1.reload 2.close tomcat 3,close computer*/
public void destroy() {
 // TODO Auto-generated method stub
 System.out.println("destory it ");
}

@Override
public ServletConfig getServletConfig() {
 // TODO Auto-generated method stub
 return null;
}

@Override
public String getServletInfo() {
 // TODO Auto-generated method stub
 return null;
}

@Override
public void service(ServletRequest req, ServletResponse res)
  throws ServletException, IOException {
  System.out.println("service it");//向控制台打印
 PrintWriter pw=res.getWriter();
 pw.println("hello,world");
 
}
 
}

web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<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_5.xsd" id="WebApp_ID">
 <display-name>heh</display-name>
  <servlet>
        <servlet-name>/HelloServlet</servlet-name>
        <servlet-class>testservlet.HelloServlet</servlet-class>
    </servlet>
  <servlet-mapping>
        <servlet-name>/HelloServlet</servlet-name>
        <url-pattern>/HelloServlet</url-pattern>
    </servlet-mapping> 
 <welcome-file-list>
  <welcome-file>index.html</welcome-file>
  <welcome-file>index.htm</welcome-file>
  <welcome-file>index.jsp</welcome-file>
  <welcome-file>default.html</welcome-file>
  <welcome-file>default.htm</welcome-file>
  <welcome-file>default.jsp</welcome-file>
 </welcome-file-list>
</web-app>

检查觉的没有错误,可是运行时出现的错误是文件无法定位的the requested resource()is not available.的404错误,这是什么原因呢?

第2楼 ade
编辑 删除 引用

Servlet接口是个通用的,不是针对某个协议的接口.我们一般使用的HttpServlet只是支持http协议,你需要继承的是这个类,而不是实现那个接口去.

你没有按照Eclipse向导做!!简单的事情让你弄复杂了:).

回复时间:2010-11-29 14:24:12
第3楼 hll
编辑 删除 引用

呵呵,对啊,通过继承HttpServlet,能够正确输出啊。

我是看了一个网上的视频,讲的是通过实现Servlet接口,继承GenericServlet和HttpServlet三种方法开发Servlet,所以我就想用三种方法都实现一下,就写了上面的程序,结果就出错了

回复时间:2010-11-29 20:55:22
第4楼 ade
编辑 删除 引用

哦,呵呵,好.我给你检查一下,程序没有问题,就是web.xml里对Servlet的名字命名有点怪,叫/Hellowolrd,这个"/"感觉用的不好,没有含义,呵呵.可以直接去掉.

你运行出问题,估计主要原因估计在于访问地址不对,注意看看你的浏览器里的地址栏里,是不是url不对,因为你不是通过ide环境开发,而是自己写的接口,所以,eclipse映射的不对.通过eclipse在该类上右键运行Servlet的话,可能访问的是http://localhost:8080/yourproject/WEB-INF/classes/com/historycreator/servlettest/Helloworld.java,这样的路径,所以出现404错误

解决办法就是等重新启动服务器后,在浏览器里直接输入http://localhost:8080/yourproject/HelloServlet,应该就对了:)
注意将yourproject替换成你的项目名.

回复时间:2010-11-30 6:25:44
第5楼 hll
编辑 删除 引用

哦,呵呵,这下好啦,谢谢!

回复时间:2010-11-30 16:08:56
高级回复

操作选项: 评分 加精 解精 奖惩 设专题 设公告 解公告 固顶 总固顶 解固顶 结帖 解结帖 锁帖 解锁 移帖 删帖
  首页
Copyright 2006-2012 HistoryCreator.com Powered By: BBSGood 5
吉ICP备06005902号