前言:今天我们来了解一下页面跳转和JDBC。
目录
一.页面的跳转
html方法跳转
out.print("<a href='xx.jsp'>点我返回</a>")
js方法跳转
out.print("<script>location.href='sy.jsp'</script>")
java方法跳转
转发
例如:你找a要钱,a没有钱,a就去找b要钱,a再把钱给你
request.getRequestDispatcher("sy.jsp").forward(request, response);
重定向
例如:你找a要钱,a没有钱,a就叫你去找b要钱,b再把钱给你
response.sendRedirect("sy.jsp");
区别:
1.转发是服务器行为,重定向是客户端行为
2转发可以携带数据(request中的数据),重定向不行
3.转发是路径不会改变,重定向会
二.JDBC
JDBC是Java数据库连接技术的简称,提供连接各种常用数据库的能力
JDBC API
DriverManager类 Connection接口 Statement接口 ResultSet接口
DriverManager 作用:载入各种不同的JDBC驱动
JDBC 驱动 作用:负责连接各种不同的数据库
DriverManager :依据数据库的不同,管理JDBC驱动
Connection :负责连接数据库并担任传送数据的任务
Statement :由 Connection 产生、负责执行SQL语句
ResultSet:负责保存Statement执行后所产生的查询结果
如何导入驱动包:
将驱动包添加进项目后,根据以下图片操作
导包后驱动包会显示在红色框的文件夹里。
导好包后一定要检查驱动包能否运行,我们首先要win+x打开任务管理器,点击计算机管理,然后
三.案例
登陆界面代码:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="dologin.jsp" method="post">
<p><input name="username" placeholder="请输入姓名"></p>
<p><input name="userpwd" placeholder="请输入密码"></p>
<p><button>登陆</button></p>
</form>
</body>
</html>
逻辑处理代码:
<%@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")
//将字符编码设置为中文
//获得前端的数据(request)
String name=request.getParameter("username");
String pwd=request.getParameter("userpwd");
//1.导入驱动(server,oracle,mysql)
Class.forName("oracle.jdbc.driver.OracleDriver");
//2.编写连接语句
String url="jdbc:oracle:thin:@localhost:1521:orcl ";
//3.获得连接
Connection con=DriverManager.getConnection(url,"scott","sa123");
//4.获得预编译对象(执行对象)
PreparedStatement ps=con.prepareStatement(" select * from t_user where user_name=? and user_pwd=?");
//给占位符赋值
ps.setString(1, name);
ps.setString(2, pwd);
// 5.获得结果集
ResultSet rs=ps.executeQuery();
// 6.判断【登陆验证,页面跳转】
if(rs.next()){
request.getRequestDispatcher("sy.jsp").forward(request, response);
}else{
response.sendRedirect("index.jsp");
}
System.out.println(name);
System.out.println(pwd);
//7.关闭资源
if(con!=null&&!con.isClosed()){
con.close();
}
if(ps!=null){
ps.close();
}
if(rs!=null){
rs.close();
}
//out.print(" ")可以输出html语句
//js中的跳转location.href='xxx'
//out.print("<script>location.href='sy.jsp'</script>")用js的方法跳转页面
//所有java进行跳转
//【转发】例如:你找a要钱,a没有钱,a就去找b要钱,a再把钱给你
//【重定向】例如:你找a要钱,a没有钱,a就叫你去找b要钱,b再把钱给你
//区别:
// 1.转发是服务器行为,重定向是客户端行为
// 2转发可以携带数据(request中的数据),重定向不行
// 3.转发是路径不会改变,重定向会
//【转发】
//request.getRequestDispatcher("sy.jsp").forward(request, response);
//【重定向】
//response.sendRedirect("sy.jsp");
//登陆逻辑
%>
首页代码:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>我是首页</h1>
<h2><%=request.getParameter("username") %></h2>
<h2><%=request.getParameter("userpwd") %></h2>
</body>
</html>
数据库代码:
create table t_user(
user_id number primary key,
user_name varchar2(20) not null,
user_pwd varchar2(20) not null
);
select * from t_user;
--插入数据
insert into t_user(user_id,user_name,user_pwd)values(1,'lxy','lxy123');
--提交
commit;
今天的讲解就到这里了,下次见,拜拜(づ ̄3 ̄)づ╭❤~