页面跳转方式
重定向和转发的区别
演示:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>实现跳转页面</title>
</head>
<body>
<!-- 跳转方式 -->
<!--
页面跳转的方式
1.通过HTML超链接的方式进行跳转
<a href = "路径">资源地址</a>
2.通过js的location对象进行页面跳转
window.location.href = "路径"; -->
<!-- 方式一 -->
<a href="denglu.jsp?username=admin&password=123">跳转到主页</a>
<!-- 方式二 -->
<hr />
<!-- 通过location跳转可以携带参数 后面可以通过request对象进行获取 -->
<button onclick="add();">跳转到denglu.jsp</button>
<script type="text/javascript">
function add() {
/* 通过js的location对象进行页面跳转 */
location.href = "denglu.jsp?result=123";
}
</script>
</body>
</html>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<%
/* 作用:登录页面提交后的处理数据的页面 */
//1.设置编码
request.setCharacterEncoding("utf-8");
//2.获取数据
String username = request.getParameter("username");
String password = request.getParameter("password");
//3.进行Oracle数据库交互
//定义两个变量存储用户名以及密码
String name = "";
String pwd = "";
//连接对象定义
Connection conn = null;
PreparedStatement ps = null;//执行对象
//结果集对象
ResultSet rs = null;
try {
//加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
//建立连接
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
conn = DriverManager.getConnection(url, "scott", "123");
//编写sql语句传入执行方法返回执行对象
String sql = "select * from tb_user where uname = ? and upassword = ?";
ps = conn.prepareStatement(sql);
//占位符赋值
ps.setString(1, name);
ps.setString(2, pwd);
//返回结果集对象
rs = ps.executeQuery();
//遍历或者判断
if (rs.next()) {
name = rs.getString(2);
pwd = rs.getString(3);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (conn != null && !conn.isClosed()) {
conn.close();
}
if (ps != null) {
ps.close();
}
if (rs != null) {
rs.close();
}
}
//4.页面跳转
out.println(name + " " + pwd);
if (name != "" && pwd != "") {
//使用转发的技术跳转到主页面 主页面显示当前登录的账号
request.getRequestDispatcher("MainPage.jsp").forward(request, response);
} else {
out.println("<script>alert('账号或密码错误');location.href='user_Login.jsp';</script>");
}
%>
JDBC交互
主要功能
与数据库建立连接、执行SQL 语句、处理结果
常用对象
DriverManager
依据数据库的不同,管理JDBC驱动
Connection
负责连接数据库并担任传送数据的任务
PreparedStatement
由 Connection 产生、负责执行SQL语句
ResultSet
负责保存Statement执行后所产生的查询结果
java通过jdbc连接Oracle数据库进行交互的步骤
1、加载JDBC驱动
Class.forName(JDBC驱动类);
2、与数据库建立连接
Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl","scott","admin");
3、发送SQL语句,并得到返回结果
4、处理返回结果
5、释放资源
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>主界面</title>
<style type="text/css">
h1 {
color: red
}
</style>
</head>
<body>
<h1>登陆成功!!!欢迎来到主界面!!!</h1>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用户登录界面</title>
<style type="text/css">
h1 {
color: blue
}
</style>
</head>
<body>
<h1 align="center">登录界面</h1>
<hr>
<center>
<form action="doLogin.jsp" method="post">
编号<input type="text" name="userid" /> <br /> <br /> 用户名<input
type="text" name="username" /> <br /> <br /> 密码 <input
type="password" name="password" /> <br /> <br /> 性别: <input
type="radio" value="男" name="sex">男 <input type="radio"
value="女" name="sex">女 <br /> <br /> <input type="submit"
value="登录" />
</form>
</center>
</body>
</html>