java web学习(基础篇)一 从Servlet开始说起

本系列博客是介绍java web最基本技术的,有人可能会问,现在有那么多功能强大的Web框架,有必要从最基本的技术学起吗。实际上,Web框架是开发者在使用某种语言编写Web应用服务端时关于架构的最佳实践。很多Web框架是从实际的Web项目抽取出来的,仅和Web的请求和响应处理有关,形成一个基础,在开发别的应用项目的时候则可以从这个剥离出来的基础做起,让开发者更关注更具体的业务问题,而不是Web的请求和响应的控制。

目前各种语言的框架很多,但套路基本类似,帮你隐藏很多关于 HTTP 协议细节内容,专注功能开发。像Java web的spring框架等都很强大。

但对一个初学者来说,过早的接触框架却往往会事倍功半!没有基本功的积累和最基本架构的了解,盲目的依赖某一种框架开发,会让你无法深入web开发的本质,你可实现了某些功能,但对实现的机制一点也不了解,同样一个问题,如果换一种框架,你可能需要从头开始研究。这样的学习我认为是不可取的。

因此本系列博客从最基本的java web技术开始讲起,而java web的框架等将在java web教程(进阶篇)和专门的框架系列博客中讲到。

首先,我们从Servlet技术说起。

一 Servlet 是什么?

1 概念

Java Servlet 是运行在 Web 服务器或应用服务器上的程序。它作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。

2 用途

收集来自网页表单的用户输入;
呈现来自数据库或者其他源的记录;
动态创建网页。

3 优点(和 CGI(Common Gateway Interface,公共网关接口)相比)

性能明显更好。
Servlet 在 Web 服务器的地址空间内执行。没有必要再创建一个单独的进程来处理每个客户端请求。
独立于平台。
服务器上的 Java 安全管理器执行了一系列限制,以保护服务器计算机上的资源。因此,Servlet更安全。
Java 类库的全部功能对 Servlet 来说都是可用的。它可以通过 sockets 和 RMI 机制与 applets、数据库或其他软件进行交互。

servlet架构图:

servlet架构图

Servlet 生命周期

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

Servlet 表单数据

浏览器使用两种方法可将这些信息传递到 Web 服务器,分别为 GET 方法和 POST 方法。

GET 方法

GET 方法向页面请求发送已编码的用户信息。页面和已编码的信息中间用 ? 字符分隔,如:

http://www.web.com/hello?key1=value1&key2=value2

GET 方法是默认方法,如果向服务器传递密码或敏感信息,不要使用 GET 。Servlet 使用 doGet() 方法处理这种类型的请求。

POST 方法

POST 方法不是把信息作为 URL 中 ? 字符后的文本字符串进行发送,而是把这些信息作为一个单独的消息。消息以标准输出的形式传到后台程序。Servlet 使用 doPost() 方法处理这种类型的请求。

使用 Servlet 读取表单数据

getParameter():通过调用 request.getParameter() 方法来获取表单参数的值。
getParameterValues():如果参数出现一次以上,则调用该方法,并返回多个值,例如复选框。
getParameterNames():如果想要得到当前请求中的所有参数的完整列表,则调用该方法。

Servlet 编写过滤器

Servlet 过滤器是可用于 Servlet 编程的 Java 类,有以下作用:
在客户端的请求访问后端资源之前,拦截这些请求。
在服务器的响应发送回客户端之前,处理这些响应。

根据规范建议的各种类型的过滤器:
身份验证过滤器(Authentication Filters)。
数据压缩过滤器(Data compression Filters)。
加密过滤器(Encryption Filters)。
触发资源访问事件过滤器。
图像转换过滤器(Image Conversion Filters)。
日志记录和审核过滤器(Logging and Auditing Filters)。
MIME-TYPE 链过滤器(MIME-TYPE Chain Filters)。
标记化过滤器(Tokenizing Filters)。
XSL/T 过滤器(XSL/T Filters),转换 XML 内容。

过滤器被部署在部署描述符文件 web.xml 中,然后映射到您的应用程序的部署描述符中的 Servlet 名称或 URL 模式。

当 Web 容器启动 Web 应用程序时,它会为您在部署描述符中声明的每一个过滤器创建一个实例。该过滤器执行的顺序是按它们在部署描述符中声明的顺序。

Servlet 过滤器方法

过滤器是一个实现了 javax.servlet.Filter 接口的 Java 类。javax.servlet.Filter 接口定义了三个方法:
序号 方法 & 描述
1 public void doFilter (ServletRequest, ServletResponse, FilterChain)
该方法在每次一个请求/响应对因客户端在链的末端请求资源而通过链传递时由容器调用。
2 public void init(FilterConfig filterConfig)
该方法由 Web 容器调用,指示一个过滤器被放入服务。
3 public void destroy()
该方法由 Web 容器调用,指示一个过滤器被取出服务。

好,这篇博客就先到这里,下一篇博客将为大家介绍JSP技术。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值