第三天下午
封装servlet 的数据
下午开始创建实体类
注意:
//凡是外键定义成关联对象
dao service要求单例模式
dao 查询方法
1 导入驱动包
2 加载驱动类
3 获取连接
4 获取sql命令执行的操作对象
5执行sql命令获取结果集
6对结果集进行遍历 ,返回java对象
// sql语句对于关联对象需要多表连接查询 名字冲突的需要起列别名
// 查询结果进行封装有所有关联对象都需要new 一个(不然会出现空指针异常)
对username,password进行 封装 成一个user对象
创建对象 (面向接口 工厂模式解耦合)
调用 seveice方法
对结果进行判断
//特别注意:跳转后,那么后面的代码就没有执行的机会 如果后面的代码还执行会报错(页面已经跳转)
数据的作用域
application >session>request>page
application :该域中的数据,所有客户端共享 应用于:在线总人数;
session:该域中的数据,单个客户端的浏览器的多个网页共享 各个用户访问的数据一样 但是sessionid不一样 ,注意把浏览器关闭重新打开更换浏览器session里的数据会清空(Session 有效范围当前会话,从浏览器打开到浏览器关闭这个过程)
session id 是服务器强制给客户端一个sessionid 以便于保持通讯。tomcat默认给session id存在30分钟
创建:sessionid第一次产生是在直到某server端程序调用 HttpServletRequest.getSession(true)这样的语句时才被创建。
删除:超时;程序调用HttpSession.invalidate();程序关闭;
应用于: 购物车 用户名字 验证码
request:该域中的数据,从http请求到服务器处理结束,返回响应的整个过程。在这个过程中使用forward方式跳转多个jsp。在这些页面里你都可以使用这个变量
page:该域中的数据就作用当前页面
时间戳:
由于缓存机制的控制,页面的css和js文件经常不是最新的。这就导致我们不能及时看到修改效果,这个问题有个比较简单的解决方法:在文件链接后面加上时间戳。这样浏览器就认为是新的请求,不读取客户端浏览器的缓存文件,重新向服务器发送请求。
v_code.src="<%=request.getContextPath() %>/ValidateCodeServlet?date="+new Date();根据url(统一资源定位符)规则可知,“?”后内容为参数部分,不影响文件的访问。