How can you tell if the user hit cancel during a download from a Java servlet? What seem to happen for me with IE, the output stream println() blocks. The used hit cancel, but is there a way to time this out or anything like that?
How can you tell if the user hit cancel during a download from a Java servlet?
3.2k views Asked by GC_ At
2
There are 2 answers
1
erickson
On
You won't be able to tell for sure. It depends on how your servlet container is implemented.
When the user hits "Cancel", the browser should close the socket. This will be detectable by the server, of course, but whether the server has the ServletOutputStream "plumbed" directly to the socket's OutputStream is implementation-dependent. If it does, an IOException will be raised the next time the servlet attempts to write data.
If the container buffers output, the servlet might just finish writing data and never know anything went amiss.
Related Questions in JAVA
- I need the BIRT.war that is compatible with Java 17 and Tomcat 10
- Creating global Class holder
- No method found for class java.lang.String in Kafka
- Issue edit a jtable with a pictures
- getting error when trying to launch kotlin jar file that use supabase "java.lang.NoClassDefFoundError"
- Does the && (logical AND) operator have a higher precedence than || (logical OR) operator in Java?
- Mixed color rendering in a JTable
- HTTPS configuration in Spring Boot, server returning timeout
- How to use Layout to create textfields which dont increase in size?
- Function for making the code wait in javafx
- How to create beans of the same class for multiple template parameters in Spring
- How could you print a specific String from an array with the values of an array from a double array on the same line, using iteration to print all?
- org.telegram.telegrambots.meta.exceptions.TelegramApiException: Bot token and username can't be empty
- Accessing Secret Variables in Classic Pipelines through Java app in Azure DevOps
- Postgres && statement Error in Mybatis Mapper?
Related Questions in SERVLETS
- java ee jdbc jstl servlet connection to db
- IOException parsing XML document from ServletContext resource What throws this exception in my SpringBoot RESTweb service?
- How can i connect my 4 objects in my jsp file so it can run perfectly
- Best Practice to skip URL pattern's from getting applied servlet filter
- How to accurately replace scripts / html before saving data from servlet to database
- Servlet not displaying data obtained from dao
- flutter Multipart file upload server side error: Unable to process parts as no multi-part configuration has been provided
- Read an image file using okhttp3.RequestBody in java and send it to client using HTTPServletResponse
- Unexpected servlet config parameter contextConfigLocation=<NONE>
- The servlets named [ClassName] and [com.example.ClassName] are both mapped to the url-pattern [/ClassName] which is not permitted
- How to Use an External JAR Offline in a Maven Project for Servlets Without Internet Access?
- session.invalidate() is sometimes not working and not destroying the session object. What should I do?
- Database ConnectionError
- In a web.xml, can the url-pattern of servlet-mapping containing more than one path component? (e.g. /path/to/*))
- How to update the resource property using the valuemap in the Sling servlet?
Related Questions in DOWNLOAD
- Non-Expiring Direct Link Like When Clicked It Will Download Without Landing Any Page
- download all pdf files from website doesn't support wildcard
- Create the original download link after checking the domain
- How to Properly Interrupt the Download of a Background Image Using JavaScript
- ftp download for small datasets works but for more than 300KB not
- I need to have a look at all my private pine scripts and filter the scripts for certain words in TRADINGVIEW
- Renaming a file - Google API direct download link
- find out filename from URL
- How to download a file using a button on a ribbon on a Model Driven App with C# Plugins?
- JavaScript anchor file download - override file name from Content-Disposition header
- Node.js/Express File Download Returns 0-Byte Plaintext Files
- Downloaded file in Angular Application saved as Unconfirmed XXXXX.crdownload
- Replace urllib.request urlopen in PHP
- string PNG conversion Returns Blurry Image
- Java Selenium - cannot download image from Chrome browser and save as .png file
Related Questions in REQUEST-CANCELLING
- Aborting previous requests of mutation function from useMutation of Apollo client in React causes request to never run
- CancelListener on Dialog Not Work Java Android? How to Use It?
- window.stop() in componentWillUnmount() cancels the requests made in componentWillMount() for components that are not yet mounted
- Investigate Canceled API Calls
- RestSharp response with http on https port ist cancelled by user
- Process Golang HTTP requests if client closes the connection or cancel requests
- React js use Abort controller outside useEffect
- How to know the object's type? Javascript
- Why this program stop running? Await exception handling and canceling issue
- Unhandled Rejection (AbortError): The operation was aborted
- axios cancellation caught inside of then() instead of catch()
- CORS ajax call fails despite of the appropriate Access-Control-Allow-* headers
- Cancel parallel process
- AddScoped dependency with a CancellationToke
- How to cancel task run by click on another cancel button in c#?
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Wrap
OutputStream#write(),#flush()and#close()in atry-catchblock onIOException. If caught, then it usually means that the enduser has aborted the request.To get a step further, you could also catch on a more servletcontainer-specific exception like
ClientAbortExceptionon Tomcat and clones (which is a subclass ofIOException), but this will make your webapp code unportable to other servletcontainers.Update: to come back on the blocking issue, you'd like to call
flush()after writing a single block of data. This will actually send the data to the client and causeIOExceptionwhen the underlying socket is closed.