我可以在javascript函数中使用scriplet吗?

时间:2016-03-17 15:12:26

标签: javascript html jsp scriplets

我可以根据使用的链接执行某些划线吗?

<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>

当我执行上面的代码时....所有的scriplet都会被执行,无论我点击链接

2 个答案:

答案 0 :(得分:1)

简短回答:不,你不能。 Javascript是在执行服务器响应后“呈现”的客户端代码。 以下是您在浏览器上的内容:

<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>

并且,在获得对浏览器的响应之前,在服务器控制台上,您将获得:

In admin
In User

rrole会话属性将具有User值,因为它是最后一个值。

如果您想根据点击的内容在服务器控制台上输出内容,您应该向服务器触发另一个请求“告知”用户点击的内容。

答案 1 :(得分: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