main.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <form method="get" action="/servlet/HelloWorld"> <input type="submit"> </form> </body> </html>
Whenever
user clicks the button, then the url-pattern “/servlet/HelloWorld”
will be invoked. In the form tag, method attribute has the value get,
so doGet method of the corresponding servlet is called. If method
attribute has the value post, then doPost method of the corresponding
servlet is called.
web.xml
Open
the web.xml file from the configuration files
web.xml
file contains below configurations
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"> <servlet> <servlet-name>Hello</servlet-name> <servlet-class>Hello</servlet-class> </servlet> <servlet-mapping> <servlet-name>Hello</servlet-name> <url-pattern>/HelloWorld</url-pattern> </servlet-mapping> <session-config> <session-timeout> 30 </session-timeout> </session-config> </web-app>
Observe
the above URL, it specifies, from servlet project run the
url-pattern HelloWorld.
<servlet>
<servlet-name>Hello</servlet-name>
<servlet-class>Hello</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
whenever
a request comes for url-pattern "/HelloWorld",
servlet container is going to match the servlet-name with the
url-pattern and will try to find the corresponding servlet-class and
will forward the control to the Servlet Hello.
Hello.java
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; public class Hello extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException{ PrintWriter out = res.getWriter(); res.setContentType("text/html"); String str = "<html>" + "<head>" + "<title> Hello World </title>" + "</head>" + "<body>" + "<h1> Hello World " + "</h1> </body>" + "</html>"; out.println(str); } }
Usually
java programs, start their execution from main method, but servlets
don't have main method. When a server dispatches a request to a
servlet, the service method of the servlet called. The service method
accepts two objects, one is request (contiains all the information to
process this request like input data, headers etc.,) and other is
response object, it is used to return the response.
Usually
we won't override the service method in HttpServlet class. We
override doXXX() methods. 'XXX' will be get, post, put etc., It is
the service method, calls doGet(), doPost() like methods based on the
given input. In the above program doGet() is overridden, if form
method is of type 'get', then 'doGet' method will be invoked.
Each
time the web server receives a get request for this servlet, the
server invokes 'doGet' of this servlet.
Once
user clicks the button , then doGet method of the Hello.java will be
executed.
PrintWriter
out = res.getWriter()
Returns
a PrintWriter object that can send character text to the client.
res.setContentType("text/html")
Sets the content type
of the response being sent to the client.
out.println(str)
Prints
a String and then terminates the line.
No comments:
Post a Comment