1.HTTP协议不是面向连接的协议,服务器在发送完信息之后,就会将它与客户端的连接断开,因此HTTP协议不支持持久的客户信息保存
,FTP面向连接。
2.servelt的三个作用域:application---servletContext对象
session-------Httpsession对象
request-------httpServletRequest对象
3.设置网站在线人数:application = getServletContext();
application.setAttribute("count" , new Integer(0)); ----在init中,因为只调用一次init方法
int count = ((Integer)application.getAttribute("count")).intValue();----因为得到object类型要转换
count++;
application.setAttribute("count" , new Integer(count)); ----doGet中
4.web.xml中,<load-on-startup>1</load-on-startup> 是容器启动的同时,加载的第1个servlet程序
5.httpsession默认半小时,客户端下一次访问服务器时,会在请求Header中加入session ID,服务器就会根据 Header中的ID值找到相 应的session对象为客户端服务。
6.获得httpsession对象:HttpSession session = request.getSession();
为什么用request? 因为request对象中查找客户发来的HTTP Header中有没有包含session ID,如果找到了,则根据这个ID找到相应的session对象给用户;如果没有找到,则生成一个新的session对象,并赋给它一个新的且惟一的ID。
7.强制立即释放httpsession对象:session.inValidate();----一般在用户结帐之后调用
8. books = (Vector)session.getAttribute("books");----取session作用域上的books属性,(如果没取到,则绑定该名字的属性)
9.在第一个页面定义绑定bean: sqlBean = new SqlBean();
application.setAttribute("sqlBean", sqlBean);
在其他页面调用这个bean: sqlBean = (SqlBean)application.getAttribute("sqlBean");
10.jndi:Context initContext = null;
try {
initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env");
DataSource ds = (DataSource) envContext.lookup("jdbc/survey_db");
conn = ds.getConnection();
stmt = conn.createStatement();
} catch (SQLException ex1) {
} catch (NamingException ex) {
}
11.迭代Vector:Iterator itResults = results.iterator();
while(itResults.hasNext()){
out.println((String)itResults.next()+"<br>");
}
12.用ResultSet取得select的结果集,然后用rs.getInt(1)>0来判断是否有匹配的结果,此时的select 语句是 select count(*)from table where ...= ..