页面跳转方式&jdbc交互

1.页面跳转方式
1.javascript方式跳转
    window.location.href = "跳转的地址"

2.html超链接跳转

3.java方式跳转

        3.1 转发
    概述
        由服务器端进行的页面跳转
    方法
        (1)获取转发器====》RequestDispatcher rd =  request.getRequestDispatcher("/跳转的地址")
        (2)实现转发====》转发器对象.forward(request,response);
        通常简写:request.getRequestDispatcher("/跳转的地址").forward(request,response);
    特点
        (1)地址栏不发生变化,显示的是上一个页面的地址
        (2)请求次数:只有1次请求,因为转发是服务端行为。
        (3)根目录:http://localhost:8080/项目地址/,包含了项目的访问地址
        (4)请求域中数据不会丢失

        3.2 重定向
    概述
        由浏览器端进行的页面跳转
    方法
        response.sendRedirect("要跳转的地址");
    特点
        (1)地址栏:显示新的地址
        (2)请求次数:2次
        (3)根目录:http://localhost:8080/ 没有项目的名字
        (4)请求域中的数据会丢失,因为是2次请求

2.jdbc交互 

JDBC 
    主要功能
        与数据库建立连接、执行SQL 语句、处理结果
    常用对象
        DriverManager 
            依据数据库的不同,管理JDBC驱动
        Connection 
            负责连接数据库并担任传送数据的任务
        PreparedStatement 
            由 Connection 产生、负责执行SQL语句
        ResultSet
            负责保存Statement执行后所产生的查询结果
    java通过jdbc连接Oracle数据库进行交互的步骤
        1、加载JDBC驱动
            Class.forName(JDBC驱动类);
        2、与数据库建立连接
            Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl","scott","admin");
        3、发送SQL语句,并得到返回结果
        4、处理返回结果
        5、释放资源 

<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.DriverManager"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
    <%
        //该页面的作用:获取表单提交的数据以及进行数据库交互
        //交互完成后可以根据不同的需求进行页面跳转(lcoation,request,response)
    
        //1.设置编码
        request.setCharacterEncoding("utf-8");
    
        //2.获取表单提交的用户和密码
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        
        String uname = "";//接收查询的用户
        String pwd = "";//接收查询的密码
        //3.数据库交互
        
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        try{
            //1.加载驱动,载入驱动包.jar
            //OracleDriver
            Class.forName("oracle.jdbc.driver.OracleDriver");
            //2.建立连接
            String url = "jdbc:oracle:thin:@localhost:1521:orcl";
            conn = DriverManager.getConnection(url, "scott", "123");
            //3.编写对应的sql语句
            String sql = "select * from tb_t281_0328_users where username = ? and password = ?";//登录  查询 
            //4.通过连接对象调用特定的方法传入sql语句返回执行对象
            ps = conn.prepareStatement(sql);
            //5.如果有占位符那么通过执行对象给占位符进行赋值
            ps.setString(1, username);
            ps.setString(2, password);
            //6.增加|删除|修改---返回所影响的行数即可 ,查询---返回结果集对象
            rs = ps.executeQuery();//根据执行对象调用方法返回结果集
            //7.增加|删除|修改--判断所影响的行数即可, 查询--遍历结果集
            if(rs.next()){//如果结果集中存在查询到记录
                uname = rs.getString(2);
                pwd = rs.getString(3);
            }
            //输出查询的结果
            //out.println("用户名: "+uname);
            //out.println("<br/>密码: "+pwd);
            
            
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            //8.操作完毕后----关闭所有的数据库连接对象
            try{
                if(conn!=null && !conn.isClosed()){
                    conn.close();
                }
                if(ps!=null){
                    ps.close();
                }
                if(rs!=null){
                    rs.close();
                }
            }catch(Exception e2){
                e2.printStackTrace();
            }
        }
        
        //页面跳转的判断  根据uname和pwd
        if(""!=uname && ""!=pwd){//登录OK
            //页面跳转  请求转发
            request.getRequestDispatcher("home.jsp").forward(request, response);
        }else{//为空  登录失败
            out.println("<script>alert('账号或密码错误');location.href='login.jsp'</script>");
        }
        
        
        //4.判断结果跳转到指定的页面去
        
        
        
    
    %>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值