WebBox Klassenbibliothek
Ulrich
2017-03-03 22f5de9ee605ec60eefd36d1117b854e375a2d8e
commit | author | age
22f5de 1 package de.uhilger.wbx.web;
U 2
3 import java.io.IOException;
4 import java.io.OutputStream;
5 import java.security.Principal;
6 import java.util.logging.Logger;
7 import javax.servlet.ServletException;
8 import javax.servlet.ServletOutputStream;
9 import javax.servlet.http.HttpServletRequest;
10 import javax.servlet.http.HttpServletResponse;
11 import org.apache.catalina.servlets.DefaultServlet;
12
13 /**
14  *
15  */
16 public class ViewServlet extends DefaultServlet {
17   
18   private static final Logger logger = Logger.getLogger(ViewServlet.class.getName());
19
20   /**
21    * Handles the HTTP <code>GET</code> method.
22    *
23    * @param request servlet request
24    * @param response servlet response
25    * @throws ServletException if a servlet-specific error occurs
26    * @throws IOException if an I/O error occurs
27    */
28   @Override
29   protected void doGet(HttpServletRequest request, HttpServletResponse response)
30           throws ServletException, IOException {
31     /*
32             ServletOutputStream out = response.getOutputStream();
33             out.print("<!DOCTYPE html><html><head><title>Testausgabe</title></head><body>");
34             super.doGet(request, response);
35             out.print("</body></html>");                
36     */
37
38       String userName = getUserName(request);
39       String requestURLStr = request.getRequestURL().toString();
40       String contextPath = request.getContextPath();
41       
42       ServletOutputStream out = response.getOutputStream();
43       out.print("<!DOCTYPE html><html><head><title>Testausgabe</title></head><body>");
44       out.print(getHtml("userName",  userName));      
45       out.print(getHtml("contextPath",  contextPath));      
46       out.print(getHtml("requestURL",  requestURLStr));      
47       out.print(getHtml("urlUser",  getUrlUser(out, requestURLStr, contextPath, userName)));      
48       out.print("</body></html>");
49   }
50   
51   private String getUrlUser(ServletOutputStream out, String requestUrlStr, String contextPath, String userName) throws IOException {
52     String result = "urlUser nicht ermittelbar";
53     if(contextPath != null && requestUrlStr != null && userName != null) {
54       int start = requestUrlStr.indexOf(contextPath);
55       out.print("<p>start: " + start + "</p>");
56       out.print("<p>userName.length: " + userName.length() + "</p>");
57       out.print("<p>contextPath.length(): " + contextPath.length() + "</p>");
58       out.print("<p>requestUrlStr.length(): " + requestUrlStr.length() + "</p>");
59       start += contextPath.length();
60       start++;
61       out.print("<p>start: " + start + "</p>");
62       int end = start + userName.length();
63       try {
64         result = requestUrlStr.substring(start, end);
65       } catch(Exception ex) {
66         result = ex.getMessage();
67       }
68     }
69     return result;
70   }
71   
72   private String getHtml(String label, String theVal) {
73     StringBuffer buf = new StringBuffer();
74     buf.append("<p>");
75     buf.append(label);
76     buf.append(": ");
77     if(theVal == null) {
78       buf.append("null");
79     } else {
80       buf.append(theVal);
81     }
82     buf.append("</p>");
83     return buf.toString();
84   }
85
86   private String getUserName(HttpServletRequest hr) {
87     String userName = null;
88     Object p = hr.getUserPrincipal();
89     if (p instanceof Principal) {
90       userName = ((Principal) p).getName();
91     }
92     return userName;
93   }
94
95   /**
96    * Returns a short description of the servlet.
97    *
98    * @return a String containing servlet description
99    */
100   @Override
101   public String getServletInfo() {
102     return "Short description";
103   }// </editor-fold>
104
105 }