一个关于servlet的问题,希望各位高手予以指教!!!

noratong 2003-08-30 09:51:38
小弟按书上的例子编写了一个servlet小程序,也按书上的要求把它编译的class文件放到了一个文件夹下的web-inf文件夹下的classes文件夹下,也在web-inf文件夹下建立了相应的xml文件,然后就按书上说的方式在浏览器上访问(http://127.0.0.1:8080/新建文件夹/servlet/XXXX),但是为什么还是出来的404的错误,而不是书上说的结果呢???小弟实在是搞不懂?????请高手们指点一二.(小弟用的就只有Tomcat4.1)
在此先谢谢了!
...全文
35 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
kinoviti 2003-09-01
  • 打赏
  • 举报
回复
XML我不熟悉,不过首先最好不要用“新建文件夹”;其次
你的程序中表单(form)明明用的是Get方法,那么再servlet中间怎么重载doPost()方法,
我不知道你的doGet()方法是不是继承了doPost()方法。
比如你看看你的程序是不是有一段代码这样写的:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException
{
doPost();
}
还有你这程序干什么用的? 就是为了显示以下如何从Session中取atrribute么。
那么既然你用了重定向(encode)就是说你的程序默认不接受cookie记载sessionID,那么
怎么不用enCodeRedirect传递你的session ID,如果不get sessionID 我就不明白了。这个session中的属性是怎么传递的。
(我也是同林的菜鸟 哈 一起研究吧)
臧忠超 2003-09-01
  • 打赏
  • 举报
回复
总觉得 \新建文件夹\ 很怪异
sheisman 2003-09-01
  • 打赏
  • 举报
回复
servlet能编译就没什么问题,应该是没有配置到你的xml文件
noratong 2003-09-01
  • 打赏
  • 举报
回复
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;

public class AttributeServlet extends HttpServlet
{
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException
{
HttpSession session = request.getSession();

String name = request.getParameter("attrib_name");
String value = request.getParameter("attrib_value");
String remove = request.getParameter("attrib_remove");

if (remove != null && remove.equals("on"))
{
session.removeAttribute(name);
}
else
{
if (name != null && name.length() >0 && (value != null) && (value.length() > 0))
{
session.setAttribute(name,value);
}
}

response.setContentType("text/html");
PrintWriter out = response.getWriter();

out.println("<HTML>");
out.println("<META HTTP-EQUIV=\"Pragma\"COUNT=\"no-cache\">");
out.println("<HEAD><TITLE>Session Attributes</TITLE></HEAD>");
out.println("<BODY>");
out.println("<H1>Session Attributes</H1>");
out.println("Enter name and value of an attribute");

String url = response.encodeURL("/session/servlet/attributes");
out.println("<FORM ACTION=\"" + url + "\"METHOD=\"GET\">");

out.println("Name:");
out.println("<INPUT TYPE=\"text\"SIZE=\"10\"NAME=\"attrib_name\">");
out.println("Value:");
out.println("<INPUT TYPE=\"text\"SIZE=\"10\"NAME=\"attrib_value\">");

out.println("<BR><INPUT TYPE=\"checkbox\"NAME=\"attrib_remove\"value=\"on\">Remove");
out.println("<input type=\"submit\" name=\"update\"value=\"Update\">");
out.println("</FORM>");
out.println("<HR>");
out.println("Attributes in this Session");

Enumeration e = session.getAttributeNames();
while (e.hasMoreElements())
{
String att_name = (String)e.nextElement();
String att_value = (String)session.getAttribute(att_name);

out.println("<BR><B>Name:</B>");
out.println(att_name);
out.println("<B>Value:</B>");
out.println(att_value);
}

out.println("</BODY></HTML>");
out.close();
}
}
KillAllError 2003-09-01
  • 打赏
  • 举报
回复
看看你的发布文件怎么写的?
贴出来!
http://127.0.0.1:8080/新建文件夹/servlet/XXXX
怪怪的,一般发布为ServletName之后
http://127.0.0.1:8080/ServletName
就行了
noratong 2003-08-31
  • 打赏
  • 举报
回复
我的新建文件夹就是一个虚拟目录而已.
bigbigstone 2003-08-30
  • 打赏
  • 举报
回复
你那新建文件夹是啥东西呀
难道是你的WEB应用名不成?

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧