When you reassign a scripting variable in a scripting element (that is, a "scriptlet"), the change is not visible to the scoped attribute that is associated with this scripting variable.
If you must modify the value in a scriptlet, then
you should display the values with another (or the same) scriptlet. (Don't use out.println(); instead, write <%= job.getID() %> in place of <
jsp:getProperty>.)
Alternatively, you could write a custom tag that edits the scoped attribute (or modify the scoped attribute yourself in a scriptlet).
One advantage of using JSTL and "scoped variables" instead of scripting variables is that you avoid the split between variables and attributes, which can clearly be confusing.