目录
一、页面跳转方式
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()方法
语法:
1request.getRequestDispatcher("xxx.jsp").forward(request, response);
画图理解:
客户端向服务器发送请求 服务器1没有数据 转服务器2 拿到数据返回服务器1 然后响应给客户端
转发产生一个请求(服务器内部响应与客户端没关系)转发数据可以进行携带
2、重定向
JSP内置对象response
- response对象用于响应客户请求并向客户端输出信息
- response对象用于响应response 对象常用方法
void sendRedirect (String location):将请求重新定位到一个不同的URL,即页面重定向
语法:
1response.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();
}
案例:登录案例
如下是一个简单的登录界面输入数据库中有的数据跳转到首页
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16<%@ 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>
首页代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13<%@ 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>
获得执行对象之前要去数据库 建好表格 插好数据 (注意:数据一定要提交!提交!提交!)
进行连接数据的操作 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49<%@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内容请搜索靠谱客的其他文章。
发表评论 取消回复