我做李刚老师的例子:
代码:
D:\myWorkspace\test\WEB-INF\src\lee\LoginServlet.javapackage lee;import javax.servlet.ServletException;
import javax.servlet.ServletContext;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.*;import java.io.PrintWriter;
import java.io.IOException;
import java.sql.*;public class LoginServlet extends HttpServlet {
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException {
String errMsg = "";
RequestDispatcher rd;//RequestDispatcher is imported
String username = request.getParameter("username");
String pass = request.getParameter("pass");
try {
DbDao dd = DbDao.instance("com.mysql.jdbc.Driver", "jdbc:mysql://localhost:3306/cara", "root", "stimpy");
ResultSet rs = dd.query("select pass from user_table where name = '"+ username +"'");// ResultSet?
if (rs.next()) {
if (rs.getString("pass").equals(pass)) {
HttpSession session = request.getSession(true);
session.setAttribute("name", username);
rd = request.getRequestDispatcher("/welcome.jsp");//?
rd.forward(request, response);
} else {
errMsg += "your username and password are not fit";
}
} else {
errMsg += "your username does not exist, please register first";
}
} catch (Exception e) {
e.printStackTrace();
}

if (errMsg != null || !errMsg.equals("")) {
rd = request.getRequestDispatch("/login.jsp");
request.setAttribute("err", errMsg);
rd.forward(request, response);
}
}
}
编译:
C:\Users\hp2>javac -cp "D:\myWorkspace\test\WEB-INF\src";"E:\software\apache-tom
cat-6.0.26\lib\servlet-api.jar";"E:\software\apache-tomcat-6.0.26\lib\jsp-api.ja
r" "D:\myWorkspace\test\WEB-INF\src\lee\LoginServlet.java"结果:
D:\myWorkspace\test\WEB-INF\src\lee\LoginServlet.java:38: cannot find symbol
symbol  : method getRequestDispatch(java.lang.String)
location: interface javax.servlet.http.HttpServletRequest
                        rd = request.getRequestDispatch("/login.jsp");
                                    ^
1 error这是还缺什么包吗?我以为-cp的class够了
我很菜,请帮忙看一下吧!

解决方案 »

  1.   

    没用过。你很牛。我都用IDE工具。你还这么前卫。
      

  2.   

    方法名写错了是getRequestDispatcher(); 你那返回login.jsp的地方少写了er
      

  3.   

    所以request根本就不存在getRequestDispatch()这个方法,以致报错的吧
      

  4.   

    java还是用IDE吧,不像c什么的,工具使用的熟练程度也是水平和效率的体现
      

  5.   

    加入以下代码
    import javax.servlet.RequestDispatcher;修改以下代码
    rd = request.getRequestDispatch("/login.jsp");
    RequestDispatcher rd = request.getRequestDispatch("/login.jsp");