JavaWeb的页面跳转和JDBC

目录

一、页面跳转

1.js中的跳转

2.使用Java进行跳转

·转发与重定向的区别

·转发

·重定向

 二、数据库连接

1.JDBC是什么

2.连接数据库


一、页面跳转

说到页面跳转,我们当然需要页面啦,我们先编写两个界面。

登录界面: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>

首界面: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>
	<h2>欢迎来到首页</h2>
	<h2>欢迎 <%=request.getParameter("username") %>回来</h2>
</body>
</html>

下面所有的界面跳转都是从上面的登录界面跳转到首页

1.js中的跳转

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

💌登录处理界面:doLogin

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	//网络中数据传输用的都是字节 字节会产生乱码的情况
	request.setCharacterEncoding("utf-8"); //将请求中的字符编码设置为中文

	//获取来自于前端的数据
	String name=request.getParameter("username");
	String pwd=request.getParameter("userpwd");

	// js中的跳转 location.href='xxx'
	if("sa".equals(name)&&"123".equals(pwd)){
		out.print("<script>location.href='home.jsp'</script>");
	}else{
		out.print("<script>location.href='login.jsp'</script>");
	}
%>

  

js也是可以跳转的,但是拿不到值。 

2.使用Java进行跳转

Java的跳转方式有两种,一种是转发,还有一种是重定向。

·转发与重定向的区别

  1. 转发是服务器行为,重定向是客户端行为
  2. 转发可以携带数据,重定向不能
  3. 转发的界面路径不会发生改变,重定向的路径会发生改变

·转发

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

💕通俗易懂 

 【转发】:你找你爸要钱,你爸没钱,他就会找你妈要钱,他再把钱给你

💞图片解析

 💌登录处理界面:doLogin

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	//网络中数据传输用的都是字节 字节会产生乱码的情况
	request.setCharacterEncoding("utf-8"); //将请求中的字符编码设置为中文

	//获取来自于前端的数据
	String name=request.getParameter("username");
	String pwd=request.getParameter("userpwd");

	//登录验证
	if("sa".equals(name)&&"123".equals(pwd)){
		request.getRequestDispatcher("home.jsp").forward(request, response);
	}else{
		request.getRequestDispatcher("login.jsp").forward(request, response);
	}
%>

路径停留在了doLogin(登陆处理)界面 ,可以读取到用户的值。

·重定向

response.sendRedirect("home.jsp");

💕通俗易懂  

【重定向】:你找你爸要钱,你爸没钱,他叫你找你妈要钱,你妈再把钱给你

💞图片解析

 💌登录处理界面:doLogin

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	//网络中数据传输用的都是字节 字节会产生乱码的情况
	request.setCharacterEncoding("utf-8"); //将请求中的字符编码设置为中文

	//获取来自于前端的数据
	String name=request.getParameter("username");
	String pwd=request.getParameter("userpwd");

	//登录验证
	if("sa".equals(name)&&"123".equals(pwd)){
		response.sendRedirect("home.jsp");
	}else{
		response.sendRedirect("login.jsp");
	}
%>

 

路径跳转到home(首页)界面 ,不能读取到用户的值。 

 二、数据库连接

1.JDBC是什么

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

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

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

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

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

2.连接数据库

连接数据库的步骤:

我将步骤分为两大步

第一步:

1.现将jar包复制粘贴到webapp中的lib包下

 2.右键我们导入的jar包,Build Path,再Add to Build Path

3.添加之后就可以看到以下图片那样

 第二步:

1.导入驱动(sqlserver,oracle,mysql),一定要执行build path
    OracleDriver只需要用来导包,之后可以删了

        Class.forName("oracle.jdbc.driver.OracleDriver");

2.编写连接语句
    String url="jdbc:oracle:thin:@localhost:1521:orcl";
    //打开oracle服务:开启服务和监听 

3.获得连接
    Connection con=DriverManager.getConnection(url,"用户名","用户密码");   

4.获得预编译对象
    PreparedStatement ps=con.prepareStatement("select * from 表名 where XX=? and XX=?");
    给占位符赋值
    ps.setString(1, name);
    ps.setString(2, pwd);

5.获得结果集(结果)
    ResultSet rs=ps.executeQuery();

6.判断输入的用户是否在数据库中存在 [登陆验证 页面跳转]

7.关闭资源
    if(con!=null&&!con.isClosed()){
        con.close();
    }
    if(ps!=null){
        ps.close();
    }
    if(rs!=null){
        rs.close();
    }

在数据库中建一个表并插入一条数据

create table t_user(
       user_name varchar2(20) not null,
       user_pwd varchar2(20) not null
);
insert into t_user(user_name,user_pwd) values('root','root123');
select * from t_user;
commit --一定要提交

💌登录处理界面: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"%>
<%

	//网络中数据传输用的都是字节 字节会产生乱码的情况
	request.setCharacterEncoding("utf-8"); //将请求中的字符编码设置为中文

	//获取来自于前端的数据
	String name=request.getParameter("username");
	String pwd=request.getParameter("userpwd");

	// 1.导入驱动(sqlserver,oracle,mysql),一定要执行build path
	//OracleDriver
	Class.forName("oracle.jdbc.driver.OracleDriver");

	// 2.编写连接语句
	String url="jdbc:oracle:thin:@localhost:1521:orcl";
	//打开oracle服务:开启服务和监听
	
	// 3.获得连接
	Connection con=DriverManager.getConnection(url,"scott","zkingedu");
	
	// 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);
	}else{
		request.getRequestDispatcher("login.jsp").forward(request, response);
	}
	
	// 7.关闭资源
	if(con!=null&&!con.isClosed()){
		con.close();
	}
	if(ps!=null){
		ps.close();
	}
	if(rs!=null){
		rs.close();
	}

%>

 

 本期内容就讲到这啦,下期小编再给大家分享更多知识

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值