日期:2014-05-17  浏览次数:20653 次

控制层(servlet)<text/html>的顺序问题

如果我们要新增一个部门,在控制层里可以这样写

@RequestMapping(baseUrl+"ADD"+suffix)
public void add(HttpServletRequest request, HttpServletResponse response)
	throws RuntimeException, Exception {
	response.setContentType("text/html;charset=gbk");
	PrintWriter out = response.getWriter();
	flag = departmentServiceImpl.add(request);
	if (flag > 0){
		outMsg = "{success:true,msg:'新增部门信息成功!'}";
	}else if (flag == -1){
		outMsg = "{success:false,msg:'部门名称已存在!'}";
	} else {
		outMsg = "{success:false,msg:'新增部门信息失败!'}";
	}
	out.println(outMsg);
}

?这样我们返回到页面的提示无非就是成功、失败或者是部门名称已存在。

如果我们把response.setContentType("text/html;charset=gbk");中的text/html反过来写会怎样呢。一旦我们写成了html/text,结果很明显,返回到前台的将不再是操作结果,而是提示你是否要保存文件。如果你保存了这个文件,把它拖到MyEclipse中打开,或者用写字板打开,你会发现,里面的内容就是应该返回的操作结果。抛开这么多繁琐的理论,我们完全可以这么理解:text/html就是从文本转到html页面;而html/text就是从页面转到文本。但是从html页面是不可能直接转到文本的,所以你需要下载,然后自己打开来看。