selected
関連するリクエストパラメータの値がまったく同じである場合は、条件付きで出力するだけです。
<option value="<%=pm.getsmthing()%> <%=(pm.getsmthing().equals(request.getParameter("PID")) ? "selected" : "")%>><%=pm.getName()%></option>
セッションに保存しないでください。同じセッションのすべてのブラウザタブ/ウィンドウのすべてのページに影響し、「wtf?」が発生する可能性があります。エンドユーザーの経験。
具体的な問題とは関係なく、 JSPを書くのはかなり昔ながらの方法です。JSTLとELを学びましょう。コードは次のようになります。
<select name="PID" id="PID" style="min-width: 100px;">
<c:forEach items="${List}" var="pm">
<option value="${pm.smthing}" ${pm.smthing == param.PID ? 'selected' : ''}>${pm.name}</option>
<option value="-1">Select a Property</option>
</c:forEach>
</select>