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 پاسخ 567 بازدید
+1 امتیاز
1 پاسخ 3.7هزار بازدید
0 امتیاز
1 پاسخ 281 بازدید
سوال شده 6 سال قبل در برنامه نویسی توسط HA (347 امتیاز)
0 امتیاز
1 پاسخ 1.0هزار بازدید
+1 امتیاز
2 پاسخ 683 بازدید
سوال شده 7 سال قبل در برنامه نویسی توسط ssss (467 امتیاز)
0 امتیاز
1 پاسخ 265 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط کشکولی (30 امتیاز)
0 امتیاز
0 پاسخ 246 بازدید
0 امتیاز
1 پاسخ 7.9هزار بازدید
0 امتیاز
2 پاسخ 1.0هزار بازدید
+1 امتیاز
1 پاسخ 521 بازدید
...