思维导图
笔记:
一、页面跳转的方式以及区别
1.重定向:response(响应)
response.sendRediect();//快捷方式记:resq.sendr
注意:--js的跳转也是属于重定向
//页面跳转方式
//假设法:假设数据表里面存在用户名为admin的用户 密码为123456
if("admin".equals(name)&&"123456".equals(pwd)){
//说明登录成功
//页面跳转方式2种
//1.重定向response 能狗将页面跳转 地址栏发生了改变 但是不能讲值传递到下一个界面
//可以跳转到任意资源 在客户端发挥作用
response.sendRedirect("http://www.baidu.com");//resq.sendr
}
else{
//说明登录失败提示用户并且返回登录界面 js的跳转属于重定向 因为地址栏发生了改变login->dologin->login
//输送到页面
out.print("<script>alert('用户名或者密码有误');location.href='login.jsp'</script>");
//}
重定向
对应response对象
response对象用于响应客户请求并向客户端输出信息
response.sendRedirect(String location):将请求重新定位到一个不同的URL
2.转发:request(请求)
request.getRequestDispatcher("http://www.baidu.com").forward(request, response);//简便快捷方式记:req.getreq.for
//页面跳转方式
//假设法:假设数据表里面存在用户名为admin的用户 密码为123456
if("admin".equals(name)&&"123456".equals(pwd)){
//说明登录成功
//页面跳转方式2种
2.转发request 能够将页面跳转 能够将值传递到下一个界面 但是地址栏不发生改变而是停留在了之前的界面
//只能跳转到当前的项目内资源 在服务器端发挥作用
request.getRequestDispatcher("http://www.baidu.com").forward(request, response);//req.getreq.for
}
else{
//说明登录失败提示用户并且返回登录界面 js的跳转属于重定向 因为地址栏发生了改变login->dologin->login
//输送到页面
out.print("<script>alert('用户名或者密码有误');location.href='login.jsp'</script>");
//}
转发
对应request对象
request对象用于响应客户请求并向客户端输出信息
request对象常用方法
request.getRequestDispatcher(String location).forward(request, response);//简便快捷方式记:req.getreq.for
转发与重定向的区别:
转发是服务器内部行为,客户端发送了一个请求,转发可以携带数据(request中的数据),而且,转发的界面路径不会发送改变
重定向是客户端行为,客户端发送了一个情节,重定向不能携带数据(response中的数据),重定向的路径会发生改变
二、JDBC【Oracle】
1.获取表单提交过来的各种类型的值
①.获取文本框、单选框、文本框、密码框、下拉框的值
String name = request.getParameter("iname");
String pwd = request.getParameter("ipwd");
//取不同类型的值
//取性别 地址 备注
String sex = request.getParameter("isex");
String address = request.getParameter("iaddress");
String bak = request.getParameter("ibak");
②.获取复选框的值:比如爱好
//取爱好的值
String[] ss=request.getParameterValues("ihobby");
String hobby="";//用来拼接
//循环遍历
for(String s:ss){
hobby+=s+",";//用逗号隔开
}
2.连接数据的步骤
①.两个常量: 不需要String static final String URL ="";
只需要这样:
注意:orcl:是不是的看服务里的是不是是说明就是这样的不是那就跟这自己的服务来
<%@page import="oracle.jdbc.driver.OracleDriver"%>
String URL="jdbc:oracle:thin:@localhost:1521:orcl";
String CNAME="oracle.jdbc.driver.OracleDriver";
//OracleDriver ;这个不用只需要上面那个
②.加载驱动
Class.forName(CNAME);
③.创建连接(密码用户名根据自己的Oracle的用户名和密码来)
Connection con = DriverManager.getConnection(URL, "scott", "tiger");
④.定义sql语句
String sql="insert into tb_0325(sid,sname,spwd,ssex,shobby,saddress,sbak) values(?,?,?,?,?,?,?)";
⑤.获取执行对象
PreparedStatement ps = con.prepareStatement(sql);
⑥.给占位符赋值(根据sql语句的情况来定)
ps.setInt(1, Integer.parseInt(id));//String-->int
ps.setString(2, name);
ps.setString(3, pwd);
ps.setString(4, sex);
ps.setString(5, hobby);
ps.setString(6, address);
ps.setString(7, bak);
⑦.开始执行 增删改 int 查rs
int n = ps.executeUpdate();//影响行数
⑧.关闭资源 增删改关2个 查关3个
if(con!=null&&!con.isClosed()){//不为空且没有关
con.close();
}
if(ps!=null){
ps.close();
}
⑨.判断
if(n>0){
out.print("插入成功");
}
else{
out.print("插入失败");
}