我是靠谱客的博主 爱撒娇枫叶,这篇文章主要介绍Java Web03(页面跳转方式&JDBC) 一、页面跳转方式二、JDBC相关知识回顾三、连接数据库,现在分享给大家,希望可以做个参考。

目录

 一、页面跳转方式

 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()方法

      语法:

复制代码
1
request.getRequestDispatcher("xxx.jsp").forward(request, response);

 画图理解:

客户端向服务器发送请求 服务器1没有数据 转服务器2 拿到数据返回服务器1 然后响应给客户端

转发产生一个请求(服务器内部响应与客户端没关系)转发数据可以进行携带

    2、重定向   

   JSP内置对象response

  • response对象用于响应客户请求并向客户端输出信息
  • response对象用于响应response 对象常用方法

    void sendRedirect (String location):将请求重新定位到一个不同的URL,即页面重定向

      语法:

复制代码
1
response.sendRedirect("xxx.jsp");

画图理解:

客户端向服务器1发送请求 服务器1响应没有数据  然后再向服务器2发送请求 拿到数据响应给客户端

重定向产生两个请求  不能携带数据

    3、转发与重定向的区别:

  1. 转发是服务器行为,重定向是客户端行为
  2. 转发可以携带数据(request中的数据),重定向不能
  3. 转发的界面路径不会发生改变,重定向的路径会发生改变
  4. 转发是浏览器只做了一次访问请求,重定向是浏览器做了至少两次的访问请求
  5. 转发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_home1TNSListenerOracleServiceORCL右击点击启动

最后就是连接数据库的基本步骤

    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内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(78)

评论列表共有 0 条评论

立即
投稿
返回
顶部