JSP-无法从其他JSP页面调用java变量?

JSP-无法从其他JSP页面调用java变量?,java,jsp,Java,Jsp,我有两个JSP页面。其中一个是callvalidate.jsp,代码如下: String username = request.getParameter("username"); String password = request.getParameter("password"); String referrerURL = request.getParameter("referrerURL");

我有两个JSP页面。其中一个是call
validate.jsp
,代码如下:

 String username = request.getParameter("username");
                String password = request.getParameter("password");
                String referrerURL = request.getParameter("referrerURL");

                if(userFacade.validate(username, password) == false){
                    throw new Exception(userFacade.getMsg());
                }

                // Extract the Auser object of the user and stores it in the HttpSession object
                Auser auser = userFacade.get(username, true);
                if (auser == null) {
                    throw new Exception("Invalid user.");
                }

                String usertype = auser.getAusertype();
我有另一个JSP名为
email.JSP
,我想在
validate.JSP

<%@include file = "../../../login/validate.jsp" %>

   Auser auser = userFacade.get(username, true);

Auser-Auser=userFacade.get(用户名,true);
我的include文件目录绝对正确,但是它无法在这个JSP中解析
username

有人能指出我犯的任何错误吗

编辑:


发现
username
在try-catch块中,如果我将其放在外部,我可以调用变量。有没有办法在另一个jsp的try-catch中调用它?

您提到删除try/catch块“修复”了这个问题。如果是这种情况,那么只需在块外部定义变量,否则范围仅限于块内部

String username = "";
try {
    username = request.getParameter("username");
    ...

} catch (...)

这样做有意义吗?

您提到删除try/catch块“修复”了这个问题。如果是这种情况,那么只需在块外部定义变量,否则范围仅限于块内部

String username = "";
try {
    username = request.getParameter("username");
    ...

} catch (...)


像这样的东西有意义吗?

对您来说,学习一点JSP似乎是值得的,因为JSP附带了几种技术。也许是示范课程之类的。(意思很好。)我的技术怎么会错呢?它错了,因为您没有在jsp中编写java代码。可以将用户对象放入会话中,等等。这可能不会更好,但例如,它可以减少数据库的使用。或者您可以使用一种方法(
)学习一些JSP似乎很有价值,因为JSP附带了几种技术。可能是一些演示课程之类的。(意思很好。)我的技术怎么会错呢?这是错的,因为你没有在jsp中编写java代码。你可以将一个用户对象放入会话中,等等。这可能不是更好,但例如减少了数据库的使用。或者你可以使用一种方法(
它确实有帮助,但当我执行JSP时,它会抛出一个错误,表示变量已经存在。您可以共享您得到的堆栈跟踪吗?我很快尝试了一个类似的构造,并成功地运行了它。正如其他人提到的,可能确实最好完全避免这种设计。原因是validate.JSP是一个捕获“用户名”的登录页面在另一个jsp页面的某个地方,我需要获得与我尝试调试的用户名相同的值,但它一直向我的调用方页面返回null值,这是为什么?似乎当我使用include标记时,它调用validate.jsp再次运行到用户名返回null。有没有一种方法可以在不运行valida的情况下获取用户名的值但是我需要那个变量值。它确实有帮助,但是当我执行jsp时,它会抛出一个错误,说变量已经存在。你能分享你得到的堆栈跟踪吗?我很快尝试了一个类似的构造,我成功地运行了它。正如其他人提到的,可能确实最好避免这种设计。原因是启用是因为validate.jsp是一个捕获“用户名”的登录页面在另一个jsp页面的某个地方,我需要获得与我尝试调试的用户名相同的值,但它一直向我的调用方页面返回null值,这是为什么?似乎当我使用include标记时,它调用validate.jsp再次运行到用户名返回null。有没有一种方法可以在不运行valida的情况下获取用户名的值但是我需要这个变量值。