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')

 

原文地址:https://www.cnblogs.com/happy0120/p/7193100.html