0 امتیاز
قبل در برنامه نویسی توسط (242 امتیاز)

سلام. لطفا به کد زیر توجه کنید:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>Hello JSP!</h1>
        <%
          Integer number = (Integer) session.getAttribute("requestNumber");
          if (number == null) {
            number = 1;
          } else {
            number++;
          }
          session.setAttribute("requestN", number);
        %>
        <%=number%>
    </body>
</html>

صفحه JSP بالا بدون هیچ ایرادی اجرا می‌شود و مقدار session را نمایش می‌دهد. اما اگر صفحه JSP بالا را به صورت زیر بنویسیم:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>Hello JSP!</h1>
        <%
          Integer number = (Integer) session.getAttribute("requestNumber");
        %>
        <%=number%>
    </body>
</html>

با Exception مواجه می‌شویم.

سوال من این هست که خب برنامه خط به خط اجرا می‌شود. اما چرا در کد اول با اکسپشن مواجه نمی‌شیم؟ چون هنوز requestnumber در سشن ادد نشده. امکانش هست توضیح بدین؟ ممنون.

قبل توسط (186 امتیاز) 1 نشانه گذاری شده
ویرایش شده قبل توسط
با توجه به اینکه فایلهای jsp به servlet های متناظر تبدیل میشن. پیشنهاد من اینه که کد های تولید شده برای هر کدوم را هم بررسی کنید. احتمالا دلیل تفاوت رفتار جاوا توی هر کدوم از دو حالت براتون مشخص تر میشه.
این به عنوان یک ایده برای بررسی مشکل هست و راه حل مشکل نیست.
موفق باشید

سوالات مشابه

+1 امتیاز
1 پاسخ 685 بازدید
+1 امتیاز
1 پاسخ 52.1هزار بازدید
0 امتیاز
1 پاسخ 376 بازدید
سوال شده 6 سال قبل در برنامه نویسی توسط HA (347 امتیاز)
0 امتیاز
1 پاسخ 1.4هزار بازدید
+1 امتیاز
2 پاسخ 825 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط ssss (467 امتیاز)
0 امتیاز
1 پاسخ 367 بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط کشکولی (30 امتیاز)
0 امتیاز
0 پاسخ 343 بازدید
0 امتیاز
1 پاسخ 8.0هزار بازدید
0 امتیاز
2 پاسخ 1.1هزار بازدید
+1 امتیاز
1 پاسخ 663 بازدید
...