JavaWeb(页面跳转方式&JDBC)

前言:今天我们来了解一下页面跳转和JDBC。

目录

 一.页面的跳转

html方法跳转

js方法跳转

java方法跳转

转发

重定向

二.JDBC 

三.案例


 一.页面的跳转

html方法跳转

 out.print("<a href='xx.jsp'>点我返回</a>")

js方法跳转

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

java方法跳转

转发

例如:你找a要钱,a没有钱,a就去找b要钱,a再把钱给你

request.getRequestDispatcher("sy.jsp").forward(request, response);

重定向

例如:你找a要钱,a没有钱,a就叫你去找b要钱,b再把钱给你

response.sendRedirect("sy.jsp");

区别:
         1.转发是服务器行为,重定向是客户端行为
         2转发可以携带数据(request中的数据),重定向不行
         3.转发是路径不会改变,重定向会

二.JDBC 

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

JDBC API

DriverManager类    Connection接口     Statement接口     ResultSet接口

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

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

DriverManager :依据数据库的不同,管理JDBC驱动  

Connection :负责连接数据库并担任传送数据的任务    

Statement :由 Connection 产生、负责执行SQL语句

 ResultSet:负责保存Statement执行后所产生的查询结果

如何导入驱动包:

 将驱动包添加进项目后,根据以下图片操作

 导包后驱动包会显示在红色框的文件夹里。

导好包后一定要检查驱动包能否运行,我们首先要win+x打开任务管理器,点击计算机管理,然后 

 

三.案例 

登陆界面代码:

<%@ 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 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"%>
<% 
         //网络中的数据传输用的是字节流,文字会产生乱码
         // request.setCharacterEncoding("utf-8")
         //将字符编码设置为中文
          
           //获得前端的数据(request)
         String name=request.getParameter("username");
         String pwd=request.getParameter("userpwd");
         
      
        //1.导入驱动(server,oracle,mysql)
        Class.forName("oracle.jdbc.driver.OracleDriver");
        //2.编写连接语句
        String url="jdbc:oracle:thin:@localhost:1521:orcl ";
        //3.获得连接
        Connection con=DriverManager.getConnection(url,"scott","sa123");
        //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()){
        	request.getRequestDispatcher("sy.jsp").forward(request, response);
        }else{
        	response.sendRedirect("index.jsp");
        }
        System.out.println(name);
        System.out.println(pwd);
        //7.关闭资源
         if(con!=null&&!con.isClosed()){
        	 con.close();
         }
        if(ps!=null){
        	ps.close();
        }
        if(rs!=null){
        	rs.close();
        } 
        
        
         //out.print(" ")可以输出html语句
         //js中的跳转location.href='xxx'
         //out.print("<script>location.href='sy.jsp'</script>")用js的方法跳转页面
       
         //所有java进行跳转
         //【转发】例如:你找a要钱,a没有钱,a就去找b要钱,a再把钱给你
         //【重定向】例如:你找a要钱,a没有钱,a就叫你去找b要钱,b再把钱给你
         //区别:
         //         1.转发是服务器行为,重定向是客户端行为
         //         2转发可以携带数据(request中的数据),重定向不行
         //         3.转发是路径不会改变,重定向会
         //【转发】
        //request.getRequestDispatcher("sy.jsp").forward(request, response);
        //【重定向】   
        //response.sendRedirect("sy.jsp");
         //登陆逻辑
       
%>

首页代码:

<%@ 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>
<h2><%=request.getParameter("userpwd") %></h2>
</body>
</html>

数据库代码:

create table t_user(
 user_id number primary key,
 user_name varchar2(20) not null,
 user_pwd varchar2(20) not null
);

select * from t_user;
--插入数据
insert into t_user(user_id,user_name,user_pwd)values(1,'lxy','lxy123');
--提交
commit;

今天的讲解就到这里了,下次见,拜拜(づ ̄3 ̄)づ╭❤~

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值