如何解决我的登录servlet页面出现问题
| 我的网站遇到问题,我尝试让用户输入用户名和密码登录到首页,但这显示了此错误 HTTP状态404-请求的资源()不可用 看来html页面没有从servlet得到任何结果。我不确定,但是有人可以帮助我并告诉我我所缺少的吗? 这是我的servlet:import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
public class enter extends HttpServlet {
private Connection myCon;
private PreparedStatement myStmt;
@Override
public void init() {
System.out.println(\"init\");
try {
Class.forName(\"com.mysql.jdbc.Driver\").newInstance();
}
catch (Exception e) {
}
try {
System.out.println(\"connecting\");
myCon = DriverManager.getConnection (\"jdbc:mysql://localhost/auk\",\"root\",\"password\");
}
catch (SQLException e) {
}
}
protected void processRequest(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException,SQLException {
response.setContentType(\"text/html;charset=UTF-8\");
ResultSet result;
PrintWriter out = response.getWriter();
String query,colName,dat,user;
int numCols,index;
ResultSetMetaData resultMd;
query = \"Select Pass from user where Username=?\";
try {
myStmt = myCon.prepareStatement(query);
}
catch (Exception e) {
}
user=request.getParameter(\"user\");
myStmt.setString(1,user);
result=myStmt.executeQuery();
String userpass=result.getString(1);
out.println (\"userpass selected from the table is = \"+userpass);
response.setContentType(\"text/html\");
out.println(\"<html>\");
out.println(\"<head><title>JDBCServlet</title></head>\");
out.println(\"<body>\");
out.print(\"<p><b>The query is: </b>\" + query + \"</p>\");
try {
result = myStmt.executeQuery(query);
resultMd = result.getMetaData();
numCols = resultMd.getColumnCount();
out.println(\"<table border>\");
out.println(\"<caption> <b> Query Results </b> </caption>\");
out.println(\"<tr>\");
out.print(\"<th> Welcome \" + user + \" </th>\");
for (index = 1; index <= numCols; index++) {
colName = resultMd.getColumnLabel(index);
out.print(\"<th>\" + colName + \"</th>\");
}
out.println(\"</tr>\");
while (result.next()) {
out.println(\"<tr>\");
for (index = 0; index < numCols; index++) {
dat = result.getString(index + 1);
out.println(\"<td>\" + dat + \"</td>\");
}
out.println(\"</tr>\");
}
out.println(\"</table>\");
}
catch (Exception e) {
e.printStackTrace();
}
out.println(\"</body></html>\");
}
@Override
protected void doGet(HttpServletRequest request,IOException {
try {
processRequest(request,response);
} catch (SQLException ex) {
Logger.getLogger(enter.class.getName()).log(Level.SEVERE,null,ex);
}
}
@Override
protected void doPost(HttpServletRequest request,ex);
}
}
@Override
public String getServletInfo() {
return \"Short description\";
}
}
解决方法
该错误仅表示没有任何内容在监听URL。
因此,URL完全是错误的(区分大小写!),或者Servlet根本没有监听该URL,或者Servlet无法启动。很难根据目前给出的信息来判断。您需要验证浏览器地址栏中的URL,ѭ1中的servlet映射以及服务器启动日志。
与具体问题无关,分配昂贵的DB资源(例如ѭ2)并作为servlet的实例变量是一个非常糟糕的主意。您应该在同一方法内的最短范围内打开和关闭这些资源。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。