
eu.ginere.base.web.services.ShowInfoServlet Maven / Gradle / Ivy
package eu.ginere.base.web.services;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import eu.ginere.base.web.connectors.rights.RightInterface;
import eu.ginere.base.web.listener.AbstractWebContextListener;
import eu.ginere.base.web.listener.ContextInitializedException;
import eu.ginere.base.web.servlet.JSONServlet;
import eu.ginere.base.web.servlet.MainServlet;
import eu.ginere.base.web.servlet.info.ServletArgs;
import eu.ginere.base.web.servlet.info.ServletInfo;
public class ShowInfoServlet extends MainServlet{
private static final String URI = "/servlet/util/ShowInfoServlet";
private static final String DESCRIPTION = "Returns the information of all the servlet loaded into the context. The servlet are loaded the when the first call is done";
@Override
protected ServletArgs[] getArgs() {
return new ServletArgs[]{
ServletArgs.getStringParameter("The servlet ID to clear or to print exception","id"),
ServletArgs.getStringParameter("The action to do: exception,clear","action"),
};
}
@Override
protected void doService(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String id=getStringParameter(request, "id",null);
String accion=getStringParameter(request, "action",null);
response.setCharacterEncoding(JSONServlet.CHARSET);
response.setContentType("text/html");
PrintWriter writer=response.getWriter();
if ("exception".equals(accion)){
writer.println("");
MainServlet servlet=AbstractWebContextListener.getServlet(id);
Exception e=servlet.getInfo().getLastException();
if (e!=null){
printException(writer,e);
} else {
writer.println("No hay excepcion");
}
writer.println("");
return ;
} else if ("clear".equals(accion)){
MainServlet servlet=AbstractWebContextListener.getServlet(id);
servlet.getInfo().clear();
return;
} else {
writer.println("");
if (id==null){
List list=AbstractWebContextListener.getServletList();
for (MainServlet servlet:list){
printServlet(request,writer,servlet);
writer.println("");
}
} else {
MainServlet servlet=AbstractWebContextListener.getServlet(id);
if (servlet==null){
writer.println("Not Found:");
writer.println(id);
writer.println("");
} else {
printServlet(request,writer,servlet);
writer.println("");
}
}
writer.println("");
}
}
private static void printServlet(HttpServletRequest request,PrintWriter writer,MainServlet servlet){
ServletInfo info=servlet.getInfo();
ServletArgs args[]=servlet.getServletArgs();
writer.println("");
writer.print("");
writer.print(servlet.getServletUri());
writer.print(" [");
writer.print(info.getServletClass().getName());
writer.print("]");
writer.print(servlet.getServletDescription());
writer.print("");
writer.print("Arguments:");
// Ther argumens
if (args==null){
writer.print(" - no Args");
} else {
for (ServletArgs arg:args){
writer.print(arg);
writer.print("");
}
}
writer.print("Servlet Return:");
String servletReturn=servlet.getServletReturn();
// Ther argumens
if (servletReturn==null){
writer.print(" - No Def");
} else {
writer.print("");
writer.print(servletReturn);
writer.print("
");
}
printRights(request,writer,servlet);
writer.print(" ");
printInfo(request,writer,servlet);
writer.println("
");
}
private static void printRights(HttpServletRequest request,PrintWriter writer,MainServlet servlet){
RightInterface[] rights=servlet.getServletRights();
writer.print("Access:");
if (rights==null){
writer.print(" - Public Access");
} else if ( rights.length == 0){
writer.print(" - For users logged only");
} else {
for (RightInterface right:rights){
writer.print(" - ");
writer.print(right.getId());
writer.print(" - ");
writer.print(right.getName());
writer.print(" - ");
writer.print(right.getDescription());
}
writer.println("");
}
}
private static void printInfo(HttpServletRequest request,PrintWriter writer,MainServlet servlet){
ServletInfo info=servlet.getInfo();
writer.println("");
writer.println("RunningCall:");
writer.println(" ");
writer.println(info.getRunningCall());
writer.println(" ");
writer.println("");
writer.println("AverageTime:");
writer.println(" ");
writer.println(info.getAverageTime());
writer.println(" ");
writer.println("");
writer.println("ExceptionNumber:");
writer.println(" ");
writer.println(info.getExceptionNumber());
writer.println(" ");
writer.println("");
writer.println("Call Number:");
writer.println(" ");
writer.println(info.getTotalNumber());
writer.println(" ");
writer.println("");
writer.println("Max Call Time:");
writer.println(" ");
writer.println(info.getMaxTime());
writer.println(" ");
writer.println("");
writer.println("Total Consumed Time:");
writer.println(" ");
writer.println(info.getTotalTime());
writer.println(" ");
if (info.getLastException()==null){
writer.println("");
writer.println(" No Exceptions ");
writer.println(" ");
writer.println(" ");
} else {
writer.println("");
writer.println(" Exception ");
writer.println(" ");
writer.print("");
writer.print(info.getLastException().getMessage());
writer.print("");
writer.println(" ");
}
writer.println("");
writer.println("Clear");
writer.println(" ");
writer.print("clear");
writer.println(" ");
}
private static void printException(PrintWriter writer,Throwable e){
writer.println("Message:");
writer.println(e.getMessage());
writer.println("");
writer.println("Trace:");
writer.println("");
e.printStackTrace(writer);
writer.println("
");
Throwable cause=e.getCause();
if (cause!=null){
writer.println("Causa:");
printException(writer,cause);
writer.println("");
}
}
@Override
protected RightInterface[] getRights() throws ContextInitializedException {
// return new RightInterface[]{AbstractWebContextListener.ADMIN_TECH_RIGHT};
return AbstractWebContextListener.SUPER_ADMIN_TECH;
}
@Override
protected String getUri() {
return URI;
}
@Override
protected String getDescription() {
return DESCRIPTION;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy