JavaWeb(页面跳转方式&JDBC交互)

一、页面跳转方式

目录

一、页面跳转方式

2、java方式跳转

2.1 转发(resquest):

2.2 重定向(response):

 二、JDBC API

1、功能:

2、常用对象:

3、java通过jdbc连接Oracle数据库进行交互的步骤:


1、javascript方式跳转------window.location.href = "跳转的地址"

2、java方式跳转

2.1 转发(resquest):

概述:由服务器端进行的页面跳转
方法:(1) 获取转发器====》RequestDispatcher rd =  request.getRequestDispatcher("/跳转的地址")
           (2) 实现转发====》转发器对象.forward(request,response);
    通常简写:request.getRequestDispatcher("/跳转的地址").forward(request,response);
特点:
           (1) 地址栏不发生变化,显示的是上一个页面的地址
           (2) 请求次数:只有1次请求,因为转发是服务端行为。
           (3) 根目录:http://localhost:8080/项目地址/,包含了项目的访问地址
           (4) 请求域中数据不会丢失

request可以接收哪两种方式的值?
    ①通过form表单

要求:action和method都需要配置,method不自己设置,默认就是get请求
//参数传递
账号:




    ②通过超链接传值

不带参数超链接页面跳转
跳转到1.jsp页面 h5>带参数超链接页面跳转 跳转到1.jsp页面

2.2 重定向(response):

    概述:由浏览器端进行的页面跳转
    方法response.sendRedirect("要跳转的地址");
    特点
        (1)地址栏:显示新的地址
        (2)请求次数:2次
        (3)根目录:http://localhost:8080/ 没有项目的名字
        (4)请求域中的数据会丢失,因为是2次请求

js的重定向跳转

out.print("");

js中location页面跳转



注意事项:
    1、什么时候使用转发,什么时候使用重定向?
        如果要保留请求域中的数据,使用转发,否则使用重定向。
        以后访问数据库,增删改使用重定向,查询使用转发。
    2、转发或重定向后续的代码是否还会运行?
        无论转发或重定向后续的代码都会执行

重定向和转发的区别: JavaWeb(页面跳转方式&JDBC交互)_第1张图片

请求转发:
通过request对象进行跳转
request.getRequestDispatcher("/页面地址").forward(request, response);

请求重定向:
通过response对象进行跳转
response.sendRedirect("success.jsp");

 二、JDBC API

1、功能:

与数据库建立连接、执行SQL 语句、处理结果

2、常用对象:

DriverManager   依据数据库的不同,管理JDBC驱动
Connection   负责连接数据库并担任传送数据的任务
PreparedStatement   由 Connection 产生、负责执行SQL语句 
ResultSet  负责保存Statement执行后所产生的查询结果

3、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) 释放资源

//使用步骤
		//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("");
			request.getRequestDispatcher("index.jsp").forward(request, response);
		}else{
			//重定向---新的请求方式
			//out.print("");
			response.sendRedirect("login.jsp");
		}
		//5.关闭连接
			rs.close();
			ps.close();
			conn.close();

 4.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

你可能感兴趣的:(JavaWeb,web)