我是靠谱客的博主 爱撒娇枫叶,最近开发中收集的这篇文章主要介绍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()方法

      语法:

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、转发与重定向的区别:

  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();
    }

 案例:登录案例

 如下是一个简单的登录界面输入数据库中有的数据跳转到首页

<%@ 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相关知识回顾三、连接数据库所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部