目录
找到OracleOraDb11g_home1TNSListener和OracleServiceORCL,打开即可
总结:喜欢看的小伙伴可以点点关注博主会持续更新一些JavaWeb的内容
一、页面跳转
-
js中的跳转
out.print("<script>location.href='home.jsp'</script>");
注意:将js代码写入<script></script>中
转发
对应request对象
request对象用于客户端向服务器发送请求
request对象常用方法:
request.getRequestDispatcher(String location).forward(request, response);
重定向
对应response对象
response对象用于响应客户请求并向客户端输出信息
response.sendRedirect(String location):将请求重新定位到一个不同的URL
转发和重定向的区别
- 转发是服务器行为,重定向是客户端行为
- 转发可以携带数据(request中的数据),重定向不能
- 转发的界面路径不会发生改变,重定向的路径会发生改变
- 转发是浏览器只做了一次访问请求,重定向是浏览器做了至少两次的访问请求
- 转发2次跳转之间传输的信息不会丢失,重定向2次跳转之间传输的信息会丢失
二、JDBC相关知识回顾
JDBC是Java数据库连接技术的简称,提供连接各种常用数据库的能力
JDBC API
- DriverManager类(驱动管理对象)
- Connection接口(连接)
- Statement接口(用于执行静态SQL语句并返回它所生成结果的对象)
- ResultSet接口(结果集)
DriverManager
作用:载入各种不同的JDBC驱动
JDBC 驱动
作用:负责连接各种不同的数据库
三、连接数据库
在执行数据库连接时需要注意数据库服务是否开启,这里以oracle为例,需要打开服务和监听步骤为下: win+x,再点g启动计算机管理
按照上面的步骤一步步来
找到OracleOraDb11g_home1TNSListener和OracleServiceORCL,打开即可
然后把驱动导入进来
连接数据库的基本步骤
1.导入驱动(sqlserver,oracle,mysql),一定要执行 build path
Class.forName("oracle.jdbc.driver.OracleDriver");
2.编写连接语句
String url="jdbc:oracle:thin:@localhost:1521:orcl";//注意记得打开oracle服务:开两个(服务,监听) win+x,g
3.获得连接
Connection con=DriverManager.getConnection(url,"scott","123123");
4.获得预编译对象(执行对象)
PreparedStatement ps=con.prepareStatement("select * from 表名 where 数据1=? and 数据2=?");//数据库查询语句
5.给占位符赋值
ps.setString(1, xx);
ps.setString(2, xx);
6.获得结果集(结果)
ResultSet rs=ps.executeQuery();
7.判断【登录验证,页面跳转】
//登录逻辑 :跳转界面
if(rs.next()){
request.getRequestDispatcher("xxx.jsp").forward(request, response);//如果rs里面有数据则跳到首页
}else{
response.sendRedirect("xxx.jsp");//没有数据则重定向到原本界面
}
8.关闭资源
if(con!=null&&!con.isClosed()){
con.close();
}
if(ps!=null){
ps.close();
}
if(rs!=null){
rs.close();
}
登录界面
主界面
<%@ 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>
<button>登录</button>
</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>
<h1>我是首页</h1>
<h2>欢迎<%=request.getParameter("username") %>大哥</h2>
</body>
</html>
数据库 建好表格 插好数据 (记得把数据提交)
连接数据的操作 :
<%@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
Class.forName("oracle.jdbc.driver.OracleDriver");
//2.编写连接语句
String url="jdbc:oracle:thin:@localhost:1521:orcl";
//打开oracle服务 win+x 在点g 开两个(服务+监听)
// Tiger
//3.获得连接
Connection con=DriverManager.getConnection(url,"lk","lk123");
//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()){
//}
//7.关闭资源
//js中的跳转 location.href="xxx"
// out.print("<script>location.href='home.jsp'</script>");
// 使用java进行跳转
// 【转发】:你找你爸要钱,你爸没有钱,他就会去找你妈要钱,他在把钱功能
// 【重定向】:你要你爸要钱,你把没有钱,他喊你找你妈要钱,你妈在把钱给你
// 区别:
// 1.转发是服务器行为,重定向是客户端行为
// 2.转发可以携带数据,重定向不能
// 3.转发的页面路劲不会发生改变,重定向的路劲会发生改变
// 【转发】 得到请求里面的转发器request.getRequestDispatcher("home.jsp").forward(request, response);
// 【重定向】Redirect重定向response.sendRedirect("home.jsp");
//登录逻辑:跳转界面
if(rs.next()){
request.getRequestDispatcher("home.jsp").forward(request, response);
}else{
response.sendRedirect("login.jsp");
}
//7.关闭资源
if(con!=null&&!con.isClosed()){
con.close();
}
if(ps!=null){
ps.close();
}
if(rs!=null){
rs.close();
}
%>