从同一个java类调用不同的jsp文件

时间:2012-03-19 08:00:06

标签: jsp

我正在创建一个简单的网络应用程序,它有一个jsp登录页面。在验证凭证后,我使用servlet的doPost方法获取参数。现在我将这些值传递给一个简单的java类(而不是servlet),然后使用JDBC技术返回一个字符串,该字符串将正确的密码/错误的密码/无效的用户名返回给servlet。现在从servlet我调用一个jsp,它将在屏幕上打印字符串。

工作正常。现在我想从我的java类本身调用3个jsp。例如,在if()块中正确的密码id就像调用一个名为correct.jsp的jsp,它已经有了在屏幕上打印“正确密码”的代码。同样。

你能建议我如何从java file.i调用jsp只需要调用jsp并加载它。无需使用jsp文件进行任何修改。

由于

1 个答案:

答案 0 :(得分:1)

这不是正确的做法。您将Java数据库访问类与JSP / Servlet API紧密耦合。您的Java数据库访问类应返回合理/可重用的结果和/或抛出合理的异常。你应该在servlet中这样做。

E.g。

try {
    User user = userService.find(username, password);

    if (user == null) {
        response.sendRedirect("wronglogin.jsp");
    } else {
        request.getSession().setAttribute("user", user);
        response.sendRedirect("correctlogin.jsp");
    }
} catch (SQLException e) {
    response.sendRedirect("databaseerror.jsp");
    e.printStackTrace();
}

如果你使用一个相同的JSP来有条件地显示错误消息而不是显示硬编码消息,并且如果必要的话,让servletcontainer的默认错误页面机制根据{{1来处理异常“,顺便说一下也会容易得多。在<error-page>中。如果您在登录表单所在的同一JSP页面中直接显示消息,那么它也将更加用户友好,以便最终用户无需导航回登录表单。

E.g。

web.xml

另见: