hello,大家好,今天给大家分享的是关于javaweb的页面跳转&JDBC,如果有错误或者疑问可以留言哦
JDBC相关知识
什么是JDBC?
JDBC是Java数据库连接技术的简称,提供连接各种常用数据库的能力
JDBC API
- DriverManager类
- Connection接口
- Statement接口
- ResultSet接口
DriverManager
- 作用:载入各种不同的JDBC驱动
JDBC 驱动
- 作用:负责连接各种不同的数据库
JDBC API可做三件事:与数据库建立连接、执行SQL 语句、处理结果
DriverManager :依据数据库的不同,管理JDBC驱动
Connection :负责连接数据库并担任传送数据的任务
Statement :由 Connection 产生、负责执行SQL语句
ResultSet:负责保存Statement执行后所产生的查询结果
连接数据库的步骤
1.导入驱动(sqlserver,oracle,mysql),一定要执行 build pah
//OracleDriver
Class.forName("oracle.jdbc.OracleDriver");
2.编写连接语句
thin驱动名称 @loaclhost主机
String url="jdbc:oracle:thin:@loaclhost:1521:orcl";
打开oracle服务:开两个(服务,监听)win+x,g
需要打开服务器
连接语句中的String url="jdbc:oracle:thin:@loaclhost:1521:orcl";需要与服务器的后缀相同
3.获得连接
Connection con=DriverManager.getConnection(url,"scott","123");
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("home.jsp").forward(request, response);
}else{
response.sendRedirect("index01.jsp");
}
7.关闭资源
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"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录界面</title>
</head>
<body>
<form action="dologin.jsp" method="post">
<p><input name="username" placeholder="请输入名字"></p>
<p><input name="userpwd" placeholder="请输入密码"></p>
<button>登录</button>
</form>
</body>
</html>
首界面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>首页</title>
</head>
<body>
<h1>我是首页</h1>
<h2>欢迎 <%=request.getParameter("username") %> 老爷</h2>
</body>
</html>
跳转方法界面(上面有详细介绍)
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="oracle.jdbc.OracleDriver"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
//写java语句的
//网络中的数据传输用的都是字节 文字会产生乱码的情况
request.setCharacterEncoding("utf-8");//将请求中的字符编码设置为中文
//获取来自前端的数据(request)
String name=request.getParameter("username");
String pwd=request.getParameter("userpwd");
//1.导入驱动(sqlserver,oracle,mysql),一定要执行 build pah
//OracleDriver
Class.forName("oracle.jdbc.OracleDriver");
//2.编写连接语句
//thin驱动名称 @loaclhost主机
String url="jdbc:oracle:thin:@localhost:1521:orcl";
//打开oracle服务:开两个(服务,监听)win+x,g
//3.获得连接
Connection con=DriverManager.getConnection(url,"scott","123");
//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.判断
//js中的跳转 location.href='xxx'
//out.print("<script>location.href='home.jsp'</script>");
// 使用java进行跳转
// 【转发】 客户端产生一个请求
// 【重定向】 客户端产生两个请求
// 区别:
// 1.转发是服务器行为,重定向是客户端行为
// 2.转发可以携带数据,重定向不能
// 3.转发的界面路径不会发生改变,重定向的路径会发生改变
//【转发】
//request.getRequestDispatcher("home.jsp").forward(request, response);
//【重定向】
//response.sendRedirect("home.jsp");
//登录逻辑
if(rs.next()){
request.getRequestDispatcher("home.jsp").forward(request, response);
}else{
response.sendRedirect("index01.jsp");
}
//7.关闭资源
if(con!=null&&con.isClosed()){
con.close();
}
if(ps!=null){
ps.close();
}
if(rs!=null){
rs.close();
}
%>
今天就分享到这里啦,下次再见咯