JSP+Servlet编译出错问题
源代码如下:
UserLogin.jsp
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>User Login</title>
</head>
<body><center>
<form action="/UserLoginServlet" method="POST">
用户:
<input type="text" name="userid"><br/>
密码:
<input type="password" name="password"><p>
<input type="submit" value="提交">
<input type="reset" value="取消">
</form></center>
</body>
</html>
UserLoginServlet.java
import java.io.*;
import java.net.*;
import java.sql.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class UserLoginServlet extends HttpServlet {
/** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
String userid = request.getParameter("userid");
String password = request.getParameter("password");
Connection con;
Statement stmt;
ResultSet rs;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:sql","","");
stmt = con.createStatement();
rs = stmt.executeQuery("select * from user_info");
while (rs.next()) {
if ((userid.equals(rs.getString("userid"))) &&
(password.equals(rs.getString("password")))) {
RequestDispatcher dis=request.getRequestDispatcher("/Main.jsp");
dis.forward(request,response);
} else {
RequestDispatcher dis=request.getRequestDispatcher("/UserLogin.jsp");
dis.forward(request,response);
}
}
} catch (Exception e) {
e.printStackTrace();
}
out.close();
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/** Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/** Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/** Returns a short description of the servlet.
*/
public String getServletInfo() {
return "Short description";
}
// </editor-fold>
}
这些代码实现的是:从JSP运行现实登陆页面,输入存在于数据库中的用户名和密码后,提交给Servlet处理。运行成功的话,会跳转到Main.jsp这个欢迎页面。可是我编译UserLogin.jsp后,输入用户名和密码后(于数据库中的正确相匹配)却提示如下错误:
HTTP Status 404 - /UserLoginServlet
--------------------------------------------------------------------------------
type Status report
message /UserLoginServlet
description The requested resource (/UserLoginServlet) is not available.
--------------------------------------------------------------------------------
Apache Tomcat/5.5.9
请各位帮忙看看,是哪里出错了。我个人感觉,应该是JSP没有连接好Servlet的问题,可是不知道哪里改。
问题得到解决,立即给分!