Servlet技术

1、构建基本的Servlet

2、了解Servlet生命周期

init方法一生只会执行一次

service方法,多个请求使用多线程处理

destory方法,一生不一定会执行,但是最多执行一次

3、如何应对多线程问题

对于变量加上同步块,SingleThreadModel接口被证实不一定有用

4、表单参数读取

request.getParameter获取,request.getInputStream()获取输入流

5、处理缺失和异常的数据


6、应对不完全的表单提交

校验并返回

7、使用HTTP请求报头

request.getHeader获取,详见HTTP协议

8、压缩页面


9、检测浏览器类型

10、操纵HTTP状态代码和响应报头

response.setStatus操纵状态码,response.addHeader响应报头

11、请求重定向

response.sendRedirect重定向

12、构建Excel表格

response.setContentType("application/vnd.ms-excel");

13、定制JPEG

response.setContentType("image/jpeg");
int width = 200;
int height = 300;
BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = (Graphics2D)bufferedImage.getGraphics();
g2d.setBackground(Color.BLACK);
OutputStream out = response.getOutputStream();
ImageIO.write(bufferedImage, "jpg", out);

14、向用户发送增量更新

15、处理Cookie

// 发送Cookie
// Cookie cookie = new Cookie("name", "jzz");
// cookie.setSecure(true);//表示cookie是否只通过加密连接发送,默认为false
// cookie.setValue("");//改变输入cookie的值,并将他们发出去
// cookie.getVersion();//cookie所遵从的cookie协议版本。默认值为0,版本1尚未被广泛支持
// cookie.setPath("/");//如若不设置,则浏览器只将该cookie返回给发送cookie的页面所在目录中或之下的URL,例如:
// 服务器从http://somesite/toys/specials.html发送cookie,那么浏览器连接到http://somesite/toys/bike/beginners.html时,会发送该cookie
// 当链接http://somesite/cds/my.html时,则不会;
// 如果要指定cookie适用于网站上所有的URL,使用cookie.setPath("/");
// cookie.setMaxAge(60*60*24*7);//默认是回话级别的,即关闭浏览器则被清楚,如果设置为0,则代表删除该cookie
// response.addCookie(cookie);


// 获取Cookie
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (int i = 0; i < cookies.length; i++) {
Cookie cookie = cookies[i];

if("user".equals(cookie.getName())){
response.getWriter().print(cookie.getValue());
}
}
}

16、记录用户的偏好


17、跟踪回话

session的实现——使用cookie或者重写URL

18、浏览器会话和服务器会话之间的不同


你可能感兴趣的:(Servlet技术)