【发布时间】:2014-04-07 23:25:16
【问题描述】:
我已经为登录页面编写了一个 servlet 程序..我正在使用 tomcat 服务器...在我在服务器上运行后出现上述错误... 下面是我的 servlet 代码。
包演示;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class LoginServlet
*/
public class LoginServlet extends HttpServlet {
static private String dbUrl="jdbc:mysql://localhost:3306/employee";
static private String dbUn="root";
static private String dbPwd="root";
static private Connection ConObj;
static private Statement StmtObj;
static private ResultSet RsObj;
public void service(HttpServletRequest request,HttpServletResponse response)throws IOException
{
try {
Class.forName("com.mysql.jdbc.driver");
ConObj=DriverManager.getConnection(dbUrl, dbUn, dbPwd);
StmtObj=ConObj.createStatement();
response.setContentType("text/html");
PrintWriter out=response.getWriter();
out.write("<html><body>");
out.write("<h2>");
String ActLogName=request.getParameter("Logname");
String ActPwd=request.getParameter("Pwd");
String SqlQuery="select * from users where username='"+ActLogName+"' and password='"+ActPwd+"'";
RsObj=StmtObj.executeQuery(SqlQuery);
if(RsObj.next()==true)
{
String ExpLogName=RsObj.getString("username");
String ExpPwd=RsObj.getString("password");
if(ActLogName.equals(ExpLogName)&& ActPwd.equals(ExpPwd))
{
out.write("Login Success");
}
}
else
{
out.write("Login Failed");
}
out.write("</h2>");
out.write("</body></html>");
}
catch (ClassNotFoundException|SQLException exp) {
exp.printStackTrace();
}
finally{
try {
RsObj.close();
StmtObj.close();
ConObj.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
下面是我的html代码
<!DOCTYPE html>
<html>
<head>
<title>login page</title>
</head>
<body>
<form action="http://localhost:8080/FlipKart/loginpage">
LoginName :<input type="text" name="Logname"><br>
Password :<input type="password" name="Pwd"><br>
<input type="submit" value="Login">
<input type="button" value="cancel">
</form>
</body>
</html>
下面是我的 web.xml 代码
<web-app>
<servlet>
<servlet-name>loginserv</servlet-name>
<servlet-class>LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>loginserv</servlet-name>
<url-pattern>/loginpage</url-pattern>]
</servlet-mapping>
</web-app>
谁能帮我解决这个问题.. 提前谢谢..:)
【问题讨论】:
-
你想点击哪个网址?
-
你需要确保部署在Tomcat上的应用被命名为
FlipKart。 -
另一件事是,如果您访问的页面和操作中的 servlet 托管在同一位置,您应该在表单标记的操作属性中使用相对 URL。
-
localhost:8080/FlipKart/login.html...i 正在输入用户名和密码...一旦我输入它将重定向到 localhost:8080/FlipKart/LoginServlet..and 出现错误..
-
这不会解决您的问题,但您通常不应覆盖服务方法。您应该根据需要覆盖 doGet、doPost、doPut 和 doDelete。