思维导图
一、页面跳转的方式:
1、重定向 response 它可以能够跳转到任意界面,地址栏发生了改变, 但是不能将值传播到下一个界面
//1.重定向 response
//能够将页面跳转 地址栏发生了改变 但是不能将值传播到下一个界面
//能够跳转到任意界面 在客户端发挥作用
response.sendRedirect("http://www.baidu.com");
2、转发 request 它只能够转发到当前的项目内资源,能够将值传播到下一个界面 但是地址栏不发生改变而是停留在了之前的界面
//转发 request
//能够将页面跳转 能够将值传播到下一个界面 但是地址栏不发生改变而是停留在了之前的界面
//只能够转发到当前的项目内资源 在服务器端发挥作用
request.getRequestDispatcher("http://www.baidu.com").forward(request, response);
3、js的跳转属于哪一种?
out.print("<script>alert('用户名或者密码有误');location.href='login.jsp';</script>");
属于重定向 因为地址栏发生了改变
二、JDBC:
1、JDBC是Java数据库连接技术的简称,提供连接各种常用数据库的能力
2、JDBC API可做三件事:与数据库建立连接、执行SQL 语句、处理结果
2.1、jdbc连接Oracle数据库: 导入驱动包
连接: jdbc:oracle:thin:@localhost:1521:orcl 注意:打错一个就连接不上了
2.1、连接步骤:
1、导入驱动包
2、加载驱动
3、连接Oracle
4、定义SQL语句
5、获得执行对象
6、关闭资源
//两个字符串
String URL="jdbc:oracle:thin:@localhost:1521:orcl";
String CNAME="oracle.jdbc.driver.OracleDriver";
//OracleDriver
//加载驱动
Class.forName(CNAME);
//创建连接
Connection con=DriverManager.getConnection(URL, "scott", "tiger");
//定义sql语句
//使用了标识列就不要id了
String sql="insert into tb_0328(sname,spwd,ssex,shobby,saddress,sbak) values(?,?,?,?,?,?)";
//获得执行对象
PreparedStatement ps=con.prepareStatement(sql);
//给占位符赋值
//ps.setInt(1, Integer.parseInt(id));//String-->int
ps.setString(1, name);
ps.setString(2, pwd);
ps.setString(3, sex);
ps.setString(4, hobby);
ps.setString(5, address);
ps.setString(6, bak);
//开始执行
//...增删改 影响行数 int
//..查 结果集 集合
int n=ps.executeUpdate();//获取影响行数
//关闭资源
//...增删改 2个
//...查 3个 rs
if(con!=null&&!con.isClosed()){//不为空且没有关
con.close();
}
if(ps!=null){
ps.close();
}
//判断
if(n>0){
response.sendRedirect("success.jsp");
}else{
out.print("插入失败");
}
3、JDBC进行数据的提交是否需要commit?
不需要,因为JDBC帮你提交了
三、Oracle标识列:序列+触发器
--创建序列
create sequence ss_0329;
--创建触发器
create or replace trigger tc
before insert --注意:前触发
on tb_0328 --表
for each row
begin
:new.sid :=ss_0329.nextval ; --拿到序列的下一个值给临时表:new的学号列
end;