一、JavaBean
1.概念
普通的java类,只不过封装了重用的“业务逻辑”,由于javabean是基于java语言的,因此javabean不依赖平台。
2.分类
(1)可视化软件组件
具有可视化表示,接收并响应用户时间的软件组件
(2)非可视化软件组件
完成特定功能的功能性组件
3.特点
(1)可以实现代码的重复利用
(2) 易编写、易维护、易使用
(3)可以在任何安装了Java运行环境的平台上的使用,而不需要重新编译。
4.编写
(1)标准的Java类,一般不继承其他类
(2)属性私有,建议采用包装类型
(3)访问器公有,标准的setter/getter驼峰命名形式,故属性名应大于2个字母
(4)定义一个无参构造方法
(5)实现Serializable接口
二、Jsp中提供了三个动作:
UseBean,setProperty,getPorty
三、useBean动作
1. 使用
jsp:useBean动作用于在指定的范围内寻找指定名称的JavaBean对象,如果找到,则返回该对象的引用可以操作里边的属性。如果没有找到则重新实例化一个对象。并且将其存储到指定的域范围。
2.JSP语法:
<jsp:useBean id=” 类的对象名称” class=”com.xync” scope “page|request|session|application”></jsp:useBean>
注:id:相当于实例化一个类对象
class:指定javaBean的完整类名,需要带有包名
scope:存储的范围,默认是page
四、内置对象的属性范围
Page<Request<Session<Application
1.page,表示该Bean只在当前页面可用,(保存在当前页面的pageContext内),有效范围是当前页面。根据需要进行设定。
2.Request,表示该Bean在当前客户请求内有效(保存在ServletRequest内置对象内)。有效范围在一个单独客户请求的生命周期内。这个需要注意。
3.Session,表示该Bean对当前HttpSession内的所有页面都有效,有效范围是整个用户会话的生命周期内。
4.Application,表示该Bean对所有具有相同的ServletContext的页面都有效。有效范围是应用的生命周期内。相当于全局变量,所有客户端都能看见。
五、访问权限
private<default<protected<public
1.private: Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的类、属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。
2.default:即不加任何访问修饰符,通常称为“默认访问模式“。该模式下,只允许在同一个包中进行访问。
3.protect: 介于public 和 private 之间的一种访问修饰符,一般称之为“保护形”。被其修饰的类、属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。
4.public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问。
六、Cookie与session的区别与相同
区别:
(1)存放位置不同
cookie保存在客户端,
session保存在服务端
(2)存取方式不同
cookie 只支持存字符串数据,想要设置其他类型的数据,需要将其转换成字符串,
session中能够存取任何类型的数据
(3)安全性不同
cookie存储在浏览器中,对客户端是可见的,客户端的一些程序可能会窥探、复制以至修改cookie中的内容。
session存储在服务器上,对客户端是透明的,不存在敏感信息泄露的风险。
(4)存储大小不同
cookie最多可以存放4k大小的内容,session则没有限制。
(5)周期不同
Session周期是相对时间,cookie周期是绝对时间
相同:
(1) 为了解决HTTP协议的无状态性提出的
(2) 可以理解为二维表,key—value
七、JDBC
//1.加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");//反射机制 jdbc 注册驱动/ioc
//2、创建数据库连接
Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/数据库名称?serverTimezone=UTC&useSSL=false", "root", "密码");
//3、创建statement对象
Statement statement = connection.createStatement();
//4、定义SQL语句并处理执行(一般数据库的操作绝大多数是DML,其中select需要结果集,其他不需要)
//(1)查询用statement.executeQuery("查询sql语句")方法 执行 sql 语句
resultSet = statement.executeQuery("此为查询sql语句");
boolean result = resultSet.next();//如果查询不到数据 返回 false
//(2)新增、修改和删除用statement.executeUpdate("新增、修改和删除sql语句")方法 执行 sql 语句
int result = statement.executeUpdate("此为新增、修改和删除sql语句");//返回影响行数 判断是否执行成功
//5、释放连接(后打开的先关闭)
//(1)查询
resultSet.close();
statement.close();
connection.close();
//(2)新增、修改和删除
statement.close();
connection.close();
八、客户端与服务器端的跳转
1. 使用服务器端跳转时,客户浏览器的地址栏并不会显示目标地址的URL,而是用客户端跳转时,地址栏当中会显示目标资源的URL;
2. 服务器端跳转是由客户端发送一个请求,请求一个服务器资源,如JSP和Servlet,这个资源又将请求转到另一个服务器资源,然后再给客户端发送一个响应,也就是说服务器端跳转是客户端发送一次请求,服务器端给出一次响应。
而客户端跳转的流程则不同,客户端同样是发送一个请求给服务器端资源,这个服务器资源会首先给客户端一个响应,客户端再根据这个响应当中所包含的地址,再次向服务器端发送一个请求,也就是说客户端跳转是两次请求,两次响应;
3. 在进行客户端跳转和服务器端跳转时,都需要指定目标资源的URL,如果这个路径以“”开始。在客户端跳转当中“”代表的是应用服务器根目录,而在服务器端跳转当中代表的是应用程序根目录。
4.服务器端只能进行站点内的跳转,而客户端可以进行站点外的跳转