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 پاسخ 692 بازدید
+1 امتیاز
1 پاسخ 52.1هزار بازدید
0 امتیاز
1 پاسخ 380 بازدید
سوال شده 6 سال قبل در برنامه نویسی توسط HA (347 امتیاز)
0 امتیاز
1 پاسخ 1.4هزار بازدید
+1 امتیاز
2 پاسخ 831 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط ssss (467 امتیاز)
0 امتیاز
1 پاسخ 372 بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط کشکولی (30 امتیاز)
0 امتیاز
0 پاسخ 349 بازدید
0 امتیاز
1 پاسخ 8.1هزار بازدید
0 امتیاز
2 پاسخ 1.1هزار بازدید
+1 امتیاز
1 پاسخ 670 بازدید
...