目录
一、页面跳转
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的跳转方式有两种,一种是转发,还有一种是重定向。
·转发与重定向的区别
- 转发是服务器行为,重定向是客户端行为
- 转发可以携带数据,重定向不能
- 转发的界面路径不会发生改变,重定向的路径会发生改变
·转发
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();
}
%>
本期内容就讲到这啦,下期小编再给大家分享更多知识