我正在编写一个类来检查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");
}
}
}
}但是,我得到的消息请求不能被解析,响应不能被解析等等。
我做错了什么?这是最好的方法吗?
发布于 2012-06-11 15:09:29
您的类必须扩展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-11 15:12:09
我假设您正在实例化这个类并从JSP调用您的方法。
请求和响应对象在JSP中自动声明。您需要从JSP将请求和响应参数传递到您的方法中。
发布于 2012-06-11 15:12:48
在文档中,这意味着您可以在jsp页面中使用request (或者servlet通过实现HTTpServelt并使用doPost或get方法),但不能在其他类中使用!
隐式对象 JSP技术使任何JSP页面都可以使用一组隐式对象。--这些是由容器自动创建并允许与底层servlet环境交互的Java对象。 下面列出的隐式对象是可用的。有关这些对象可用方法的信息,请参阅中的指定类和接口。 页面 这是JSP页面实现类的一个实例,是在翻译页面时创建的。页面实现类实现接口javax.servlet.jsp.HttpJspPage。注意,在JSP页面中,页面与此同义词。 请求 这表示一个HTTP请求,是实现javax.servlet.http.HttpServletRequest接口的类的一个实例,该类扩展了javax.servlet.ServletRequest接口。
https://stackoverflow.com/questions/10982788
复制相似问题