前言
- Java Servlet 技术,简称Servlet,是Java中用于开发Web应用程序的基本技术。Servlets是指在Servlet容器中运行的Java类。Servlet容器或Servlet引擎,就像是一个Web服务器,但它能够生成动态的内容,而不只是提供静态的资源。
- Servlet是一个Java程序。一个Servlet应用程序经常包含一个或多个Servlet。JSP页面也要被翻译成Servlet,并进行编译。
- Servlet应用程序是在Servlet容器中运行,它不能自动运行。
- Web服务器与Web客户端之间通过双方熟悉的一种语言进行通信,即超文本转移协议(HTTP)。
- Servlet和JSP只是Java EE众多技术中的两种。运行Java EE应用程序时,需要Java EE容器,但是Java EE容器用来部署Servlet/JSP程序会显得杀鸡用牛刀,一般都是采用Servlet/JSP容器都卓卓有余啦,如Tomcat ,Jetty(注:这两个都不属于Java EE容器)。
- 并非所有的URL都用HTTP,如ftp。
Servlet简单介绍
-
Servlet接口方法:
主要接口:
init(初始化),service(请求服务),destroy(销毁),
次要接口:
getServletInfo(返回Servlet的描述), getServletConfig(返回由Servlet容器传给init方法的ServletConfig);
流程:
仅当servlet容器第一次接到访问该servlet请求的时候才会进行init操作,之后都是只进行service操作。
-
@WebServlet(name=“XXX”, urlPatterns = {"/myUrl"}) 这个注解用来声明一个Servlet,并告诉容器它的URL(urlPatterns 属性);name属性可选,一般都用类名。
-
ServletRequest接口常见方法:
public java.lang.String getParameter(java.lang.String name) 返回制定请求参数的值。
次要可常用方法:
getParameterNames,getParameterMap,getParameterValues;
-
ServletResponse常见方法:
getWriter:返回可以将文本传给客户端的Java.io.PrintWriter,默认使用编码ISO-8859-1;
getOutputStream:用来传输二进制数据,如文件下载。 -
ServletConfig:
getServletContext:可以从Servlet内部获取ServletContext;
还可以使用@WebServlet的initParams提供键值初始化;
ServletContext表示Servlet应用程序,每一个Web应用程序都只有一个context -
GenericServlet:
实现了Servlet和ServletConfig的抽象类,抽出了一个无参init方法方便用户覆盖实现个性化。 -
HttpServlet:
GenericServlet抽象类的继承类,带有HttpServletRequest(继承ServletRequest)和HttpServletResponse(继承ServletResponse)对象;
覆盖了GenericServlet中的service方法,并添加了一个新参数的service方法;
新的service方法会查看通常用来发送请求的七种方法之一(doGet,doPost等等),此时变成了get,post等方法的重写。 -
部署描述符:
就是框架中常见的xml文件,用于配置启动Servlet,servlet路径,初始参数等等。
课余点
-
简单了解了HTTP的七种请求方法的区别——https://blog.csdn.net/u012919352/article/details/84350839 ;
这个是转载大佬的,不过写的简单易懂,很好的一篇文章。 -
xml文件(部署描述符)作用:
1.可以包含@WebServlet中没有的元素,如load-on-startup;
2.当需要修改配置值或修改初始参数时,不需要重新编译servlet类;
3.允许覆盖servlet注解中制定的值,例如访问路径。
以上就是本人第一章的读后感,servlet和JSP就是Java发展史中的一个关键节点,犹如电力时代中发现电一样重要,真的很有必要抽时间去细看。