1. application对象:
void setAttribute(String key,Object value): 以key/value的形式将对象存储到appliction中
Object getAttribute(String key): 通过key获取application中存储的对象
String getRealPath(String path): 返回相对路径的真实路径
2. 统计访问人数:
登陆控制页面:
<%
Integer count=(Integer)appliction.getAttribute("count");
if(count!=null){
count=count+1;
}else{
count=1;
}
appliction.setAttribute("count",count);
%>
统计页面增加:
<%
Integer i=(Integer)appliction.getAttribute("count");
out.printIn("统计访问量"+i+"个人访问过本网站");
%>
3. 对象的作用域:
page作用域: 指单一JSP页面的范围,只能在创建该对象的页面中访问。在客户端每次请求JSP页面创建,在服务器发送响应或请求转发到其他
页面或资源后失效,pageCountext对象本身也属于page作用域
request作用域: 是与客户端请求绑定在一起,其作用域比page作用域的范围要大
session作用域 :
application作用域: 面对整个Web程序,服务器启动后会创建一个application对象,被所有用户共享
4. coolie:
由服务器端生成,发送给客户端浏览器的,浏览器会将其保存为某个目录下的文本文件
作用表现:
对特定的对象追踪
统计网页的浏览次数
在cookie有效期内,记录用户登录信息
实现各种个性化服务
5. 在JSP中使用cookie
5.1创建cookie对象:
Cookie newCookie=new Cookie(String name,String value);
5.2写入cookie:
response.addCookie(newCookie);
常用方法:
void setMaxAge(int expiry):设置cookie的有效期,以秒为单位
void setValue(String value): 在cookie创建后,为cookie赋予新的值
String getName(): 获取cookie的名称
String getValue(): 获取cookie的值
int getMaxAge(): 获取cookie的有效时间,以秒为单位
5.3读取cookie:
5.4 cookie与session区别:
session是在服务器端保存用户信息,cookie是在客户端保存用户信息
session中保存的值是Object类型,cookie保存的是String类型
session随会话的结束而将其存储的数据销毁,cookie可以长期保存在客户端
cookie通常用于保存不重要额用户信息,重要的信息使用session保存
6. JSP访问数据库:
6.1 加载JDBC驱动
6.2 与数据库建立连接
6.3 发送SQL语句
7. JavaBean:
实际上是一个Java类,可以重用,功能可分为:封装数据,封装业务
满足以下要求:
JavaBean是一个公有类,并提供无参的公有构造方法
属性私有
具有公有的访问属性的getter,和setter方法
第二章回顾:
1. 内置对象:
out 用于向客户端输出数据
request 主要用于处理客户端请求的数据信息
response 用于响应客户端请求并向客户端输出信息
session 用于记录会话状态的相关信息
appliction 类似于系统的全局变量,用于实现Web应用中的资源共享
page
pageContext 提供了在JSP运行时访问和其他相关的环境信息的功能,常用方法:
ServletRequest(): 获取request对象
ServletResponse(): 获得response对象
HttpSession getSession(): 获得session对象
JspWriter getOut(): 获取out对象
void setAttribute(): 保存属性
Object getAttrubute(): 获得属性
void inclute(): 请求指定的资源,并将目标资源的响应结果包含在调用页面的响应中
config
exception
2. request如何解析用户表单提交过来的数据
String name= request.getParameter("userName");
<form>
<input type="text" name="userName"/>
</form>
3. 给request作用域:
request.setAttribute("key",Object obj);
List<Student> list=(List<Student>)request.getAttribute();
4. 转发和重定向:
请求次数:
重定向2次,转发1次
转发相当于服务器内部的一个行为,客户端根本无法感知到这个动作
URL地址:
重定向最终页面,转发中间页面
数据:
重定向不懈怠数据,转发携带数据
5. response用来对客户端请求做出相应
6. session技术,一次会话
session.setAttribute("uname","你好");
session.setAttribute("uname",user);
认证通过,客户才有权限访问其他的业务模块
7. 注销:
1. 清空session
2. 跳转到登陆
8. include:只能写相对路径
<%@ include file="xxx.jsp"%>
静态包含
动态包含<jsp:include>
session Loginout
单独抽取一个Loginout.jsp
9. application: 统计网站的访问次数
Object类型不能转成值类型,要转成值类型的包装类
10.作用域:
pageContext
request
session
application
11 cookie:
实现session基础,cookie保存着sessionid,每次请求都要携带该网站的sessionid
与server上的sessionid匹配,最终判定用户状态,(登陆的,可以进行后续业务操作)
12 cookie的分类:
会话级别cookie:
没有设置setMaxAge(60)
硬盘级别cookie:
cookie不是内置对象,因为要new
必须通过response.addCookie(cookie);
cookie形成在server端,存储在client端
<body>
<form action="/Day03_0100/session/do.jsp" method="post">
登录名: <input type="text" name="txtName"/><br/>
密码:<input type="password" name="txtPwd"/>
<input type="submit" value="登录"/>
</form>
</body>
<%
//解决乱码
request.setCharacterEncoding("utf-8");
String name = request.getParameter("txtName");
String pwd = request.getParameter("txtPwd");
if ("1".equals(name) && "1".equals(pwd)) {
session.setAttribute("txtName", name);
Cookie cookie = new Cookie("txtName", name);
Cookie cookiepwd = new Cookie("txtPwd", pwd);
cookie.setMaxAge(60);
response.addCookie(cookie);
response.addCookie(cookiepwd);
request.getRequestDispatcher("/ssession/success.jsp").forward(
request, response);
} else {
response.sendRedirect("/Day03_0100/session/login.jsp");
}
%>
<body>
欢迎您 :<%=session.getAttribute("txtName") %>
<br/>
<a href="<%=path %>/session/loginout.jsp">注销</a>
</body>