先说说数据压缩,
public class GzipServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String str=""或许你也一样,每天匆匆走过熟悉的街道,擦肩万千陌生的面孔;或许你也一样,时而驻足凝固正在逝去的时间.生活依然在前进,但我却还在这里,生命始终在寻找,曾走过的街角.这将是一次相遇与轮回,因为我们生于街头!;
byte[] src = str.getBytes();
System.out.println("src-length:"+src.length);
//把字节数组src中的数据 压缩到 array内存流当中
ByteArrayOutputStream array = new ByteArrayOutputStream();
GZIPOutputStream gOut = new GZIPOutputStream(array);
gOut.write(src);
gOut.close();
//从内存流array中把压缩后的数据拿出来
byte[] dest = array.toByteArray();
System.out.println("dest-length:"+dest.length);
response.setContentType("text/html");
response.setHeader("Content-Encoding","gzip");//告诉浏览器,当前发送的是gzip格式的内容
//response.setContentLength(dest.length);//设内容长度---法1
response.setHeader("Content-Length", ""+dest.length);//设内容长度---法2
OutputStream out = response.getOutputStream();
//out.write(src);
out.write(dest);
out.flush();
out.close();
}
}
以下是默认路径的解说,web.xml配置如下:
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>cn.hncu.servlets.DefaultServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
默认Servlet,当请求的路径在web.xml中没有匹配上,那么就导向该servlet,避免客户端出现404这些找不到资源的错误。注意,它可能会屏蔽掉我们放在安全目录以外的有效的资源(因为这些路径没有在web.xml中配置)
默认Servlet通过只会在项目正式发布时配置,测试阶段一般不会,因为我们无法看到具体的出错信息。