目录
一、页面跳转方式
1. HTML超链接的方式
2. javascript方式跳转
window.location.href = "跳转的地址"
3.java方式跳转
转发
概述
由服务器端进行的页面跳转
方法
(1)获取转发器====》RequestDispatcher rd = request.getRequestDispatcher("/跳转的地址")
(2)实现转发====》转发器对象.forward(request,response);
通常简写:request.getRequestDispatcher("/跳转的地址").forward(request,response);
特点
(1)地址栏不发生变化,显示的是上一个页面的地址
(2)请求次数:只有1次请求,因为转发是服务端行为。
(3)根目录:http://localhost:8080/项目地址/,包含了项目的访问地址
(4)请求域中数据不会丢失
重定向
概述
由浏览器端进行的页面跳转
方法
response.sendRedirect("要跳转的地址");
特点
(1)地址栏:显示新的地址
(2)请求次数:2次
(3)根目录:http://localhost:8080/ 没有项目的名字
(4)请求域中的数据会丢失,因为是2次请求
注意事项
什么时候使用转发,什么时候使用重定向?
如果要保留请求域中的数据,使用转发,否则使用重定向。
以后访问数据库,增删改使用重定向,查询使用转发。
转发或重定向后续的代码是否还会运行?
无论转发或重定向后续的代码都会执行
重定向和转发的区别
二、JDBC API
主要功能 与数据库建立连接、执行SQL 语句、处理结果
常用对象
a. DriverManager 依据数据库的不同,管理JDBC驱动
b. Connection 负责连接数据库并担任传送数据的任务
c. PreparedStatement 由 Connection 产生、负责执行SQL语句
d. ResultSet 负责保存Statement执行后所产生的查询结果
java通过jdbc连接Oracle数据库进行交互的步骤
1、加载JDBC驱动
Class.forName(JDBC驱动类);
2、与数据库建立连接
Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl","scott","admin");
3、发送SQL语句,并得到返回结果
4、处理返回结果
5、释放资源
javaweb_03 JSP页面跳转方式以及JDBC数据交互
1.JSP页面跳转方式
跳转方式如下:
-
form表单提交跳转(上节课已讲)
-
超链接标签跳转
-
javascript中的location.href跳转
-
java的方式跳转:
-
请求转发跳转
-
请求重定向跳转
-
1.1 form表单提交跳转
要求:action和method都需要配置,method不自己设置,默认就是get请求
问题:参数传递
<form action = "1.jsp?password=123" method = "post"> 账号: <input type = "text" name = "username"/> <br/><br/> <input type ="submit" value = "登录"/> </form>
<!-- HTMLform标签时 hidden 隐藏域标签 --> <!-- 作用:页面传值 不会在页面上显示 --> <input type ="hidden" name = "sex" value = "男"/>
1.2 超链接标签页面跳转
<h5>不带参数超链接页面跳转</h5> <a href = "1.jsp">跳转到1.jsp页面</a> h5>带参数超链接页面跳转</h5> <a href = "1.jsp?hobby=打游戏">跳转到1.jsp页面</a>
1.4 js中location页面跳转
<button type = "button" onclick = "one()">不带参数跳转</button> <button type = "button" onclick = "two()">带参数跳转</button> <script type="text/javascript"> function one(){ //location对象跳转 location.href = "1.jsp"; } function two(){ location.href = "1.jsp?age=12"; } </script>
1.5 java的方式跳转
-
请求转发:面向服务端跳转,1次请求,可以将参数传递到另外的页面去获取,地址栏不会发生改变
-
请求重定向:面向浏览器客户端跳转,2次请求,不可以将参数传递到另外的页面去获取,地址栏会发生改变
请求转发: 通过request对象进行跳转 request.getRequestDispatcher("/页面地址").forward(request, response); 请求重定向: 通过response对象进行跳转 response.sendRedirect("success.jsp");
怀疑的状态:通过java的方式进行页面跳转后,也需要有弹窗提示,别急 通过域对象可以设置
2.JDBC数据库交互
基础知识
1.jdbc:java程序与oracle数据库一个连接的桥梁。 2.jdbc中提供的接口以及类 Class.forName(); 加载驱动 DriverMagaer:驱动管理类,根据不同的驱动jar连接对应的数据库,返回连接对象 DriverManager.getConnection(url,user,password); Connection 数据库连接类 PreparedStatement 执行对象,有连接对象调用特定的方法将sql语句传入并返回其对象 ResultSet 结果集对象,通过执行对象调用特定的方法后返回的对象,该对象只针对查询操作,将查询的结果保存在了结果集对象ResultSet中,可以遍历得到这个结果集对象中的每一条记录。 next(); 如果结构及对象中存在查询的记录 可以进行打印输出 占位符: ? 通过执行对象.setXxx(设置); 3.web程序通过jdbc连接oracle与sqlserver差不多。 Class.forName("OracleDriver");//SQLServerDriver url sqlserver jdbc:sqlserver://lcoalhost:1433;DatabaseName=db_xxx oracle jdbc:oracle:thin:@localhost:1521:orcl 特别要注意: oracle中的url地址中都是: 没有其它符号 oracle的端口号: 1521 orcl:实例名 *** 服务名称 服务名称: OracleServiceORCL orcl OracleServiceORCLE orcle
jdbc连接数据库的步骤 准备阶段: 1.编写sql数据表 2.导入指定的架包 步骤如下:
//使用步骤 //1.注册驱动类 Class.forName("oracle.jdbc.driver.OracleDriver"); //2.连接数据库 String url = "jdbc:oracle:thin:@localhost:1521:orcl"; Connection conn = DriverManager.getConnection(url, "scott", "123"); //3.执行sql语句 String sql = "select * from tb_user where uname = ? and upwd = ?"; //4.操作数据 PreparedStatement ps = conn.prepareStatement(sql); //给占位符设置值 ps.setString(1, username); ps.setString(2,password); //返回结果集 ResultSet rs = ps.executeQuery(); //判断结果集 if(rs.next()){//如果有下一个值 //转发--- //out.print("<script>alert('登录成功')</script>"); request.getRequestDispatcher("index.jsp").forward(request, response); }else{ //重定向---新的请求方式 //out.print("<script>alert('登录失败')</script>"); response.sendRedirect("login.jsp"); } //5.关闭连接 rs.close(); ps.close(); conn.close();