通过HTML超链接的方式进行跳转
<a href = "路径">资源地址</a>
<a href = "index.jsp?username=admin&password=123">跳转到主页</a>
javascript方式跳转
window.location.href = "路径";
<script type="text/javascript">
function add(){
/* 通过js的location对象进行页面跳转 */
location.href = "index.jsp?result=123";
}
</script>
java方式跳转
①转发
概述
由服务器端进行的页面跳转
方法
获取转发器
RequestDispatcher rd = request.getRequestDispatcher("/跳转的地址")
实现转发
转发器对象.forward(request,response);
通常简写: request.getRequestDispatcher("/跳转的地址").forward(request,response);
特点
a 地址栏不发生变化,显示的是上一个页面的地址
b 请求次数:只有1次请求,因为转发是服务端行为。
c 根目录:http://localhost:8080/项目地址/,包含了项目的访问地址
d 请求域中数据不会丢失
②重定向
概述
由浏览器端进行的页面跳转
方法
response.sendRedirect("要跳转的地址");
特点
a 地址栏:显示新的地址
b 请求次数:2次
c 根目录:http://localhost:8080/ 没有项目的名字
d 请求域中的数据会丢失,因为是2次请求
③ 注意事项
什么时候使用转发,什么时候使用重定向?
如果要保留请求域中的数据,使用转发,否则使用重定向。
以后访问数据库,增删改使用重定向,查询使用转发。
转发或重定向后续的代码是否还会运行?
无论转发或重定向后续的代码都会执行
主要功能
与数据库建立连接、执行SQL 语句、处理结果
常用对象
① DriverManager
依据数据库的不同,管理JDBC驱动
② Connection
负责连接数据库并担任传送数据的任务
③ PreparedStatement
由 Connection 产生、负责执行SQL语句
④ 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、释放资源
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
//1.设置编码
request.setCharacterEncoding("utf-8");
//2.获取数据
String username = request.getParameter("username");
String password = request.getParameter("password");
//进行Oracle数据库交互
//定义两个变量存储用户名以及密码
String uname = "";
String pwd = "";
//连接对象定义
Connection conn = null;
PreparedStatement ps = null;//执行对象
//结果集对象
ResultSet rs = null;
try{
//加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
//b.建立连接
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
conn = DriverManager.getConnection(url, "scott", "123");
//编写sql语句传入执行方法返回执行对象
String sql = "select * from tb_users where username = ? and upassword = ?";
ps = conn.prepareStatement(sql);
//占位符赋值
ps.setString(1, username);
ps.setString(2, password);
//返回结果集对象
rs = ps.executeQuery();
//遍历或者判断
if(rs.next()){
uname = rs.getString(2);
pwd = rs.getString(3);
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(conn!=null&&!conn.isClosed()){
conn.close();
}
if(ps!=null){
ps.close();
}
if(rs!=null){
rs.close();
}
}
if(uname!="" && pwd!=""){
out.println("<script>alert('你已注册,请登录');location.href='login.jsp';</script>");
}else{
request.getRequestDispatcher("registerhome.jsp").forward(request, response);
}
%>