1

我正在编写一个类来检查 MySQL 数据库中的登录名和密码。填写的表单转到一个 .jsp 文件,然后我想在这个 .jsp 中导入该类以执行操作。

课程是这样的:

import import java.sql.*;

public class TestQuery {   

    public void logging in() {

    String user = request.getParameter("user");
    String passwd = request.getParameter("passwd");
    Connection C = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb?user=root&password=foo");

    ResultSet rs = stm.executeQuery("SQL QUERY");
    if (rs == NULL) {
        response.sendRedirect("LoginScreen.jsp");
    } else {
        switch (rs.getInt("id")) {
        case 1:
            response.sendRedirect("foo1.jsp");
            break;
        case 2:
            response.sendRedirect("foo2.jsp");
            break;
        case 3:
            response.sendRedirect("foo3.jsp");
            break;
        default:
            response.sendRedirect("LoginScreen.jsp");
                }
            }
        }
    }

但是后来我收到消息请求无法解决响应无法解决等。

我究竟做错了什么?这是执行此操作的最佳方法吗?

4

3 回答 3

6

您的课程必须扩展HttpServlet.

public class TestQuery extends HttpServlet {
    // ...
}

doGet()您必须根据请求方法或doPost()根据请求方法执行该作业。和HttpServletRequest可用作HttpServletResponse方法参数。

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // ...
}

由于这相当琐碎,您似乎并没有真正阅读过任何 JSP/Servlet 书籍/教程。我强烈建议在继续之前这样做。

也可以看看:

于 2012-06-11T15:09:29.563 回答
0

我假设您正在实例化此类并从 JSP 调用您的方法。

请求和响应对象在 JSP 中自动声明。您需要将请求和响应参数从 JSP 传递到您的方法中。

于 2012-06-11T15:12:09.723 回答
0

文档来看,这意味着您可以request在您的 jsp 页面中使用(或通过实现 HTTpServelt 并使用 doPost 或 get 方法的 servlet),但不能在其他类中使用!

隐式对象

JSP 技术使任何 JSP 页面都可以使用一组隐式对象。这些是由 Web 容器自动创建并允许与底层 servlet 环境交互的 Java 对象。

下面列出的隐式对象可用。有关可用于这些对象的方法的信息,请参阅 Sun Microsystems Javadoc 中提到的类和接口。

这是 JSP 页面实现类的一个实例,在页面翻译时创建。页面实现类实现接口javax.servlet.jsp.HttpJspPage。请注意,在 JSP 页面中 page 与 this 是同义词。

要求

这表示一个 HTTP 请求,并且是实现 javax.servlet.http.HttpServletRequest 接口的类的实例,该接口扩展了 javax.servlet.ServletRequest 接口。

于 2012-06-11T15:12:48.133 回答