1.Servlet简介:

Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层,使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。

2.Servlet的主要作用:

  • 读取客户端(浏览器)发送的显式的数据。这包括网页上的 HTML 表单,或者也可以是来自 applet 或自定义的 HTTP 客户端程序的表单。
  • 读取客户端(浏览器)发送的隐式的 HTTP 请求数据。这包括 cookies、媒体类型和浏览器能理解的压缩格式等等。
  • 处理数据并生成结果。这个过程可能需要访问数据库,执行 RMI 或 CORBA 调用,调用 Web 服务,或者直接计算得出对应的响应。
  • 发送显式的数据(即文档)到客户端(浏览器)。该文档的格式可以是多种多样的,包括文本文件(HTML 或 XML)、二进制文件(GIF 图像)、Excel 等。
  • 发送隐式的 HTTP 响应到客户端(浏览器)。这包括告诉浏览器或其他客户端被返回的文档类型(例如 HTML),设置 cookies 和缓存参数,以及其他类似的任务。

3.Servlet生命周期:

  • Servlet 通过调用 init () 方法进行初始化。
  • Servlet 调用 service() 方法来处理客户端的请求。
  • Servlet 通过调用 destroy() 方法终止(结束)。
  • 最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。

init()方法:它在第一次创建 Servlet 时被调用,在后续每次用户请求时不再调用。因此,它是用于一次性初始化;

public void init() throws ServletException {

// Put your code here

}

service()方法:执行实际任务的主要方法;Servlet容器(即 Web 服务器)调用 service()方法来处理来自客户端(浏览器)的请求,并把格式化的响应写回给客户端。每次服务器接收到一个 Servlet请求时,服务器会产生一个新的线程并调用服务。service() 方法检查 HTTP 请求类型(GET、POST、PUT、DELETE 等),并在适当的时候调用 doGet、doPost、doPut,doDelete 等方法。

public void service(HttpServletRequest request, HttpServletResponse response) throws

ServletException, IOException {

response.setContentType("text/html;charset=gbk");

//response.setCharacterEncoding("GBK");

PrintWriter out = response.getWriter();

out.println("<html>");

out.println("<head><title>Servlet1</title></head>");

out.println("<body bgcolor=\"#ffffff\">");

out.println("<p>上海</p>");

out.println("</body></html>");

}

doGet()方法:GET 请求来自于一个 URL 的正常请求,或者来自于一个未指定 METHOD 的 HTML 表单,它由 doGet() 方法处理;

doPost()方法:POST 请求来自于一个特别指定了 METHOD 为 POST 的 HTML 表单,它由 doPost() 方法处理。

Destroy()方法:destroy() 方法只会被调用一次,在 Servlet 生命周期结束时被调用。

public void destroy() {

super.destroy(); // Just puts "destroy" string in log

// Put your code here

}

4.Javabean简介:

JavaBean是一种专门构建的Java类,它使用Java编写,并根据JavaBeans API规范进行编码。

以下是将JavaBean与其他Java类有区别的独特特征 -

  • 它提供了一个默认的,无参数的构造函数。
  • 它应该是可序列化的,可以实现Serializable接口。
  • 它可能有许多可以读取或写入的属性。
  • 它可能有一些getter和setter方法的属性。

最新文章

  1. js 随机星星 document.createElement(); setAttribute()
  2. arcgis中使用excel中x,y坐标创建点问题
  3. oc-17-description
  4. 356. Line Reflection
  5. Swift编程语言学习4.1——周期
  6. [CSS备忘]改变选中文本的颜色::selection
  7. 利用&lt;meta http-equiv=&quot;refresh&quot; content=&quot;0;URL=?id=&#39;.$id.&#39;&quot; /&gt;一条一条的更新数据
  8. Codeforces 839D Winter is here【数学:容斥原理】
  9. 01-Go命令与基础
  10. Maven通俗讲解
  11. Hibernate报错,关于配置的SessionFactory找不到问题
  12. git常用命令总结(资源来自廖雪峰)
  13. Java Json 数据下划线与驼峰格式进行相互转换
  14. Struts2学习(三)
  15. HDU 5950 - Recursive sequence - [矩阵快速幂加速递推][2016ACM/ICPC亚洲区沈阳站 Problem C]
  16. c# 集合中有数字、字符的Orderby排序
  17. scala中的一些特殊符号的意义
  18. 使用MySQL命令行修改密码
  19. 保证java的jar包在后台运行
  20. c++11 智能指针 unique_ptr、shared_ptr与weak_ptr

热门文章

  1. Struts2学习第四课 通过Aware接口获取WEB资源
  2. linux c段错误分析方法
  3. 解析Xml文件的三种方式及其特点
  4. elasticsearch 增删改流程和写一致性
  5. JVM调试过程
  6. win10移动热点问题
  7. bootstrap table 学习记录
  8. 自定义滚动条插件 mCustomScrollbar 使用介绍
  9. IDEA 工具使用指南
  10. 【ACM】吝啬的国度 - DFS (图)