IT story

JavaScript에서 JSP 변수 읽기

hot-time 2020. 12. 29. 07:56
반응형

JavaScript에서 JSP 변수 읽기


JavaScript에서 JSP 변수를 읽고 액세스하려면 어떻게해야합니까?


alert("${variable}");

또는

alert("<%=var%>");

또는 전체 예

<html> 
<head>
<script language="javascript"> 

function access(){ 
  <% String str="Hello World"; %>
   var s="<%=str%>"; 
   alert(s); 
} 

</script> 
</head> 

<body onload="access()"> 
</body> 

</html>

참고 : 입력을 렌더링하기 전에 삭제하면 많은 XSS 가능성이 열릴 수 있습니다.


내가 아는 한 가장 깨끗한 방법 :

  1. HTML 요소의 data- * 속성에 JSP 변수 추가
  2. 그런 다음 필요한 경우 Javascript를 통해이 값을 읽습니다.

이 SO 페이지의 현재 솔루션에 대한 내 의견 : 실제 자바 스크립트 코드 내에서 자바 스크립 릿을 사용하여 "직접"JSP 값을 읽는 것이 아마도 가장 역겨운 일일 것입니다. 토하고 싶어요. ㅋ. 진지하게, 그것을하지 마십시오.

JSP가없는 HTML 부분 :

<body data-customvalueone="1st Interpreted Jsp Value" data-customvaluetwo="another Interpreted Jsp Value">
    Here is your regular page main content
</body>

JSP를 사용할 때의 HTML 부분 :

<body data-customvalueone="${beanName.attrName}" data-customvaluetwo="${beanName.scndAttrName}">
    Here is your regular page main content
</body>

자바 스크립트 부분 (단순함을 위해 jQuery 사용) :

<script type="text/JavaScript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.js"></script>
<script type="text/javascript">
    jQuery(function(){
        var valuePassedFromJSP = $("body").attr("data-customvalueone");
        var anotherValuePassedFromJSP = $("body").attr("data-customvaluetwo");

        alert(valuePassedFromJSP + " and " + anotherValuePassedFromJSP + " are the values passed from your JSP page");
});
</script>

그리고 여기에 jsFiddle이 있습니다. http://jsfiddle.net/6wEYw/2/

자원:


HTML 문서에서 JavaScript에 대해 이야기하고 있다고 가정합니다.

JSP에 관한 한 텍스트를 출력하고 페이지에 관한 한 HTML 문서를 가져 오기 때문에 직접 할 수 없습니다.

You have to generate JavaScript code to instantiate the variable, taking care to escape any characters with special meaning in JS. If you just dump the data (as proposed by some other answers) you will find it falling over when the data contains new lines, quote characters and so on.

The simplest way to do this is to use a JSON library (there are a bunch listed at the bottom of http://json.org/ ) and then have the JSP output:

<script type="text/javascript">
    var myObject = <%= the string output by the JSON library %>;
</script>

This will give you an object that you can access like:

myObject.someProperty

in the JS.


   <% String s="Hi"; %>
   var v ="<%=s%>"; 

First of all java script is client side scripting language while jsp is server side language you cant access, process any variable of client side language at server side without sending request to server only after request received at server you are able to access client side language variables so there is only way to go through request

another thing is that "How to send these variable to server" there is two option... Either use hidden field Or user window.location object of js......

`window.location.replace("home.jsp?nm="+v);`
`<%String name=request.getParameter("nm");%>`

window.location.href("home.jsp?nm="+v);
<%String name=request.getParameter("v");%>

then you are able to access client side data at jsp

ReferenceURL : https://stackoverflow.com/questions/4803906/reading-a-jsp-variable-from-javascript

반응형