Chương trình của bạn KHÔNG phải là máy tính để bàn/độc lập, vì đây là một servlet đang chạy trên máy chủ. Khi bạn chạy nó trong Eclipse bằng cách nhấn chuột phải và run as
->run on server
, Eclipse thực sự mở một trang web để hiển thị các kết quả. Do đó, chương trình của bạn bây giờ là một ứng dụng Web và Eclipse (hoặc trang nó mở ra) là ứng dụng khách. Khách hàng đang lưu thông tin bạn đã gửi, KHÔNG phải là chương trình của bạn. Hiểu rồi?
Tiêu đề content-disposition
chỉ có để đề xuất tên tệp tải xuống. Cài đặt trình duyệt xác định xem nó có mở một cửa sổ Lưu dưới dạng hay không. Bạn không thể kiểm soát điều đó.
Ví dụ: trong Google Chrome, trong Setting
/Advanced Setting
/Downloads
, có tùy chọn Ask where to save each file before downloading
. Chỉ khi tùy chọn này được chọn, nó sẽ mở hộp thoại bạn muốn. Nếu không, nó sẽ lưu nó ở một vị trí mặc định (cũng được xác định trong cài đặt trình duyệt). Các tùy chọn tương tự tồn tại cho tất cả các trình duyệt.
hãy cũng lưu ý rằng, tùy thuộc vào content-type
tiêu đề, trình duyệt sẽ cố gắng hiển thị nội dung, và không tải nó. Ví dụ, trình duyệt sẽ cố gắng hiển thị văn bản và html. Nhưng sau đó bạn có thể lực tải về bằng cách thiết lập các tiêu đề để một kiểu không thể hiển thị:
response.setContentType("application/octet-stream");
Trong trường hợp bạn không muốn tạo ra một ứng dụng Web: Kể từ khi chương trình của bạn chạy trên một máy chủ , nó chỉ đơn giản là gửi thông tin và được thực hiện. Đây là chương trình khách hàng, người quyết định phải làm gì với nó. Trong trường hợp hiện tại của bạn, client là một trình duyệt (hoặc Eclipse đang mở một trang trình duyệt). Các tiêu đề như tiêu đề content-disposition
nhằm vào trình duyệt. Nếu bạn muốn tạo ứng dụng khách của riêng mình (ứng dụng khách Swing, ứng dụng Android, ứng dụng iPhone) KHÔNG phải là trình duyệt, thì ứng dụng khách sẽ nhận được thông tin từ máy chủ và quyết định làm gì với nó (hiển thị hoặc lưu nó trong bất kỳ), thậm chí bỏ qua các tiêu đề HTTP.
Tôi tin rằng điều này ở phía máy chủ. Bạn đang cố gắng truyền bá sự kiện máy chủ đến phía máy khách. – christopher
Hãy xem: http://stackoverflow.com/questions/3802510/force-to-open-save-as-popup-open-at-text-link-click-for-pdf-in-html và http: //stackoverflow.com/questions/2226192/generate-some-xml-in-javascript-prompt-user-to-save-it Kính trọng –
@ DaniloMuñoz: AS fas như tôi có thể thấy avobe hai kịch bản là hình thức khác nhau của tôi..nhưng cảm ơn vì lo ngại –