0
点赞
收藏
分享

微信扫一扫

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

minute_5 2022-03-27 阅读 44
java前端

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


目录:

         一.  页面跳转:

               转发与重定向的区别:

        二.  数据库连接:

               JDBC连接数据库


一.  页面跳转:

       转发:

             request 对象:

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

             request 对象的 常用方法:

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

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


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


        重定向:

                response 对象:

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

                response 对象的 常用方法:

                response.sendRedirect(String location);

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

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


    两者的区别:

 登录页面login:

<%@ 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>

  服务器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("<script>location.href='home.jsp'</script>");
	
	//使用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"%>
<!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>

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

 

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


 二.  数据库连接:

       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:

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


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

举报

相关推荐

javaweb_03(页面跳转方式&jdbc交互)

javaWeb页面跳转方式&JDBC

javaWeb(页面跳转方式&JDBC)

JavaWeb页面跳转方式&JDBC

JDBC数据库连接

数据库连接JDBC

0 条评论