J2EE基础
Servlet概述
- HttpServletRequest
- HttpServletResponse
- init
- destroy
- doGet
- doPost
- Servlet可以多个url访问
- Servlet不是线程安全的
CGI和Servlet
Servlet生命周期
init->service->destroy;
get和post
doGet和doPost
看form标签
转发forward和重定向redirect
- 转发:服务器行为。
- 重定向:客户端行为。
Servlet与线程安全
不是线程安全的,多线程并发读写会产生数据不同步。
解决:
- 尽量不定义name属性
- servlet只读属性最好定义为final
JSP和Servlet
JSP是一种Servlet。
JSP | Servlet |
---|---|
先部署后编译 | 先编译后部署 |
第一次请求时编译 |
JSP内置对象
Requests、Response对象方法有哪些
getAttribute()和getParameter()
getAttribute() | getParameter() |
---|---|
服务器重定向 | 客户端重定向 |
表单中的值(Strng) | 任意对象(Object) |
表单、url重定向传值 | forward() |
include指令和行为
JSP九大内置对象、七动作、三指令
JSP四种作用域
会话跟踪技术
使用Cookie
发送cookie
Cookie c =new Cookie("name","value"); //创建Cookie
c.setMaxAge(60*60*24); //设置最大时效,此处设置的最大时效为一天
response.addCookie(c); //把Cookie放入到HTTP响应中
客户端接收cookie
String name ="name";
Cookie[]cookies =request.getCookies();
if(cookies !=null){
for(int i= 0;i<cookies.length;i++){
Cookie cookie =cookies[i];
if(name.equals(cookis.getName()))
//something is here.
//you can get the value
cookie.getValue();
}
}
url重写
在URL中添加用户会话的信息作为请求的参数,或者将唯一的会话ID添加到URL结尾以标识一个会话。
隐藏表单域
<input type="hidden" name ="session" value="..."/>
HttpSession
用户第一次访问时候自动创建。
比较
cookie | url重写 | 隐藏表单域 |
---|---|---|
数据可持久保存,不需要服务器资源 | Cookie被禁时可以使用 | Cookie被禁时可以使用 |
大小受限,可禁止cookie,存在本地 | 网站url编码,页面必须动态生成 | 表单提交才有页面 |
Cookie与Session
跟踪浏览器用户身份的会话方式。
Cookie: 保存用户信息(客户端)
- 保存登陆过的用户信息,下次自动填写。
- 保持登录,用户登录时存放了一个Token在Cookie中,下次登陆根据Token查找用户。
- 登陆网站,访问其他页面无需重新登陆。