我在Implementing a simple file download servlet
中基于@wen的答案实现了一个下载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>
DownloadServlet.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中访问它。
例如,如果我在请求中放置一个令牌,那么我如何针对ClientSession对象验证此令牌。
答案 0 :(得分:1)
您应该从HttpSession获取客户端会话。
ClientSession clientSession = (ClientSession) request.getSession().getAttribute("client_session_info");
当然,当您登录时,您必须将您的clientSession存储到HttpSession中,如下所示:
session.setAttribute("client_session_info", clientSession);
我不知道您如何记录您的用户,但您应该能够访问http会话对象并将数据存储到其中。