您的位置:首页 > 编程语言 > Java开发

【Servlet开发】Servlet开发及其原理(一)

2016-07-22 17:50 976 查看

一、Web容器

web容器是一种服务程序,在服务器一个端口就有一个提供相应服务的程序,而这个程序就是处理从客户端发出的请求,如JAVA中的Tomcat容器,ASP的IIS或PWS都是这样的容器。一个服务器可以多个容器。常见的Servlet容器就是用来管理和运行Servlet的。容器一般都会提供通信支持、生命周期管理、多线程支持、等功能,方便我们直接进行Web开发。

二、Servlet简介

Servlet是Java的一个编程接口,凡是实现了相关接口的类都可以叫做一个Servlet。常见的实现接口为HttpServlet,这是实现Http协议的Servlet接口,虽然网络上还有其他协议运行着,但是Http基本占了99%以上的内容,所以一般来说Servlet就是实现HttpServlet接口。其主要运行在Java的服务器端,用来处理相关的Web请求的。一个请求经过Servlet处理过程如下所示:

1) 客户端发送请求至服务器端

2)服务器把请求转交给Servlet容器

3)容器将请求信息发送至相关的Servlet

4) Servlet 生成响应内容并将其传给容器。响应内容动态生成,通常取决于客户端的请求

5) 容器将响应返回给客户端

三、Web 容器处理Http请求的过程

上面已经说明了请求的大致处理过程,这里将具体说明Servlet如何处理请求的
1、用户点击一个链接,链接Url指向一个Servlet



2、容器看出这个请求指向一个Servlet,所以容器创建两个对象HttpServletResponse(包含空的响应头、响应体),HttpServletRequest(包含请求头、请求体)



3、容器根据请求中的URL查找正确的Servlet,并为这个请求创建或者分配一个线程,并且调用Servlet中的Service(HttpServletRequest request,HttpServletResponse response)方法。



4、Service根据客户端请求的方法(Get、Post等)决定调用哪个Servlet方法。



5、调用doGet或者doPost方法以后产生响应对象返回给容器。



6、service方法调用结束,线程要么撤销,要么返回线程池。请求和响应对象出了作用域可以回收,客户得到响应。



四、Hello world

写一个Servlet控制器

package com.yuanx.me;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

/**
* Created by LemonTree on 2016/7/22.
*/
public class TestServlet extends HttpServlet {
public void doGet(HttpServletRequest request , HttpServletResponse response) throws IOException {
System.out.println("Hello World");
PrintWriter out = response.getWriter();
out.println(""+"Hello World"+"");
}
}


在Web.xml中配置控制器

<?xml version="1.0" encoding="UTF-8"?>
TestServletcom.yuanx.me.TestServletTestServlet/servlet1


输入网址访问http://localhost:8080/TestServlet/servlet1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息