Servlet Workspace Location Example

Click here to download eclipse supported ZIP file



This is input.properties properties file and these properties are used in the application.




portNumber=7070




This is index.jsp JSP file and it is used display the output for the application.




<jsp:forward page="/WorkspaceLocationServlet"></jsp:forward>


This is WorkspaceLocationServlet.java file having the source code to execute business logic.



 

    
package com.cv.servlet.workspace;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;

/**
 * Servlet implementation class WorkspaceLocationServlet
 
 @author Chandra Vardhan
 *
 */

public class WorkspaceLocationServlet extends HttpServlet {

  private static final Logger LOGGER = Logger.getLogger(WorkspaceLocationServlet.class);

  private static final long serialVersionUID = 1L;

  /**
   @see HttpServlet#HttpServlet()
   */
  public WorkspaceLocationServlet() {
    super();

  }

  /**
   @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
   *      response)
   */
  public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {

    LOGGER.info("Entered into doGet(--) of WorkspaceLocationServlet class... ");

    response.setContentType("text/html");

    String contextPath = this.getClass().getClassLoader().getResource("/").getPath();
  
    if(contextPath != null) {
      contextPath = contextPath.substring(0, contextPath.lastIndexOf(".metadata")-1);
      if(contextPath.startsWith("\\")) {
        contextPath = contextPath.substring(1, contextPath.length());
      }
      contextPath = contextPath+request.getContextPath();
    }
    
    File file = new File(contextPath+"//input.properties");
    if (file != null && !file.exists()) {
      file.createNewFile();
    }
    final PrintWriter pw = new PrintWriter(new FileOutputStream(file));
    pw.print("portNumber=" + request.getServerPort());

    PrintWriter out = response.getWriter();
    out.print("Successfully deployed and content will be written to file...");
    pw.close();
    out.close();
  }

  /**
   @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
   *      response)
   */
  protected void doPost(HttpServletRequest request,
      HttpServletResponse responsethrows ServletException, IOException {
    LOGGER.info("Entered into doPost(--) of ImageServlet class... ");
    doGet(request, response);
  }

}


This is pom.xml file having the entries of dependency jars and information to build the application .



	
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.cv.servlet.download</groupId> <artifactId>ServletWorkspaceLocationExample</artifactId> <version>1.0</version> <packaging>war</packaging> <properties> <log4j-version>1.2.16</log4j-version> <java.version>1.8</java.version> </properties> <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <source>${java.version}</source> <target>${java.version}</target> </configuration> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> <warSourceDirectory>src/main/webapp</warSourceDirectory> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>3.0-alpha-1</version> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>${log4j.version}</version> </dependency> </dependencies> </project>


This is web.xml deployment descriptor file and it describes how the web application should be deployed.



	
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">

<display-name>WorkspaceLocationServlet</display-name>

<servlet>
<servlet-name>WorkspaceLocationServlet</servlet-name>
<servlet-class>com.cv.servlet.workspace.WorkspaceLocationServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>WorkspaceLocationServlet</servlet-name>
<url-pattern>/WorkspaceLocationServlet</url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>


This is log4j.properties file having the entries for logging the information into the console/file.




#By default enabling Console appender
# Root logger option
log4j.rootLogger=INFO, stdout

# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-5p [%c]:%L -->> %m%n

# Redirect log messages to a log file
#log4j.appender.file=org.apache.log4j.RollingFileAppender
#log4j.appender.file.File=C:\servlet-application.log
#log4j.appender.file.MaxFileSize=5MB
#log4j.appender.file.MaxBackupIndex=10
#log4j.appender.file.layout=org.apache.log4j.PatternLayout
#log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

No comments:

Post a Comment