目录
一,页面的跳转方式
1.js中的跳转
2.Java中的跳转
(1)转发(作用于客户端)
(2)重定向
二,jdbc概念梳理
三,连接数据库
数据库连接步骤:
案例:
一,页面的跳转方式
1.js中的跳转
中
2.Java中的跳转
(1)转发(作用于客户端)
中
2.Java中的跳转
(1)转发(作用于客户端)
转发的作用:在多个页面交互过程中实现请求数据的共享
转发的实现:
RequestDispatcher对象forward()方法
代码如下:
request.getRequestDispatcher("xxx.jsp").forward(request,response);
图解如下:
客户端对服务器发送一个请求,服务器1没有数据,转到服务器2,服务器2再发送给服务器1,然后再响应给客户端。简而言之,就是转发产生一个请求(转发数据可以携带).
(2)重定向
response对象用于响应客户请求并向客户端输出信息
代码如下:
response.sendRedirect("xxx.jsp");
将会请求定位到一个不一样的URL。
图解展示:
客户端向服务器1发送一次请求,服务器1没有数据后,客户端再向服务器2发送一次请求,以此类推,直到拿到数据为止,图上总共发送两次请求。
转发和重定向的区别:
转发是在服务器端发挥作用,通过forward方法将提交信息在多个页面间进行传递。转发是在服务器内部控制权的转移,客户端浏览器的地址栏不会显示出转向后的地址重定向是在客户端发挥作用,通过请求新的地址实现页面转向重定向是通过浏览器重新请求地址,在地址栏中可以显示转向后的地址
二,jdbc概念梳理
JDBC是Java数据库连接技术的简称,提供连接各种常用数据库的能力
JDBC API(与数据库建立连接、执行SQL 语句、处理结果)
DriverManager :依据数据库的不同,管理JDBC驱动
Connection :负责连接数据库并担任传送数据的任务
Statement :由 Connection 产生、负责执行SQL语句
ResultSet:负责保存Statement执行后所产生的查询结果
三,连接数据库
数据库连接步骤:
准备好特定的jar包
并将该jar包放在WEB-INF文件下的lib文件中
注意:在导包前一定要把数据的服务打开,这里我们用的是Oracle
步骤:win+x,g->服务于应用管理->服务->打开以下两个服务
连接数据步骤如下:
//1.导入驱动(SQLserver,oracle,mysql)
<%@page import="oracle.jdbc.driver.OracleDriver"%>
//OracleDriver
//注意:在此之前一定执行build path
Class.forName("oracle.jdbc.driver.OracleDriver");//加载驱动
//2.连接语句
//sqlserver的连接语句
//jdbc:sqlserver:localhost:1433;databasename=ss
String URL="jdbc:oracle:thin:@localhost:1521:orcl";
//3.获得连接
Connection con=DriverManager.getConnection(URL, "scott", "sa123");
//4.获得预编译对象(执行对象)
PreparedStatement ps=con.prepareStatement(sql语句);//?指的是占位符
//5.占位符赋值
ps.setString(占位符位,xx);
//6.获得结果集
ResultSet rs=ps.executeQuery();
//7.判断
if(rs.next()){
request.getRequestDispatcher("xxx.jsp").forward(request, response);
}else{
response.sendRedirect("xxx.jsp");
}
//8.关闭资源
if(con!=null&&!con.isClosed()){
con.close();
}
if(ps!=null){
ps.close();
}
if(rs!=null){
rs.close();
}
案例:
简单的登录案例,代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>login
当然执行之前少不了创建数据库
这里我们使用oracle创建一张简单的表
CREATE TABLE T_USER( UUID NUMBER PRIMARY KEY, UNAME VARCHAr2(20) NOT NULL, UPWD VARCHAr2(20) NOT NULL ) commit;
注意:这里我们在创建表格之后一定要把数据提交(commit)了。
连接数据库代码:
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="oracle.jdbc.driver.OracleDriver"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
//网络中的数据都是字节 如果是文字就会产生乱码的情况
request.setCharacterEncoding("UTF-8");//将请求中的字符全部编码设置为中文
//获取前端数据
String name=request.getParameter("username");//名字
String password=request.getParameter("password");//密码
//导入驱动(SQLserver,oracle,mysql)
//OracleDriver
//注意:在此之前一定执行build path
Class.forName("oracle.jdbc.driver.OracleDriver");//加载驱动
//连接语句
//sqlserver的连接语句
//jdbc:sqlserver:localhost:1433;databasename=ss
String URL="jdbc:oracle:thin:@localhost:1521:orcl";
//获得连接
Connection con=DriverManager.getConnection(URL, "scott", "sa123");
//获得预编译对象(执行对象)
PreparedStatement ps=con.prepareStatement("SELECt * FROM T_USER WHERe UNAME=? AND UPWD=?");//?指的是占位符
//占位符赋值
ps.setString(1,name);
ps.setString(2,password);
//获得结果集
ResultSet rs=ps.executeQuery();
//判断
if(rs.next()){
request.getRequestDispatcher("home.jsp").forward(request, response);
}else{
response.sendRedirect("login.jsp");
}
//关闭资源
if(con!=null&&!con.isClosed()){
con.close();
}
if(ps!=null){
ps.close();
}
if(rs!=null){
rs.close();
}
%>
首页代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
main
我是首页
欢迎 <%request.getParameter("username"); %>login
总结:这期的关键就是熟练数据库的连接的方式!下期给大家带来代码优化!



