servlet相关
7-17
1、response中的 addHeader 如果没有则添加,如果已经有了就保持原来的值, setHeader 如果没有则添加,如果有了则更新
response.setHeader("content-disposition", "attachment;filename="+fileName); 设置文件是否为下载附件
response.setHeader("refresh", "5") 每5s刷新一次页面
<meta http-equiv="Refresh" content="5;url=http://www.baidu.com"> 5s钟后跳转到百度
2、重定向的两种方式
response.setHeader("Location","http://www.baidu.com") ;response.setStatus(302) 转发是307
或者 response.setRedirect("http://www.baidu.com")
必须加http://
3、js css的引用 使用绝对地址 ${pageContext.request.contextPath}或者<%=request.getContextPath()%> 效果一样
<%@include file="../taglib.jsp"%> 一般都会在这里配置basePath ,然后再pageContext中setAttribute,便可以在其他的jsp得到basePath
4、request
获得参数的4种方式,getParamter 普通参数,getParamterValues 返回数组 getParamterName返回Enumeration
getParamterMap 获取所有的name属性以及值返回map<String,String[]>
直接在形参中String name,也可以得到name的值,若name有多个值,会自动转换成逗号相隔的字符串,如兴趣爱好可以用这样方式得到,
若是想要数组的话,也可以用String【】name,和getParamterValues 一样,也可以直接放实体类Model
request的中文乱码问题,若是get方式提交,则得到的数据new String(name.getBytes("iso8859-1","utf-8")),或者在tomcat中添加uriEncoding="utf-8"; 若是post方式提交,则设置request.setCharacterencoding("utf-8")便可
response.getWriter.print(json.toString()),只需要设置这个就可以了,response.setContentType("text/html;charset=utf-8") 返回页面的编码 而若是直接输出的是汉字,则还需要response.setCharacterEncoding("utf-8");
5 spring mvc重定向带参数 RedirectAttributes 在3.1版本以后才出现
参数绑定
input与参数名一致,自动完成绑定,若不一致使用@RequestParam来转换,但是input传递的值不能为null或“ ”,否则会报错,所以参数最好设定为包装类型,这样可以进入到方法中,不会报错,@RequestParam中的可以设置required来设置参数是否必须
对象User 或者包装类VO,只要input中的属性与其属性对应,则可以绑定数据成功
注意若实体类中包含date类型,则需要类型转换,@initBinder
6、bean的ID和name都可以作为属性,区别在于id不可以重复,name可以重复,所以正常使用使用ID属性,name重复后会取最后加载的bean作为实例,并且name命名不规划的时候,初始化并不会报错,只会在getbean抛出异常,如果id和那么都没有指定,则用类型全名作为id 例如getBean('com.imp.demoService')