servlet任务:读取显式数据(网页HTML表单,applet、自定义HTTP客户端程序的表单)
读取客户端发送的隐式HTTP请求数据(cookies、媒体类型和浏览器能理解的压缩格式)
处理数据生成结果。(包括访问数据库执行RMI或CORBA调用,调用Web服务或直接计算得出相对应的响应)
发送显式数据到客户端。
发送隐式的HTTP响应到客户端。
Servlet包:Servlet可通过javax.servlet和javax.servlet.http创建,在创建后可通过jdk实现编译。
生命周期:servlet在创建后需要通过调用init()(只能调用一次)方法初始化,通过调用service()方法处理客户端请求。通过调用destory()(只能调用一次)方法终止。
service()方法可根据情况调用doGet、doPost、doPut、doDelete等方法。所以只需根据请求类型的不同对doGet、doPost重写即可。
来自URL的正常请求或来自未指定method的HTML表单由doGet()方法处理。
特别指定了method为POST的HTML表单由doPost()方法处理。
destroy()方法执行servlet关闭数据库连接、停止后台线程、把 Cookie 列表或点击计数器写入到磁盘,并把servlet由JVM进行回收。
表单数据:GET方法是默认的从浏览器向服务器传递信息的方法,传递的字符串会出现在浏览器的地址栏中,如果想要防止敏感信息泄露可以选择使用POST方法或对字符串进行加密。
POST方法将信息作为一个单独的消息,以消息的标准输出的形式传到后台程序。
getParameter()可以获得表单参数的值。
getParameterValues()参数出现一次以上通过该方法返回多个值。
getParameterNames()得到当前请求中的所有参数的完整列表。
Servlet过滤器:动态拦截请求和响应以变换或使用包含于请求或响应中的信息。
可附加到HTML页面
可实现在客户端请求访问后端资源之前拦截请求。
可实现在服务器的响应发送回客户端之前处理响应。
过滤器通过Web部署描述符中的XML标签声明。