您的位置:首页 > 编程语言 > Java开发

v512工作室_刘伟_Java高端培训系列视频_2009年博客系统项目笔记心得

2014-12-02 09:47 661 查看
1.从数据库中读取date类型的数据进行显示java.text.SimpleDateformat
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
String date=sdf.format(blog.getCreatedTime());
sdf=new SimpleDateFormat("hh:mm:ss");
String time=sdf.format(blog.getCreatedTime());
2.(1)创建session并将对象存入数据库中
user = (User) list.get(0);
   HttpSession session = request.getSession();
   session.setAttribute("user", user);
   request.getRequestDispatcher("/admin/admin.jsp").forward(request,response);
(2)从session中读取对象来判断用户是否已经登录
HttpSession session=request.getSession();
User user=(User)session.getAttribute("user");
if(user==null){response.sendRedirect("/blog/admin/login.jsp");}else{ }
(3)session的销毁:HttpSession session = request.getSession();
  session.invalidate();
  response.sendRedirect("/blog");
3.让一个类实现java.io.Serializable接口是为了让这个类的状态序列化或者反序列化,对显示的时候排序有一定作用。
4.request的属性setAttribute()只有转发过去才能拿到值,如果是重定向过去就拿不到这个值,并且request的生存周期只在于服务器端的那一次,也就是说,如果是在客户端跳转是拿不到值的,并且,在服务器端跳转之后那个属性值就没有了。而不是想session一样默认有30s的生存时间。
5.request.getAttribute("nameOfObj")可得到JSP页面一表 单中控件的Value。其实表单控件中的Object的 name与value是存放在一个哈希表中的,所以在这里给出Object的name会到哈希表中找出对应它的value。
而不同页面间传值使用request.setAttribute(position, nameOfObj)时,只会从a.jsp到b.jsp一次传递,之后这个request就会失去它的作用范围,再传就要再设一个request.setAttribute()。而使用session.setAttribute()会在一个过程中始终保有这个值。
P.S.:JavaScript与JSP中不能相互传值,因为JavaScript运行在客户端,而JSP运行在服务器端。若想使它们之间可以相互传递参数,可以在JSP中设置一个hidden控件,用它的value结合上面所说的用法来传递所需的数值。
6.为什么request.setAttribute()后面的Object参数不能是boolean类型的?
request, session, application, pageContext这几个对象的setAttribute(key, value)方法放进去的value一定是对象,不能是基本类型或说原生类型(如:int,boolean,float,double等,string除外),即一定是基本类型或说原生类型的包装类:Integer是原生类型:int的包装类,Boolean是原生类型:boolean的包装类等等:
例:
request.setAttribute("USERNAME","james");
session.setAttribute("NUMBER",new Integer(123));
application.setAttribute("BOOLEAN_KEY",new Boolean(false));
7.FLUSH(),不是FRESH()。Flush() 是清空,而不是刷新,主要用在IO中,即清空缓冲区数据,就是说你用读写流的时候,其实数据是先被读到了内存中,然后用数据写到文件中,当你数据读完的时候不代表你的数据已经写完了,因为还有一部分有可能会留在内存这个缓冲区中。这时候如果你调用了 Close()方法关闭了读写流,那么这部分数据就会丢失,所以应该在关闭读写流之前先Flush(),先清空数据。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐