request.getParameter无法在类中解析

时间:2012-06-11 15:07:44

标签: java jsp servlets

我正在编写一个类来检查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");
                }
            }
        }
    }

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

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

3 个答案:

答案 0 :(得分:6)

您的课程必须延长HttpServlet

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

您必须在doGet()doPost()中执行作业,具体取决于请求方法。 HttpServletRequestHttpServletResponse可用作方法参数。

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

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

另见:

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

  

隐含物品

     

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

     

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

     

     

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

     

请求

     

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