【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
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序