1
2
3
4
5
6
7
8
9
10
11 package psiprobe.controllers.jsp;
12
13 import jakarta.servlet.http.HttpServletRequest;
14 import jakarta.servlet.http.HttpServletResponse;
15
16 import java.io.File;
17 import java.nio.file.Path;
18
19 import org.apache.catalina.Context;
20 import org.springframework.stereotype.Controller;
21 import org.springframework.web.bind.ServletRequestUtils;
22 import org.springframework.web.bind.annotation.RequestMapping;
23 import org.springframework.web.servlet.ModelAndView;
24
25 import psiprobe.Utils;
26 import psiprobe.controllers.AbstractContextHandlerController;
27
28
29
30
31 @Controller
32 public class DownloadServletController extends AbstractContextHandlerController {
33
34 @RequestMapping(path = "/app/downloadserv.htm")
35 @Override
36 public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
37 throws Exception {
38 return super.handleRequest(request, response);
39 }
40
41 @Override
42 protected ModelAndView handleContext(String contextName, Context context,
43 HttpServletRequest request, HttpServletResponse response) throws Exception {
44
45 String jspName = ServletRequestUtils.getStringParameter(request, "source");
46
47 if (jspName != null) {
48 String servletName =
49 getContainerWrapper().getTomcatContainer().getServletFileNameForJsp(context, jspName);
50 if (servletName != null) {
51 File servletFile = Path.of(servletName).toFile();
52 if (servletFile.exists()) {
53 Utils.sendFile(request, response, servletFile);
54 }
55 }
56 }
57 return null;
58 }
59
60 }