我根据@wen在Implementing a simple file download servlet中的回答实现了一个下载servlet
web.xml
<servlet>
<servlet-name>DownloadServlet</servlet-name>
<servlet-class>com.myapp.servlet.DownloadServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DownloadServlet</servlet-name>
<url-pattern>/download</url-pattern>
</servlet-mapping>
下载Servlet.java
public class DownloadServlet extends HttpServlet {
protected void doGet( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String id = request.getParameter("id");
String fileName = "";
String fileType = "";
如何防止未登录的人激活下载 servlet。
我有一个 ClientSession
对象,它保存登录的所有详细信息,但我不知道如何从下载 servlet 中访问它。
例如,如果我在请求中放置一个 token ,那么我如何根据 ClientSession 对象验证此 token 。
最佳答案
您应该从 HttpSession 获取客户端 session 。
ClientSession clientSession = (ClientSession) request.getSession().getAttribute("client_session_info");
当然,当您登录时,您必须将 clientSession 存储到 HttpSession 中,如下所示:
session.setAttribute("client_session_info", clientSession);
我不知道你如何登录你的用户,但你应该能够访问http session 对象并将数据存储到其中。
关于java - 仅允许登录用户下载 servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43072662/