目录
一、页面跳转
说到页面跳转,我们当然需要页面啦,我们先编写两个界面。
<%@ 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>
<%@ 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中的跳转
💌登录处理界面: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的跳转方式有两种,一种是转发,还有一种是重定向。
·转发与重定向的区别
·转发
💕通俗易懂
【转发】:你找你爸要钱,你爸没钱,他就会找你妈要钱,他再把钱给你
💞图片解析
💌登录处理界面: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(登陆处理)界面 ,可以读取到用户的值。
·重定向
💕通俗易懂
【重定向】:你找你爸要钱,你爸没钱,他叫你找你妈要钱,你妈再把钱给你
💞图片解析
💌登录处理界面: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数据库连接技术的简称,提供连接各种常用数据库的能力
2.连接数据库
在数据库中建一个表并插入一条数据
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();
}
%>
本期内容就讲到这啦,下期小编再给大家分享更多知识