Java Web笔记:Servlet初体验

Servlet简介

Servlet是使用Java 编写的服务器端程序,主要运行在服务器端,并且由服务器调用执行,是一种按照servlet标准开发的类。

Servlet是Java对CGI程序的实现,并且采用了多线程的处理方式,效率更高, 同时Servlet还有Java可移植性的特点。

Servlet可以处理客户端发送的http请求,同时会返回一个响应。Servlet处理的基本流程如下图:

Java Web笔记:Servlet初体验_第1张图片

Servlet的处理步骤如下:

1.客户端提出http请求;

2.Web服务器接收到该请求并且把请求发送到Servlet;如果这个Servlet还没有被加载,则Web服务器先把Servlet加载到Java虚拟机并且执行它;

3.Servlet接收这个http请求并作出处理;

4.Servlet把处理结果返回给Web服务器,进行应答

5.Web服务器把收到的应答返回给客户端

Servlet接口下定义了一个GenericServlet的子类,但是一般不会直接继承,而是根据所选的协议选取GenericServlet的子类继承,例如选用Http协议,则使用Servlet时,所有的Servlet类都要继承HttpServlet类。


第一个Servlet程序

要开发一个处理http请求的Servlet程序,要继承Servlet类,而且在自定义的Servlet类中要覆写HttpServlet类中提供的doGet()方法。

doGet()中定义了两个参数,HttpServletRequest和HttpServletResponse。

第一个Servlet程序:

package com.zzh.Servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.rmi.ServerException;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloServlet extends HttpServlet {
	public void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServerException, IOException {
		PrintWriter out = resp.getWriter();
		out.println("<html>");
		out.println("<head><title>Servlet</title></head>");
		out.println("<body>");
		out.println("<h1>Hello~~~~World</h1>");
		out.println("</body>");
		out.println("<html>");
		out.close();
	}
}
注:在Myeclipse中的web工程下的src包中编译即可,会在tomcat的项目文件夹下的WEB-INF文件夹中的class中生成.class文件。

一个Servlet程序编译后,无法立即访问,因为所有的Servlet程序都是以*.class的形式存在的,所以必须在WEB-INF\web.xml文件中进行Servlet的映射配置。

配置web.xml文件:

<?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" id="WebApp_ID" version="3.1">
  <display-name>Servlet_Test</display-name>

    <servlet>
        <servlet-name>hello</servlet-name>
        <servlet-class>com.zzh.Servlet.HelloServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>hello</servlet-name>
        <url-pattern>/helloServlet</url-pattern>
    </servlet-mapping>
</web-app>

其中,servlet-mapping的作用是创建servlet的映射,在地址栏中输入localhost/Servlet_Test/helloServlet即可访问该Servlet。同时也可以添加多个映射。

 运行结果:

Java Web笔记:Servlet初体验_第2张图片


你可能感兴趣的:(Java Web笔记:Servlet初体验)