servlet

来源:互联网 发布:淘宝客网站搭建大淘客 编辑:程序博客网 时间:2024/06/16 08:21

1、http
*Location: http://www.itcast.cn/index.jsp :服务器通过这个头,来告诉浏览器跳到哪里
response.setStatus(302);//设置请求要转到一个新的地址
response.setHeader("Location", "/test03/a.html");
*Content-Encoding: gzip :告诉浏览器,数据的压缩格式
*Content-Length: 80 :服务器通过这个头,告诉浏览器回送数据的长度
*必须是大数据量才能看到效果
String data="aa";
 System.out.println("原始的长度  "+data.length());
*实例化字节输出流
ByteArrayOutputStream bos=new ByteArrayOutputStream();
*把数据用gzip格式压缩
GZIPOutputStream g=new GZIPOutputStream(bos);
g.write(data.getBytes());
g.close();
*从字节数据输出流中获取压缩的数据
byte[] b=bos.toByteArray();
*通过response对象把压缩的数据传递到客户端
ServletOutputStream os=response.getOutputStream();
os.write(b);
*设置响应头
*Content-Encoding: gzip :服务器告诉浏览器,服务器传递给浏览器的数据的压缩格式
 response.setHeader("Content-Encoding", "gzip");
*Content-Length: 80 :服务器通过这个头,告诉浏览器回送数据的长度
response.setHeader("Content-Length", b.length+"");
*Content-Language: zh-cn :服务器通过这个头,告诉浏览器语言环境
*response.setHeader("Content-Language", "zh-cn");
*Content-Type: text/html; charset=GB2312  :服务器通过这个头,告诉浏览器回送数据的类型
response.setHeader("Content-Type", "text/html;charset=GB2312");
*Refresh: 1;url=http://www.itcast.cn:服务器通过这个头,告诉浏览器定时刷新 
response.setHeader("Refresh", "1");
*设置隔2秒后转到其他的页面
response.setHeader("Refresh", "2;url=/test03/a.html");
*Content-Disposition: attachment; filename=aaa.zip: 服务器通过这个头,告诉浏览器以下载方式打数据
response.setHeader("Content-Disposition", "attachment; filename=xxxxxx.jpg");  
*获取图片,转化为输入流
InputStream ins= this.getServletContext().getResourceAsStream("Sunset.jpg");   
*写入输入流到响应的输出流
ServletOutputStream os=response.getOutputStream();
byte[] b=new byte[1024];
int len=0;
while((len=ins.read(b))!=-1){
os.write(b, 0, len);

2、servlet
*设置请求的字条编码
request.setCharacterEncoding("utf-8");
*服务器响应的字符编码
response.setContentType("text/html;charset=utf-8");
*获取流对象
PrintWriter out = response.getWriter();
*生命周期
init()
*获取servletContextp[上下文对象]对象,该对象中存放的信息是所有客户端共享的
*通过参数的名称获取参数的值,如果参数名称不存在,返回null
servletConfig.getInitParameter("cba");
*获取所有参数的名称
java.util.Enumeration<String> em=servletConfig.getInitParameterNames();
while(em.hasMoreElements())
String paramName=em.nextElement();
String paramValue=servletConfig.getInitParameter(paramName);
->多次server()
*ervice方法第2个执行,执行多次,请求一次执行一次
*servlet容器先创建两个对象,一个请求对象request,一个响应对象response
->destroy
*destroy方法执行一次,销亡的时候执行

3、genericservlet
*在开发中如何使用servlet的init方法时, 建议重写init()不带参数的方法
*获得ServletConfig
ServletConfig servletConfig=this.getServletConfig();
*service中获得ServletConfig
this.getServletConfig()
*获得初始化参数
servletConfig.getInitParameter("cba");

4、HttpServlet
*可以在doPost方法中调用doGet,也可以在doGet方法中调用doPost();

原创粉丝点击