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