1

JSP ファイルで次のコードを使用していますが、隠しフィールドの値が送信されていないことがわかります

<form action="/processor/RequestActivityByCsv" method="post" enctype="multipart/form-data">
<div class="inputDiv">
   <h5>comma delimited file: <input type="file" name="file"/></h5>
   <input name="csrfToken" type="hidden" value="<%=CryptoUtils.generateCsrfToken()%>" />
   <input type="submit" value="upload" class="btn btn-primary"/>
</div>
</form>

ページソースでは、これは次のようになります。

<form action="/processor/RequestActivityByCsv" method="post" enctype="multipart/form-data">
      <div class="inputDiv">
         <h5>comma delimited file: <input type="file" name="file"/></h5>
         <input name="csrfToken" type="hidden" value="t5ipRVFNIP83IUh5NCf7PiTp4mM2kBFVdHjqwlGx7PI=" />
         <input type="submit" value="upload" class="btn btn-primary"/>
      </div>
 </form>

私がここに欠けているかもしれない明らかなものは何ですか?

4

2 に答える 2

2

を使用して、隠しフィールドと他のすべてのフィールド値を取得できます

String value = request.getParameter("fieldname").toString();

フィールドnaの非表示の値を取得する場合

String csrfToken= request.getParameter("csrfToken").toString();

更新 2

index.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <form action="test.jsp" method="get">
        <input type="hidden" name="csrfToken" id="csrfToken"  value="t5ipRVFNIP83IUh5NCf7PiTp4mM2kBFVdHjqwlGx7PI=" />
        <input type="submit" value="sumbit"/>
        </form>
    </body>
</html>

test.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <%
        String csrfToken= (String)request.getParameter("csrfToken");
        out.print(csrfToken);
        %>
    </body>
</html>

出力

t5ipRVFNIP83IUh5NCf7PiTp4mM2kBFVdHjqwlGx7PI=

于 2013-05-17T04:09:12.847 に答える
0

はい、私は以前にこの問題に直面しました。

これを試して :-

<form name="frmfileupload" action="/processor/RequestActivityByCsv" method="post" enctype="multipart/form-data">
<div class="inputDiv">
   <h5>comma delimited file: <input type="file" name="file"/></h5>
   <input name="csrfToken" type="hidden" value="<%=CryptoUtils.generateCsrfToken()%>" />
   <input type="button" value="upload" onclick="funSubmit()" class="btn btn-primary"/>
</div>
</form>

Java スクリプトを使用してフォームを送信します:-

<script >
 function funSubmit(){

    //You can do javascript validation here 
    var val=document.frmfileupload.csrToken.value;
    document.frmfileupload.action="<%=request.getContextPath()%>/processor/RequestActivityByCsv?csrToken="+val;
    document.frmfileupload.submit();

}

</script>

上記の Java スクリプトでは、URL を使用してトークン値を送信しています。

それがあなたを助けることを願っています。

于 2013-05-17T04:28:23.003 に答える