Getting the http Request Parameters in a Servlet

Introduction

The implicit HttpServlet interface comes with two methods which must be implemented.  These are doGet(HttpServletRequest req, HttpServletResponse res) and doPost(HttpServletRequest req, HttpServletResponse res). The example below shows how to get both.

// See also The HttpServlet

// This method is called by the servlet container to process a GET request.
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
    doGetOrPost(req, resp);
}

// This method is called by the servlet container to process a POST request.
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
    doGetOrPost(req, resp);
}

// This method handles both GET and POST requests.
private void doGetOrPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
    // Get the value of a request parameter; the name is case-sensitive
    String name = "param";
    String value = req.getParameter(name);
    if (value == null) {
        // The request parameter 'param' was not present in the query string
        // e.g. http://hostname.com?a=b
    } else if ("".equals(value)) {
        // The request parameter 'param' was
       // present in the query string but has no
       // value
       // e.g. http://hostname.com?param=&a=b
    }

    // The following generates a page showing all
    // the request parameters
    PrintWriter out = resp.getWriter();
    resp.setContentType("text/plain");

    // Get the values of all request parameters
    Enumeration enum = req.getParameterNames();
    for (; enum.hasMoreElements(); ) {
        // Get the name of the request parameter
        name = (String)enum.nextElement();
        out.println(name);

        // Get the value of the request parameter
        value = req.getParameter(name);

        // If the request parameter can appear
        // more than once in the query string,
        // get all values
        String[] values =
        req.getParameterValues(name);

        for (int i=0; i<values.length; i++) {
            out.println("    "+values[i]);
        }
    }
    out.close();
}

 

Getting the Manifest of a Jar file.

Introduction

JAR files support a wide range of functionality, including electronic signing, version control, package sealing, and others. What gives a JAR file this versatility? The answer is the JAR file’s manifest.

The manifest is a special file that can contain information about the files packaged in a JAR file. By tailoring this “meta” information that the manifest contains, you enable the JAR file to serve a variety of purposes.

This example  will explain the contents of the manifest file and show you how to work with it, with examples for the basic features.

For more information about the MANIFEST See https://docs.oracle.com/javase/tutorial/deployment/jar/manifestindex.html

try {
    // Open the JAR file
    JarFile jarfile = new JarFile("filename.jar");

    // Get the manifest
    Manifest manifest = jarfile.getManifest();

    // Get the manifest entries
    Map map = manifest.getEntries();

    // Enumerate each entry
    for (Iterator it=map.keySet().iterator(); it.hasNext(); ) {
        // Get entry name
        String entryName = (String)it.next();

        // Get all attributes for the entry
        Attributes attrs = (Attributes)map.get(entryName);

        // Enumerate each attribute
        for (Iterator it2=attrs.keySet().iterator(); it2.hasNext(); ) {
            // Get attribute name
            Attributes.Name attrName = (Attributes.Name)it2.next();

            // Get attribute value
            String attrValue = attrs.getValue(attrName);
        }
    }
} catch (IOException e) {
}

 

Creating a Temp File

Introduction

Every Operating System has it’s own location for storing temporary files. In UNIX/Linux this is /tmp. In Windows it’s C:\temp.

The example below shows how it can be done in the (platform independent way with Java:

try {
    // Create temp file.
    File temp = File.createTempFile("pattern", ".suffix");

    // Delete temp file when program exits.
    temp.deleteOnExit();

    // Write to temp file
    BufferedWriter out = new BufferedWriter(new FileWriter(temp));
    out.write("aString");
    out.close();
} catch (IOException e) {
}

 

Creating a password field in Java



Introduction

JPasswordField is the Swing Password in Java. Just like the other javax.swing Components it’s a JavaBean. Here’s how to implement it:

JPasswordField textfield = new JPasswordField("Initial Text");
textfield.setEchoChar('#');
textfield.addActionListener(actionListener);

 

HiLighting words in a JTextPane

Introduction

This example shows how text can be HiLighted in the text of a JTextPane.

JTextPane textPane = new JTextPane();
StyledDocument doc = textPane.getStyledDocument();

// Makes text red
Style style = textPane.addStyle("Red", null);
StyleConstants.setForeground(style, Color.red);

// Inherits from "Red"; makes text red and underlined
style = textPane.addStyle("Red Underline", style);
StyleConstants.setUnderline(style, true);

// Makes text 24pts
style = textPane.addStyle("24pts", null);
StyleConstants.setFontSize(style, 24);

// Makes text 12pts
style = textPane.addStyle("12pts", null);
StyleConstants.setFontSize(style, 12);

// Makes text italicized
style = textPane.addStyle("Italic", null);
StyleConstants.setItalic(style, true);

// A style can have multiple attributes; this one makes text bold and italic
style = textPane.addStyle("Bold Italic", null);
StyleConstants.setBold(style, true);
StyleConstants.setItalic(style, true);

// Set text in the range [5, 7) red
doc.setCharacterAttributes(5, 2, textPane.getStyle("Red"), true);

// Italicize the entire paragraph containing the position 12
doc.setParagraphAttributes(12, 1, textPane.getStyle("Italic"), true);

 

Getting the Request header



Introduction

The Request Header contains all kinds of useful data, like the requesters method (GET or POST) but also the requester’s browser an OS. This example shows how to get it;

The request method is <%= request.getMethod() %>
The request URI is <%= request.getRequestURI() %>
The request protocol is <%= request.getProtocol() %>
The browser is <%= request.getHeader("user-agent") %>

 

Reading from a file

Introduction

Similar to writing to files we can also read from a file. This is done as follows:

try {
    BufferedReader in = new BufferedReader(new FileReader("infilename"));
    String str;
    while ((str = in.readLine()) != null) {
        process(str);
    }
    in.close();
} catch (IOException e) {
}

Please note the similarities between writing. The only difference is that here the FileReader is used in stead of the FileWriter.

Showing a Print Dialog



Introduction

Showing a print dialog is a common task for every print job. This example shows how to do it:

PrinterJob pjob = PrinterJob.getPrinterJob();
PageFormat pf = pjob.defaultPage();
pjob.setPrintable(new PrintableClass(), pf);
try {
    if (pjob.printDialog()) {
        pjob.print();
    }
} catch (PrinterException e) {
}