For creating a simple servlet, all we need is a HTML/JSP file and a java class.
Sample JSP code:
Below is the sample java code that I have used:
Below is the Eclipse project structure for the Dynamic Web Project I created:
Below is the web.xml config I used:
I used two child elements in xml under web-app namely:
1. servlet
2. servlet-mapping
The element servlet contains two child elements further namely:
1. servlet-name - to specify the name of the servlet (name can be anything)
2. servlet-class - to specify the name of java class including package name.
The element servlet-mapping contains two child elements further namely:
1. servlet-name: to specify name of the servlet (the name should be same as one specified in the child element servlet-name of element servlet).
2. url-pattern: to specify the url-pattern of the servlet.
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<servlet>
<servlet-name>Servlet1</servlet-name>
<servlet-class>com.servlets.ServletClass1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Servlet1</servlet-name>
<url-pattern>/Servlet1</url-pattern>
</servlet-mapping>
</web-app>
Sample JSP code:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<h1 align="center">Enter your details down below:</h1>
<body bgcolor="yellow">
<form method="post" action="ServletClass1">
<center>
<table border="1" bordercolor="red" bgcolor="lime" cellspacing="20" style="font-size: 20px;font-family:inherit;" cellpadding="3">
<tr bgcolor="yellow">
<td>Name: <input type="text" name="name"><br/></td>
</tr>
<tr bgcolor="yellow"><td>
Profession: <br/>
Developer: <input type="radio" name="Developer"/><br/>
Architect: <input type="radio" name="Architect"/><br/>
</td>
</tr>
<tr bgcolor="yellow">
<td>
Skills:<br/>
<select name="skills">
<option value="J2EE" label="J2EE"></option>
<option value="J2SE" label="J2SE"></option>
<option value="J2ME" label="J2ME"></option>
</select></td></tr>
</table>
<input type="submit" value="Submit" style="font-size:20px;font-family:inherit;"/>
</center>
</form>
</body>
</html>
You can use above code either in a JSP file or HTML file. I created three types of fields - text, radio buttons, drop down fields.
In the html elements I used form fields and have given the servlet name in action tag and POST method in method tag which means when the servlet is called it invokes POST method.
I am trying to retrieve the values that comes out when certain fields are containing values or selected from a servlet.
Servlet:
A servlet is a simple java file that communicates with the server. A java file that extends HttpServlet class is said to be a servlet.
Below is the sample java code that I have used:
package com.servlets;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class ServletClass1
*/
@WebServlet("/ServletClass1")
public class ServletClass1 extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public ServletClass1() {
super();
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println("<p style='font-size:20px'> Name: "
+ request.getParameter("name") + "</p><br/>");
out.println("<p style='font-size:20px'> Developer: "
+ request.getParameter("Developer") + "</p><br/>");
out.println("<p style='font-size:20px'> Architect: "
+ request.getParameter("Architect") + "</p><br/>");
out.println("<p style='font-size:20px'> Skills: "
+ request.getParameter("skills") + "</ps>");
}
}
In the above code, I have used PrintWriter to enable logging into response file that will be returned by the server. If you use System.out.println (SOP), we get outputs in log files of the server. I used tomcat server version 7. Once I ran the JSP/HTML file on the server, I got the form as below:
I filled the above from as below:
and I clicked the submit button and the server returns the below response:
Since I didn't select Architect radio button it is coming as null and the rest are as selected.
Any suggestions are welcome. Please feel free to comment.