web第三天下午

tech2023-01-08  132

第三天下午

封装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(统一资源定位符)规则可知,“?”后内容为参数部分,不影响文件的访问。

最新回复(0)