概述
目录
一、页面跳转方式
js中的跳转
java中的跳转
1、转发
2、重定向
3、转发与重定向的区别:
二、JDBC相关知识回顾
JDBC API
DriverManager
JDBC 驱动
三、连接数据库
案例:登录案例
一、页面跳转方式
-
js中的跳转
out.print("<script>location.href='home.jsp'</script>");
注意:将js代码写入<script></script>中
-
java中的跳转
1、转发
转发的作用:在多个页面交互过程中实现请求数据的共享
转发的实现:
- RequestDispatcher对象
- forward()方法
语法:
request.getRequestDispatcher("xxx.jsp").forward(request, response);
画图理解:
客户端向服务器发送请求 服务器1没有数据 转服务器2 拿到数据返回服务器1 然后响应给客户端
转发产生一个请求(服务器内部响应与客户端没关系)转发数据可以进行携带
2、重定向
JSP内置对象response
- response对象用于响应客户请求并向客户端输出信息
- response对象用于响应response 对象常用方法
void sendRedirect (String location):将请求重新定位到一个不同的URL,即页面重定向
语法:
response.sendRedirect("xxx.jsp");
画图理解:
客户端向服务器1发送请求 服务器1响应没有数据 然后再向服务器2发送请求 拿到数据响应给客户端
重定向产生两个请求 不能携带数据
3、转发与重定向的区别:
- 转发是服务器行为,重定向是客户端行为
- 转发可以携带数据(request中的数据),重定向不能
- 转发的界面路径不会发生改变,重定向的路径会发生改变
- 转发是浏览器只做了一次访问请求,重定向是浏览器做了至少两次的访问请求
- 转发2次跳转之间传输的信息不会丢失,重定向2次跳转之间传输的信息会丢失
二、JDBC相关知识回顾
JDBC是Java数据库连接技术的简称,提供连接各种常用数据库的能力
JDBC API
- DriverManager类(依据数据库的不同,管理JDBC驱动)
- Connection接口(负责连接数据库并担任传送数据的任务)
- Statement接口(由 Connection 产生、负责执行SQL语句)
- ResultSet接口(负责保存Statement执行后所产生的查询结果)
DriverManager
作用:载入各种不同的JDBC驱动
JDBC 驱动
作用:负责连接各种不同的数据库
三、连接数据库
首先需要一个jdk 将事先下载好的jar包复制到WEB-INF文件下面的lib文件下
右击jar包找到Bulid Path选中Add to Bulid Path 当Referenced Libraries下面出现如下文件即成功
连接数据库之前一定要先打开服务和监听(win+x,g)
点击服务和应用程序 ==》服务
随后找到OracleOraDb11g_home1TNSListener和OracleServiceORCL右击点击启动
最后就是连接数据库的基本步骤
1.导入驱动(sqlserver,oracle,mysql),一定要执行 build path
Class.forName("oracle.jdbc.driver.OracleDriver");
2.编写连接语句
String url="jdbc:oracle:thin:@localhost:1521:orcl";//注意记得打开oracle服务:开两个(服务,监听) win+x,g
3.获得连接
Connection con=DriverManager.getConnection(url,"scott","123123");
4.获得预编译对象(执行对象)
PreparedStatement ps=con.prepareStatement("select * from 表名 where 数据1=? and 数据2=?");//数据库查询语句
5.给占位符赋值
ps.setString(1, xx);
ps.setString(2, xx);
6.获得结果集(结果)
ResultSet rs=ps.executeQuery();
7.判断【登录验证,页面跳转】
//登录逻辑 :跳转界面
if(rs.next()){
request.getRequestDispatcher("xxx.jsp").forward(request, response);//如果rs里面有数据则跳到首页
}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"%>
<!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 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>
</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"%>
<%
//写java语句的
//网络中的数据传输用的都是字节 文字会产生乱码的情况
request.setCharacterEncoding("utf-8");//讲请求中的字符编码设置为中文
//获取来自于前端的数据(request)
String name=request.getParameter("username");
String pwd=request.getParameter("userpwd");
//1.导入驱动(sqlserver,oracle,mysql),一定要执行 build path
Class.forName("oracle.jdbc.driver.OracleDriver");
//2.编写连接语句
String url="jdbc:oracle:thin:@localhost:1521:orcl";//打开oracle服务:开两个(服务,监听) win+x,g
//3.获得连接
Connection con=DriverManager.getConnection(url,"scott","123123");
//4.获得预编译对象(执行对象)
PreparedStatement ps=con.prepareStatement("select * from tb_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("login.jsp");
}
//7.关闭资源
if(con!=null&&!con.isClosed()){
con.close();
}
if(ps!=null){
ps.close();
}
if(rs!=null){
rs.close();
}
%>
如果输入的数据库中有的数据 将会转到首页(如下图所示)反之,没有的数据会根据重定向返回登录界面
总结:
今天的分享就到这里结束啦!!✌
以上就是关于Java Web03(页面跳转方式&JDBC)的一些内容!!????
期待下次见面!!????
最后
以上就是爱撒娇枫叶为你收集整理的Java Web03(页面跳转方式&JDBC) 一、页面跳转方式二、JDBC相关知识回顾三、连接数据库的全部内容,希望文章能够帮你解决Java Web03(页面跳转方式&JDBC) 一、页面跳转方式二、JDBC相关知识回顾三、连接数据库所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复