栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Web03之页面跳转方式&数据库连接(jdbc)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Web03之页面跳转方式&数据库连接(jdbc)

咋连接数据库?实现页面跳转?


目录:

         一.  页面跳转:

               转发与重定向的区别:

        二.  数据库连接:

               JDBC连接数据库


一.  页面跳转:

       转发:

             request 对象:

             用于客户端向服务器发送请求,

             request 对象的 常用方法:

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

转发的大概路径就是这样:


转发是服务器内部行为,共产生了一个请求,转发可以携带(request中的)数据,转发的页面路径不会发生改变。


        重定向:

                response 对象:

                用于响应客户请求并向客户端输出信息,

                response 对象的 常用方法:

                response.sendRedirect(String location);

重定向的大概路径就是这样:

重定向是客户端行为,共产生了两个请求,重定向不能携带(request中的)数据,重定向的页面路径会发生改变。


    两者的区别:

     转发与重定向的区别:

                        1. 转发是服务器行为,重定向是客户行为

                        2. 转发可以携带数据(request中的数据),重定向不行

                        3. 转发的页面路径不会发生改变,重定向的路径会发生改变

 登录页面login:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Insert title here


	

  服务器doLogin页面:(里面包含连接数据库)

<%@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
	//OracleDriver   加载oracle驱动类
	Class.forName("oracle.jdbc.driver.OracleDriver");
	
	//2.编写连接语句
	String url="jdbc:oracle:thin:@localhost:1521:orcl";
	//打开oracle服务:开两个(服务,连接)  win+x,g
	//打开1:OracleServerORCL
	//打开2:OracleOraDb11g_home1TNSListener
	
	//3.获得连接
	Connection con=DriverManager.getConnection(url,"scott","123");
	
	//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.判断【登录验证,页面跳转】
	
	
	//js中的跳转:location.href='xxx'
	//out.print("");
	
	//使用java进行跳转
	//【转发】:你找你爸要钱,你爸没有钱,他就会找你妈要钱,你妈给你爸钱,你爸把钱给你	产生了一个请求	在服务器内部
	//【重定向】:你找你爸要钱,你爸没有钱,你爸喊你去找你妈要钱,你妈再给你钱			产生了两个请求	在客户端行为
	//区别:
	//		1.转发是服务器行为,重定向是客户端行为
	//		2.转发可以携带数据(request中的数据),重定向不行
	//		3.转发的页面路径不会发生改变,重定向的路径会发生改变
	
	//登录的逻辑:需要跳转界面
	if(rs.next()){
		request.getRequestDispatcher("home.jsp").forward(request,response);
		//【转发】request.getRequestDispatcher("home.jsp").forward(request,response);
		//【重定向】response.sendRedirect("home.jsp");
		//out.print("yes");//可以输出html语句
	}else{
		response.sendRedirect("home.jsp");
		//out.print("no");
	}
	
	//7.关闭资源
	if(con!=null&&con.isClosed()){
		con.close();
	}
	if(ps!=null){
		ps.close();
	}
	if(rs!=null){
		rs.close();
	}
%>

  首页home:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Insert title here


	我是首页
	欢迎<%=request.getParameter("username") %>老大爷
	<%--<%=request.getParameter("userpwd") %> --%>

 运行结果如下图所示:(登录页面)

 

如果登录失败,会重新跳回登录页面,如果登录成功之后,则会跳进这个主页面 :


 二.  数据库连接:

       JDBC连接数据库:

                      JDBC 是Java数据库连接技术的简称,

                      提供连接各种常用数据库的能力 

  图片解析:

 连接数据库:

        7个基本步骤如下:

//1导入驱动(sqlserver,oracle,mysql),一定要执行 build path
	//OracleDriver   加载oracle驱动类
	Class.forName("oracle.jdbc.driver.OracleDriver");
	
	//2.编写连接语句
	String url="jdbc:oracle:thin:@localhost:1521:orcl";
	//打开oracle服务:开两个(服务,连接)  win+x,g
	//打开1:OracleServerORCL
	//打开2:OracleOraDb11g_home1TNSListener
	
	//3.获得连接
	Connection con=DriverManager.getConnection(url,"scott","123");
	
	//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("home.jsp").forward(request,response);
		//【转发】request.getRequestDispatcher("home.jsp").forward(request,response);
		//【重定向】response.sendRedirect("home.jsp");
		//out.print("yes");//可以输出html语句
	}else{
		response.sendRedirect("home.jsp");
		//out.print("no");
	}
	
	//7.关闭资源
	if(con!=null&&con.isClosed()){
		con.close();
	}
	if(ps!=null){
		ps.close();
	}
	if(rs!=null){
		rs.close();
	}
	

补充:(小知识点)

导入的驱动包应该放在 lib项目下面:

然后右键,选择 build path:

然后点击牛奶瓶,完成后牛奶瓶就会出现在这里:


以上就是今天的全部内容,感谢观看!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/781142.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号