0

Can I execute certain scriplets based on what links are use??

<b><pre>
    <a href="javascript:Admin()">New Admin Here</A>
    <a href="javascript:User()">New User Here</A>
    <script language="javascript"> 

       function Admin(){
           window.alert("In Admin");
          <%
          System.out.println("In admin");
          session.setAttribute("rrole","Admin");
          response.sendRedirect("Register.jsp");
          %>
       };
       function User(){
           alert("In User");
          <%
          System.out.println("In User");
          session.setAttribute("rrole","User");
          response.sendRedirect("Register.jsp");
          %>
       };

    </script>
</b></pre>

When I execute the code above.... All the scriplets get executed irrespective of the link i click

Chetan
  • 39
  • 6
  • well the reason for all code getting executed is because scriplets are compiled on server while javascript runs on browser (or any client capable of running javascript). – S4beR Mar 17 '16 at 15:38

2 Answers2

1

Short answer : No, you can't. Javascript is client side code that is "rendered" after the server response has been executed. Here's what you will get on your browser:

<b><pre>
    <a href="javascript:Admin()">New Admin Here</A>
    <a href="javascript:User()">New User Here</A>
    <script language="javascript"> 

       function Admin(){
           window.alert("In Admin");
       };
       function User(){
           alert("In User");
       };

    </script>
</b></pre>

And, before getting this response to the browser, on the server console you will get:

In admin
In User

rrole session attribute will have the User value since it is the last one put.

If you want to output something on the server console based on what is clicked, you should trigger another request to the server "informing it" of what the user clicked.

Hamdi Douss
  • 1,033
  • 1
  • 8
  • 17
0
I Understood your problem, you can try below method to get the session value at other page or jsp or servlet:

function func1(Req_status)
{ 

        var xmlHttp;

        if (window.XMLHttpRequest)
        {// code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp=new XMLHttpRequest();
        }
        else
        {// code for IE6, IE5
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange=function()
        {
            if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
                document.getElementById("Div1").innerHTML=xmlhttp.responseText;
            }
        }
        var Empl_id= document.upld_frm.empid.value;
        var url="FindRequestStatus";//"ak2.jsp" 
//in above servlet or jsp or any page can be called
        url=url+"?"+"&em="+Empl_id+"&r_s="+Req_status;
        //alert(url); In above line session values are being sent on called page..
        xmlhttp.open("GET",url,true);
        xmlhttp.send();
}


Just create a div inside body named Div1 and click hyperlink inside the div. Here you go.. you will get desired value returned by that page body results.

Regards,
AK