共计 2971 个字符,预计需要花费 8 分钟才能阅读完成。
sun 公司制订的一种用来扩大 web 服务器性能的组件标准(服务器端的 Java 应用程序)。具备独立于平台和协定的个性,能够生成动静的 Web 页面。它担当客户申请(Web 浏览器或其它 HTTP 客户程序)与服务器响应(HTTP 服务器上的数据库或应用程序)的中间层
1、用来扩大 web 服务器性能(生成动静的 Web 页面)
以前的 CGI 效率不高,用 servlet 来扩大替换 CGI
客户端发送申请给 web 服务器,web 服务器启动并调用 servlet。servlet 容器负责解析数据包,也包含网络通讯相干的一些解决。而后将解析之后的数据交给 servlet 来解决。
留神:能够不应用服务器,而间接向 servlet 容器发送申请。因为 servlet 容器也有通信模块,所以能够间接把 servlet 容器当做 web 服务器来应用。
2、组件标准
(1) 组件:是合乎肯定标准,并且实现局部性能的能够独自部署的软件模块。组件必须部署到容器中能力运行。
(2) 容器:也是合乎肯定标准,并且提供组件的运行环境的程序。
留神:单个的组件,单个的容器都没有意义。只有放在一起能力运行
Tomcat 就是一个 servlet 容器也是一个 web 服务器
3、servlet 容器是怎么运行的:
浏览器箱 web 服务器发送申请 web 服务器接收数据发送 servlet 容器而后实例化 servlet 调用 init 办法初始化而后调用 service 办法利用 doget 或者 dopost 解决
servlet 将解决的构造返回给 web 服务器而后发送给客户端
servlet 的长处只创立一个实例只初始化一次然而能够被调用屡次。不同 GCI 创立多个实例,servlet 存在线程平安问题。servlet 效率比拟高
servlet 的创立
public class servletest extends HttpServlet {
private static final long serialVersionUID = 1L;
public servletest() {super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println("<HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println("<BODY>");
out.print("This is");
out.print(this.getClass());
out.println(", using the GET method");
out.println("</BODY>");
out.println("</HTML>");
out.flush();
out.close();}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println("<HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println("<BODY>");
out.print("This is");
out.print(this.getClass());
out.println(", using the POST method");
out.println("</BODY>");
out.println("</HTML>");
out.flush();
out.close();}
}
web.xml 的配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>zz.servletest</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/test/hello</url-pattern>
</servlet-mapping>
</web-app>
启动 Tomcat 输出:
localhost8080/zzservlet/test/hello
留神:
web.xml 中 servlet 是 servlet 实例的一个线程 能够有多个 servlet 标签每个 servlet 代表一个申请解决
servletname 是这个 servlet 的名称 能够为任意值但必须和 servlet-mapping 中的对应
servlet-class 是对应的 Java 类,即根目录下的 Java 目录 即不须要工程名 工程名是根目录,class 是文件名称即 package 后的名称
url-pattern 是拜访的门路 输出的拜访地址为 网址 + 端口号 + 工程名 + 拜访的门路
servlet 与 jsp 的区别 即 servlet 须要一个一个的 out.print 而 jsp 不须要一句一句地输入 其余的没有区别
Servlet 如何疾速入门?
能源节点的 servlet 教程,能够说是 servlet 开发讲得最具体的了,servlet 是所有 Javaweb 开发的根底,通过 servlet 的学习,咱们能够察看到最高级的浏览器和服务器之间交互的全过程,视频中会针对 servlet 开发的所有相干知识点,如对于 get 和 post 的解决,响应形式,转发和重定向,上下文等相干技术做最深刻的解说。
最初会搭配一个登陆操作及显示学生信息列表的综合案例,对 servlet 开发做一个最残缺的总结。
Servlet 在线观看:
https://www.bilibili.com/vide…
Servlet 学习材料下载:
http://www.bjpowernode.com/?s…