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…
发表回复