JavaWeb之Cookie技术和Session技术
会话跟踪技术(状态管理)
Http协议是无状态的,没有记忆能力.在浏览器与服务器交互时,因为无状态的特性,会导致无法连贯的交互.
HTTP协议实现状态管理,有两种方式:
1.Cookie技术: 将交互时产生的状态 存储在客户端中.
2.Session技术: 将交互时产生的状态 存储在服务器中.
Cookie技术
1.当服务器向客户端响应时,可以向响应头中加入Cookie,每一个Cookie表示一个键值对
2.当浏览器接收到响应头中的Cookie后,会将其存储在本地的一个文本文件中,
3.当浏览器再次访问相同的服务器时,会去文本文件中寻找这个服务器之前存储的Cookie
4.将寻找到的Cook ...
JavaWeb之Servlet线程安全、请求的转发与重定向、HttpServletRequest与HttpServletResponse类、ServletContext对象
Servlet线程安全问题
Servlet的service方法的调用比较特殊:service方法的执行, 每一次都是在新的线程中.
因为service方法,执行在新线程中, 有可能同时存在多个线程.多线程操作时, 有可能发生线程安全问题
1.静态的同步方法的同步锁 --> 类.class这个对象
2.非静态的同步方法的同步锁 --> this对象
3.同步代码块的同步锁 --> 程序员使用时提供.
代码块有{ }构造代码块,每次调用外面的方法是首先执行它,static{ }类加载时执行它.
123456789101112131415161718192021222324252 ...
JavaWeb之ServletConfig对象、GET与POST请求和请求乱码
ServletConfig对象
是Servlet的配置对象,每一个Servlet都拥有一个配置对象。我们在web.xml中,进行servlet的配置时,可以向Servlet中添加初始化的参数,这些参数,会被存储到一个ServletConfig对象中.
12345678910111213141516<servlet> <servlet-name>s1</servlet-name> <servlet-class>demo.Servlet1</servlet-class> <init-param> ...
JavaWeb之Http协议、Servlet两种映射网址和生命周期
HTTP协议
超文本传输协议 , 是一个应用层的网络传输协议. 属于TCP/IP协议集中的一个子协议
特点:简单快速;无连接协议,每次连接服务器只处理一次请求,处理完毕,立即断开;无状态协议,处理客户端的请求时,服务器没有记忆能力;支持多种不同的数据提交方式,GET/POST等等;支持任意类型数据传输,较为灵活.
HTTP协议的组成部分
请求
请求头(request header)
请求的头部信息 , 由一个个的键值对组成, 这些键值对描述的是客户端的信息.
请求体
GET请求不存在请求体 ,将请求的参数存储在网址中;POST请求请求体的作用:用于存储客户端请求的数据
请求空行
请求头部与 ...
Java数据库之连接池
数据库连接池
频繁的连接和释放操作是一个非常耗时耗资源的行为,当并发访问数量较大时,执行速度受到极大影响,所以预先同数据库建立一些连接,放在内存中.应用程序需要建立数据库连接时直接从该内存中申请一个,用完后再放回去
DBCP
DataBase-Connection-Pool数据库连接池,是java数据库连接池的一种,由Apache开发,通过数据库连接池,可以让程序自动管理数据库连接的释放和断开。没有自动回收空闲连接的功能
在ojdbc.jar和commons-dbutil.jar基础上导入commons-dbcp.jar,commons-pool.jar
与JDBC不同的 ...
Java数据库之JDBC高级使用
DAO模式
Data Access Object(数据存取对象),位于业务逻辑和持久化数据之间,实现对持久化数据的访问。
DAO模式的组成部分有DAO接口,DAO实现类,实体类的包名:entity、models、pojo、vo,数据库封装工具类
DBUtil
DBUtils是Apache组织提供的一个对JDBC进行简单封装的开源工具类库,使用它能够简化JDBC应用程序的开发,同时也不会影响程序的性能
JDBC高级使用-加入DBUtils
导入ojdbc.jar和commons-dbutils.jar
DBUtils的三大核心功能
QueryRunner类中提供对 ...
Java数据库之JDBC的含义和初级使用
JDBC的含义
JDBC(Java DataBase Connectivity)Java数据库连接技术的简称,提供连接各种常用数据库的能力
JDBC的初级使用
只导入ojdbc.jar
使用properties文件和工具类DB.class(此类自建的公用的类)
在项目下的src目录下,创建abc.properties文件,并输入
1234a=oracle.jdbc.driver.OracleDriverb=jdbc:oracle:thin:@localhost:1521:orclc=raoweijiad=123
在项目下的src目录下,创建tools目录,然后在此目录下 ...
Java核心之设计模式、查找和排序算法
多个工厂方法模式
在普通工厂模式下改动SendFactory类就行.
12345678910public class SendFactory { // 自定义成员方法专门生产邮件发送者的对象 public Sender produceMail() { return new MailSender(); } // 自定义成员方法专门生产短信发送者的对象 public Sender produceSms() { return new SmsSender(); }}
改动SendFactoryTest类
123 ...
Java核心之设计原则和设计模式
使用基于tcp协议的编程模型实现将Message类型对象由客户端发送给服务器:
服务器接收到对象后判断用户对象信息是否为"admin"和"123456",若是则将Message对象中的类型改为"sucess",否则将类型改为"failed"并回发给客户端.
客户端接收到服务器发来的对象后判断并给出提示。
其中Message类的特征有:类型(字符串类型) 和 用户对象(User类型)。
其中User类的特征有:用户名、密码(字符串类型)。
123456789101112131415161718192021222324 ...
Java核心之网络常识
网络编程的常识
七层网络模型
OSI(Open System Interconnect),即开放式系统互联,是ISO(国际标准化组织)在1985年研究的网络互连模型.
OSI七层模型和TCP/IP五层模型:
当发送数据时,按照上述七层协议从前向后一层层进行加包处理再发送;
当接收数据时,按照上述七层协议从后向前一层层进行拆包处理再显示;
IP地址
如:192.168.1.1 - 是绝大多数路由器的默认登录地址,设置账号和密码及Mac地址过滤
IP地址 - 是互联网中的唯一地址标识,根据IP地址可以定位到具体某一台设备。
IP地址本质上是由32位二进制组成的整数,叫做IPv4, ...