集合类
List ArrayList解决了数组的缺陷。数组的大小合类型是固定的。
Set HashSet所有的元素是唯一的
Map List和Set的集合,数据快
多线程
Thread类
Runnable接口
两种创建多线程的方法
1.声明一个Thread类的子类,子类中重写Thread类的run方法。
Thread t=new MyThread();
2.声明一个实现Runnable接口的类,类中实现run方法。
new Runnable1()
{
public void run(){}
}
修改run方法
调用start()方法,启动线程
网络编程
三要素
IP 主机
端口 0-65535 0-1032
协议 tcp/udp (tcp必须三次握手后,建立了稳固的链接,才会开始信息通讯)
信息通讯
ServerSocket ss=new ServerSocket(7777); 绑定端口
Socket s=ss.accept(); 允许在套接字上进行传入连接尝试
i/o
InputStream is=s.getInputStream()
客户端的Socket对象上的getInputStream方法得到输入流其实就是从服务器端发回的数据。
OutputStream os=s.getOutputStream()
客户端的Socket对象上的getOutputStream方法得到的输出流其实就是发送给服务器端的数据。
byte[]bytes=new byte[1024];
int len=is.read(bytes);
os.write("abc".getBytes());
Socket s=new Socket("127.0.0.1",7777); 设定客户连接请求队列的长度
反射的应用
1.步骤,创建动态web项目
2.创建RegisterServlet(urlPattern="/register")继承HttpServlet,重写doGet和doPost,所有请求交给doGet方法处理
3.修改index.jsp文件,添加一个表单。注册User(Stirng username,String password,String realname,String tel)
4.创建Userservlet处理所有的和账号密码相关的请求
/user?method=register
5.在UserServlet先读取到mehtod的值,知道用户的意图
6.使用反射在当前类中找到对应的方法处理该请求
7.提取公共类
前端servlet问题的解决方案
1.继承BaseServlet
2.servlet.service
3.不在设置单独请求映射,在请求中添加方法参数,根据方法参数,找到对应的函数处理请求
4.反射,通过函数的名称和函数的参数类型找到方法,并且invoke该方法
5.继承,当一个类继承BaseServlet之后,BaseServlet中的共有方法就直接可以被子类调用