日期:2014-05-20  浏览次数:20845 次

重发:基础问题001(这么多人的回答,居然都错了,汗)
烦请先复制运行
郑重说明,这绝对不是路径问题,以下路径都试过了
ch7/doget_servlet
/ch7/doget_servlet
/ch7/WebContent/doget_servlet
ch7/WebContent/doget_servlet
/WebContent/doget_servlet
WebContent/doget_servlet
doget_servlet

注:我用的是 lomboz,我的项目名为“ch7”,web.xml和其他JSP页面都是放在 WebContent 文件夹中的

以下是书上的一段代码,但是我打了以后却没有出现该有的效果,请大家运行下,帮我看看错在哪里(我已经很仔细的同书上比对过了)

doget_form.html
HTML code
<html>
<head>
<title>测试doGet</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body>
<form action="/doget_servlet" method="get">
<table><tr><td>输入名称后提交:<input type="text" name="name">
</td></tr>
<tr><td><input type="submit" name="submit" value="确定"></td></tr>
</table>
</form>
</body>
</html>


web.xml
XML code
<?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 web-app_2_4.xsd"
    version="2.4">

  <display-name>Welcome to Tomcat</display-name>
  <description>
    JSP
  </description>
  <servlet>
    <servlet-name>DoGetTestServlet</servlet-name>
    <servlet-class>classes.DoGetTestServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>DoGetTestServlet</servlet-name>
    <url-pattern>/doget_servlet</url-pattern>
  </servlet-mapping>
</web-app>


package classes;
import javax.servlet.*;
import java.io.*;
import javax.servlet.http.*;

DoGetTestServlet 
Java code
public class DoGetTestServlet extends HttpServlet{

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws IOException, ServletException{
        request.setCharacterEncoding("gb2312");
        response.setContentType("text/html;charset=gb2312");
        PrintWriter out = response.getWriter();
        out.println("获得了以下的参数: name=<br>" + request.getParameter("name"));
        out.flush();
    }
}




最终效果应该显示"获得了以下的参数: name= <br>" + request.getParameter("name")
但是运行后的页面时出错。

------解决方案--------------------
这包名起的够有创意的。。谢谢啊!!

回去背诵servlet生命周期一百遍。哇哈哈!

把mapping去掉,你看容器启动的时候能构建么?

<servlet>
<servlet-name>DoGetTestServlet</servlet-name>
<servlet-class>com.web.DoGetTestServlet</servlet-class>
<load-on-startup>3</load-on-startup>
</servlet>
------解决方案--------------------
回去背诵servlet生命周期二百遍。



------解决方案--------------------
估计你报的是404吧,肯定是找不到Servlet了。把/去掉试试,遇到问题别急,慢慢找。
不过你的包名的确也不太合适
------解决方案--------------------
探讨
回去背诵servlet生命周期二百遍。




------解决方案--------------------