Java Web03(页面跳转方式JDBC)

2024-03-10 10:38

本文主要是介绍Java Web03(页面跳转方式JDBC),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一、页面跳转

 js中的跳转 

转发

重定向

转发和重定向的区别

 二、JDBC相关知识回顾

 JDBC API

DriverManager

JDBC 驱动

 三、连接数据库

按照上面的步骤一步步来 

找到OracleOraDb11g_home1TNSListener和OracleServiceORCL,打开即可

然后把驱动导入进来

登录界面

执行结果:

总结:喜欢看的小伙伴可以点点关注博主会持续更新一些JavaWeb的内容


一、页面跳转

  •  js中的跳转 

       out.print("<script>location.href='home.jsp'</script>");

       注意:将js代码写入<script></script>中

转发

对应request对象

request对象用于客户端向服务器发送请求

request对象常用方法:

request.getRequestDispatcher(String location).forward(request, response);

重定向

对应response对象

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

response.sendRedirect(String location):将请求重新定位到一个不同的URL

转发和重定向的区别

  1. 转发是服务器行为,重定向是客户端行为
  2. 转发可以携带数据(request中的数据),重定向不能
  3. 转发的界面路径不会发生改变,重定向的路径会发生改变
  4. 转发是浏览器只做了一次访问请求,重定向是浏览器做了至少两次的访问请求
  5. 转发2次跳转之间传输的信息不会丢失,重定向2次跳转之间传输的信息会丢失

 

 二、JDBC相关知识回顾

JDBC是Java数据库连接技术的简称,提供连接各种常用数据库的能力

 JDBC API

  • DriverManager类(驱动管理对象)
  • Connection接口(连接)
  • Statement接口(用于执行静态SQL语句并返回它所生成结果的对象)
  • ResultSet接口(结果集)

DriverManager

作用:载入各种不同的JDBC驱动

JDBC 驱动

作用:负责连接各种不同的数据库

 三、连接数据库

在执行数据库连接时需要注意数据库服务是否开启,这里以oracle为例,需要打开服务和监听步骤为下: 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>
<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>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 pathClass.forName("oracle.jdbc.driver.OracleDriver");//2.编写连接语句String url="jdbc:oracle:thin:@localhost:1521:orcl";//打开oracle服务 win+x 在点g 开两个(服务+监听)// Tiger//3.获得连接Connection con=DriverManager.getConnection(url,"lk","lk123"); //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()){//}//7.关闭资源//js中的跳转 location.href="xxx"// out.print("<script>location.href='home.jsp'</script>");// 使用java进行跳转// 【转发】:你找你爸要钱,你爸没有钱,他就会去找你妈要钱,他在把钱功能// 【重定向】:你要你爸要钱,你把没有钱,他喊你找你妈要钱,你妈在把钱给你// 区别://	1.转发是服务器行为,重定向是客户端行为//	2.转发可以携带数据,重定向不能//	3.转发的页面路劲不会发生改变,重定向的路劲会发生改变// 【转发】 得到请求里面的转发器request.getRequestDispatcher("home.jsp").forward(request, response);// 【重定向】Redirect重定向response.sendRedirect("home.jsp");//登录逻辑:跳转界面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();}%>

执行结果:

总结:喜欢看的小伙伴可以点点关注博主会持续更新一些JavaWeb的内容

这篇关于Java Web03(页面跳转方式JDBC)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/793977

相关文章

Java NoClassDefFoundError运行时错误分析解决

《JavaNoClassDefFoundError运行时错误分析解决》在Java开发中,NoClassDefFoundError是一种常见的运行时错误,它通常表明Java虚拟机在尝试加载一个类时未能... 目录前言一、问题分析二、报错原因三、解决思路检查类路径配置检查依赖库检查类文件调试类加载器问题四、常见

Java注解之超越Javadoc的元数据利器详解

《Java注解之超越Javadoc的元数据利器详解》本文将深入探讨Java注解的定义、类型、内置注解、自定义注解、保留策略、实际应用场景及最佳实践,无论是初学者还是资深开发者,都能通过本文了解如何利用... 目录什么是注解?注解的类型内置注编程解自定义注解注解的保留策略实际用例最佳实践总结在 Java 编程

gradle第三方Jar包依赖统一管理方式

《gradle第三方Jar包依赖统一管理方式》:本文主要介绍gradle第三方Jar包依赖统一管理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录背景实现1.顶层模块build.gradle添加依赖管理插件2.顶层模块build.gradle添加所有管理依赖包

Java 实用工具类Spring 的 AnnotationUtils详解

《Java实用工具类Spring的AnnotationUtils详解》Spring框架提供了一个强大的注解工具类org.springframework.core.annotation.Annot... 目录前言一、AnnotationUtils 的常用方法二、常见应用场景三、与 JDK 原生注解 API 的

Java controller接口出入参时间序列化转换操作方法(两种)

《Javacontroller接口出入参时间序列化转换操作方法(两种)》:本文主要介绍Javacontroller接口出入参时间序列化转换操作方法,本文给大家列举两种简单方法,感兴趣的朋友一起看... 目录方式一、使用注解方式二、统一配置场景:在controller编写的接口,在前后端交互过程中一般都会涉及

Java中的StringBuilder之如何高效构建字符串

《Java中的StringBuilder之如何高效构建字符串》本文将深入浅出地介绍StringBuilder的使用方法、性能优势以及相关字符串处理技术,结合代码示例帮助读者更好地理解和应用,希望对大家... 目录关键点什么是 StringBuilder?为什么需要 StringBuilder?如何使用 St

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

Java并发编程之如何优雅关闭钩子Shutdown Hook

《Java并发编程之如何优雅关闭钩子ShutdownHook》这篇文章主要为大家详细介绍了Java如何实现优雅关闭钩子ShutdownHook,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起... 目录关闭钩子简介关闭钩子应用场景数据库连接实战演示使用关闭钩子的注意事项开源框架中的关闭钩子机制1.

Linux之systemV共享内存方式

《Linux之systemV共享内存方式》:本文主要介绍Linux之systemV共享内存方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、工作原理二、系统调用接口1、申请共享内存(一)key的获取(二)共享内存的申请2、将共享内存段连接到进程地址空间3、将

Maven中引入 springboot 相关依赖的方式(最新推荐)

《Maven中引入springboot相关依赖的方式(最新推荐)》:本文主要介绍Maven中引入springboot相关依赖的方式(最新推荐),本文给大家介绍的非常详细,对大家的学习或工作具有... 目录Maven中引入 springboot 相关依赖的方式1. 不使用版本管理(不推荐)2、使用版本管理(推