2015-12-23 11 views
6

मैं ब्राउज़र के लिएजेएसपी में यूआरएल को छिपाने/संशोधित करने के लिए कैसे?

एंकर टैग नए टैब में एक फ़ाइल खोलने के लिए निम्न पंक्ति का उपयोग कर रहा:

<a id="view" target="_blank" class="btn btn-info btn-xs" href="<%=rs.getString(2)%>> 

कहाँ rs.getString(2) फ़ाइल का प्रतिनिधित्व करता है

इसे सही ढंग से काम करता है खोले जाने के लिए, लेकिन समस्या यह है यह फ़ाइल का पूरी तरह से योग्य पथ प्रदर्शित करता है, (जहां फ़ाइल संग्रहीत होती है) सर्वर

enter image description here

मैं बेहतर सुरक्षा के लिए यूआरएल छिपाना चाहता हूं, बल्कि मैं केवल "संलग्न-प्रूफ" को स्ट्रिंग

के रूप में प्रदर्शित करना चाहता हूं, क्या यह संभव है, कोई विचार?

+1

"सुरक्षा" भले ही आप यह कर की तरह एक चीज नहीं नहीं होगा। – Tiny

+0

window.open ('/ pageaddress.html', 'winname', 'निर्देशिका = नहीं, शीर्षक पट्टी = नहीं, टूलबार = नहीं, स्थान = नहीं, स्थिति = नहीं, मेनूबार = नहीं, scrollbars = नहीं, resizable = नहीं, चौड़ाई = 400, ऊंचाई = 350 '); आप जावास्क्रिप्ट का उपयोग अपने लिए पेज खोलने के लिए कर सकते हैं और इसमें उपरोक्त कोड – usman

+0

'window.open' ईवेंट क्रॉस-ब्राउज़र में पता छिपाएगा। मुझे लगता है, सामग्री प्रदर्शित करने के लिए किसी प्रकार के लाइट-बॉक्स का उपयोग करना बेहतर होगा। http://stackoverflow.com/questions/16603308/hiding-address-bar-in-all-browsers#answer-16603781 –

उत्तर

1

यहां एक बहुत ही सरल समाधान है। विचार एक साधारण जीईटी के बजाय एक फॉर्म पोस्ट करना है।

<head> 
    <script type="text/javascript"> 
     function openFile(fileName) { 
      document.getElementById('filename').value = fileName; 
      document.getElementById('viewform').submit(); 
     } 
    </script> 
</head> 
<body> 
    <a id="view" class="btn btn-info btn-xs" href="javascript:openFile('<%=rs.getString(2)%>');">click me</a> 

    <form id="viewform" action="Attached-Proof" target="_blank" method="post"> 
     <input type="hidden" name="filename" id="filename" value=""/> 
    </form> 
</body> 

एक सादा पुराना फॉर्म पोस्ट अभी भी फ़ाइल पथ दिखाने जा रहा है। इसे रोकने के लिए, सर्वर पक्ष पर, आप फ़ाइल को पढ़ने के लिए संसाधन को परिभाषित करते हैं और इसे प्रतिक्रिया पर वापस लिखते हैं। एक सरल सर्वलेट नौकरी कर सकता है।

web.xml:

<servlet> 
    <servlet-name>view-file</servlet-name> 
    <servlet-class>com.example.ViewFileServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>view-file</servlet-name> 
    <url-pattern>/Attached-Proof</url-pattern> 
</servlet-mapping> 

और सर्वलेट कुछ इस तरह दिखेगा:

package com.example; 

import java.io.File; 
import java.io.FileInputStream; 
import java.io.IOException; 
import java.io.InputStream; 

import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

public class ViewFileServlet extends HttpServlet 
{ 

    @Override 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException 
    { 
     response.setContentType("application/pdf"); 

     File file = new File(getServletContext().getRealPath(request.getParameter("filename"))); 

     InputStream is = null; 
     try { 
      is = new FileInputStream(file); 

      byte[] buffer = new byte[1024]; 

      int count; 
      while ((count = is.read(buffer)) > 0) 
      { 
       response.getOutputStream().write(buffer, 0, count); 
      } 

     } finally { 
      if (is != null) is.close(); 
     } 
    } 
} 
संबंधित मुद्दे