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

一、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中配置控制器

     
     

     
     

    
      
      
        
       
       
        
        TestServlet
       
       
        
       
       
        
        com.yuanx.me.TestServlet
       
       
    
      
      
    
      
      
        
       
       
        
        TestServlet
       
       
        
       
       
        
        /servlet1
       
       
    
      
      

     
     

输入网址访问http://localhost:8080/TestServlet/servlet1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值