三晋一枝花

全靠奋当家

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  13 Posts :: 0 Stories :: 2 Comments :: 0 Trackbacks

#

天行健,君子以自强不息。
这句话我虽然理解不深,但我认为学习绝非一个人的事,它需要与其它人交流,如果只是闷头学,可能一天就能理解了的东西,你要理解一年,甚至更长。
希望各位高人能对我的学习进行指导,部分问题在此处提出,如果你知道或有理解,请予以评论,谢谢。

-------------------------------------------
1、标签库
我知道了标签库的概念,但我不知道在现在这种框架开发模式下,是否还需要学习标签库的开发等,请指导。此处的学习我先略过了,等需要时再看吧。

2、用户跟踪

对访问站点的用户进行跟踪,可以有以下方法(三种主要机制):Cookies、URL 重写、隐藏式表单域

操作Cookies:
    <%
        Cookie mycookie=new Cookie("user","wuxs");//创建一个Cookie对象
        mycookie.setMaxAge(24*60*60);//设置Cookie的存活期
        response.addCookie(mycookie);//将Cookie存储
    %>
    <%
        //获取Cookie
        Cookie[] cookielist=request.getCookies();
        ..........
        Cookie mycookie=cookielist[i];
        if (mycookie.getName.equals("user")){out.println(mycookie.getValue());}
    %>

使用会话,Session:
使页面可以支持会话:<% page language="java" import="java.util.*" session="true" %>,默认是支持的,如果要使其不支持会话,则可以将其设为false

在Session中存储数据:
Integer i=new Integer(1);
session.setAttribute("userAccessTimes",i);
如上,保存会话的属性值用的是整型对象而不是简单数据类型int。因为 Session 对象只能存储对象,而不能保存像int 这样的简单数据类型。

获取Session中的数据:
Integer i=(Integer) session.getAttribute("user");

检查新会话:
if (session.isNew()){....}    //什么是新会话?

获取会话标识符:
String sid=session.getId();

删除会话:
当不需要会话时,可以立即将会话失效。session.invalidate();

会话超时:
由于http 协议是无状态的,因此判断用户是否活动的唯一机制是超时。所以要确保会话定期刷新。
可以使用session.getMaxInactiveInterval()方法获取最大超时时间,可以用session.setMaxInactiveInterval()方法进行设置。
在配置文件中web.xml这样设置:
<webapp>
    <session-config>
        <session-timeout>-1</session-timeout> 
   </session-config>
</webapp>
可以将会话设为永不超时。

会话范围:有page , session ,request , application ,但没有理解

application 对象:
application 对象提供方法:getAttribute()、setAttribute()、getAttributeNames()、removeAttribute()

边学边更新中....
posted @ 2008-10-09 15:40 三晋一枝花 阅读(167) | 评论 (0)编辑 收藏

1、如何从表单获取参数值?
request.getParameter("pname");

如何从表单获取多个值?
request.getParameterValus("pname");

request 是J2EE Web容器提供的隐含变量,request 对象的类型是HTTPServletRequest。

2、java.io.Serializable 是做什么用的?

3、 每个JavaBean 或类在修改后,都要重新执行编译才能使用,目前知道的方法是重新启动服务器,不知道还有没有其它方法;

4、JavaBean 与 EJB 有很大的不同,JavaBean  可以理解为单个类来使用,它可以在服务器端(<%%>)使用,也可以在客户端(使用标签:jsp:userBean)使用;而EJB 是具有事务处理,数据库连接池、安全等功能的服务器组件,EJB 很复杂。

要把一个类作为JavaBean 使用,其构造函数必须为空。

5、标签库:
标签库处理程序类、标签库描述符(TLD)、标签库指示这三部分是使用标签库的最重要的概念。

6、Java 中的类的概念

抽象类与接口的区别:
a、抽象类可以实现一部分方法,而接口所有的方法都没有实现;b、子类只可以从一个超类继承,但可以实现多个接口

方法的重载:
类中的同名方法,如果参数不同,则为方法的重载;
如果类实现了父类的方法,也为重载。

main() 方法:每个JAVA应用程序都有一个main() 方法,这个方法是应用程序的入口点,它的定义为:
public static void main(String[] args)

7、集(Collection)的概念,集框架提供了一组设计好的接口,把集分成三类:
集合(java.util.Set)
列表(java.util.List)
映射(java.util.Map)

集合(Sets)是一组无序的对象;
列表(Lists)是一组有序的对象;
映射(Maps)是一组成对保存的对象;

在java.util 中,有9种集类用来操作上述三种接口的集;列表如下:
 接口                    集类
Set                        HashSet , TreeSet
List                        Vector , Stack , ArrayList , LinkedList
Map                        HashTable , TreeMap , HashMap , WeakHashMap

最常用的三个集类是:ArrayList , Stack , HashMap

8、ArrayList 的容量:capacity ,是指可存放的对象的多少;
ArrayList 的大小:Size ,是指当前存放的对象的多少;

9、集的循环接口 Iterator
引入类:java.util.Iterator
然后对集类调用iterator()方法,得到一个循环子 iterator,该类具有三个方法:next() , hasNext() , remove()

import java.util.Iterator;
Iterator userIter=userList.iterator();
while(userIter.hasNext()){
    User usr=(User) userIter.next();
    out.println(usr.getUserName());
}

10、ArrayList 的排序
ArrayList 可以排序,这个功能是由集框架的一个静态方法提供的,引入:java.util.Collections
举例:
ArrayList names=new ArrayList();
names.add("aaaa");
names.add("cccc");
names.add("bbbb");
此时,如果用循环子输出,得到的结果同上;

Collections.sort(names);
此时再用循环子输出,得到的是aaaa,bbbb,cccc

但,要对自定义的类进行排序,就需要在类中实现java.lang.Comparable 接口。

11、栈集,Stack,先进后出
类:java.util.Stack
基本操作:
push() ,向栈中放入一个项
pop(),从栈顶删除一个项
----
peek(),从栈顶返回一个项,但不删除
empty(),栈是否为空
search(),在栈中查找某个对象,,找到后返回离栈顶的偏移;否则,返回-1

12、HashMap 集
类:java.util.HashMap
基本操作:
put(),放入一对值;
get(),根据键获取关联值;
----
remove(),从映射中删除指定键的值,并返回该值
size(),返回键值对的数量
putAll(),将某个“键--值对”对象传递给另一个“键-值对”

13、Date类和Time类
日期的比较:
Date myDate=new Date();
Date currentDate=new Date();
myDate.compareTo(currentDate);
如果相等返回0,如果调用方法的值晚,则返回正数;如果调用方法的值早,则返回负数;

日历类:
java.util.Calendar,其中包含了多种日历类;
罗马日历类:GregorianCalendar

格式化日期:
java.text.SimpleDateFormat,允许我们自定义格式化模式;

14、错误处理
错误有两种,一种是Error,叫错误,代码中不能处理;一种是Exception ,叫异常,代码中可处理;

抛出异常用 throw 语句。如:throw new Exception("Bad things just happened");

处理异常的方式:
内部方式:在try块中可以捕获抛出的异常,可以在catch 块中处理;
外部方式:抛出异常的方法声明了该异常可以处理,如下:
public void validateUser(pageContext page) throws Exception

实例:
public void validateUser() throws Exception(){
    if(!userpwd.equals("wuxs")){
        Exception trouble=new Exception("密码不正确。");
        throw trouble;
    }
}


14、JSP中的错误处理页
错误处理页和其它JSP页面页一样,但增加了隐含的对象用于跟踪错误。
创建一个错误处理页有4步:
A)、让JSP页面知道一旦出错要用哪个错误处理页。<%@ page errorPage="error.jsp" %>
B)、构建错误处理页面;
C)、在错误处理页,设置page指示的isErrorPage 属性为真。这个属性告诉JSP容器为错误处理页面去创建一个exception 隐含对象。<% page isErrorPage="true" %>
D)、在错误处理页面中,exception 隐含对象指向一个在原始JSP页面中出现的异常,可以通过代码进行处理。

posted @ 2008-10-07 21:04 三晋一枝花 阅读(129) | 评论 (0)编辑 收藏

学习就像游泳,刚开始学的时候,总是怕被水呛着,于是总想把头露出来;可是发现身子总往下沉;等学会游泳了,发现想往水下游是那么的不容易,身子总往水上漂。
而学一门技术,一开始总是发现有很多很深奥的东西想知道,却怎么也弄不明白;等你学会了,却发现有好多一开始清楚的概念反而模糊了。

--------------------------------------------
Java 是门语言;J2EE 是个平台,用来在其上建筑其它的内容。
JavaBean 是类包;(在第二天的学习中发现,JavaBean 是类,并且是一个构造函数不带任何参数的类,是否正确,还要继续验证)
Servelet 是可以与JavaBean 及Jdk 打交道的一个东西,Jsp 其实就编译成了一个Servelet。
EJB 还说不清;
框架是基于Java 基础类库,为解决各类问题而设计的一种解决方案;
Spring 、Struts、Hibernate、DWR都是框架;
框架并不是互相不兼容的,而是多种框架可以共存。

MyEclipse 和Eclipse是开发环境,类似于.Net 的Visual Studio ,开发环境并没有提供任何框架的技术,而是允许你将各种技术在这个环境中更容易的使用。

---------------------------------------------------------
新手学习笔记,仅供高手指导,不要以我为参考。

posted @ 2008-10-07 20:09 三晋一枝花 阅读(111) | 评论 (0)编辑 收藏

仅列出标题
共2页: 上一页 1 2