JavaWEB(页面跳转方式&JDBC交互)

一.页面跳转方式

1.1 JavaScript方式跳转

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Insert title here


	
	
	
	
	




<%@ page import="java.util.Scanner" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Insert title here


	

欢迎来到我的主页

<% request.setCharacterEncoding("utf-8");//设置编码 //获取超链接上携带的参数 String username = request.getParameter("username"); out.println("用户名为: "+username); /* 获取jslocation对象.href中携带的参数 */ String result = request.getParameter("result"); out.println("
result = "+result); %>

1.2 Java方式跳转

① 转发 

概述 : 由服务端进行的页面跳转

方式 : 

(1)获取转发器====》RequestDispatcher rd =  request.getRequestDispatcher("/跳转的地址")

(2)实现转发====》转发器对象.forward(request,response);

通常简写:request.getRequestDispatcher("/跳转的地址").forward(request,response);

特点 : 

(1)地址栏不发生变化,显示的是上一个页面的地址
(2)请求次数:只有1次请求,因为转发是服务端行为。
(3)根目录:http://localhost:8080/项目地址/,包含了项目的访问地址
(4)请求域中数据不会丢失

② 重定向

概述 : 由浏览器端进行的页面跳转

方法 : response.sendRedirect("要跳转的地址");

特点 : 

(1)地址栏:显示新的地址
(2)请求次数:2次
(3)根目录:http://localhost:8080/ 没有项目的名字
(4)请求域中的数据会丢失,因为是2次请求

③ 注意事项

(1) 什么时候使用转发,什么时候使用重定向?
    如果要保留请求域中的数据,使用转发,否则使用重定向。
    以后访问数据库,增删改使用重定向,查询使用转发。

(2) 转发或重定向后续的代码是否还会运行?
    无论转发或重定向后续的代码都会执行

④ 重定向和转发的区别

JavaWEB(页面跳转方式&JDBC交互)_第1张图片

 

二.JDBC

1.1 主要功能

与数据库建立连接,执行SQL语句,处理结果

1.2 常用对象

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

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

③ PreparedStatement 
    由 Connection 产生、负责执行SQL语句

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

1.3 java通过jdbc连接Oracle数据库进行交互的步骤

① 加载JDBC驱动
    Class.forName(JDBC驱动类);
② 与数据库建立连接
Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl","scott","admin");
③ 发送SQL语句,并得到返回结果
④ 处理返回结果
⑤ 释放资源

三.案例

思路 : 注册页面如果输入数据库中定义的一模一样的数据时,我们就返回注册页面,重新注册,相反如果输入不一样的就注册成功.

//Oracle数据库

create table tb_user(
   uuid number primary key,
   uname varchar2(100),
   upwd varchar2(100),
   usex varchar2(2),
   uhobby varchar2(100),
   uaddress varchar2(100)
)

insert into tb_user values(1,'小哈','123','男','打游戏','湖南');
insert into tb_user values(2,'小席','123','女','打小哈','湖南');
insert into tb_user values(3,'小话','123','男','打小席','湖南');

commit;

select * from tb_user


//注册页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Insert title here


注册界面

用户名:
密码:
性别:
爱好:
地址:
//中转页面 <%@page import="java.sql.DriverManager"%> <%@page import="java.sql.ResultSet"%> <%@page import="java.sql.PreparedStatement"%> <%@page import="java.sql.Connection"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% //设置编码 request.setCharacterEncoding("utf-8"); //获取数据 String uname=request.getParameter("uname"); String upwd=request.getParameter("upwd"); String usex = request.getParameter("usex"); String uhobby = request.getParameter("uhobby"); String uaddress=request.getParameter("uaddress"); //进行oracle数据库交互 //定义5个变量存储用户名,密码,性别,爱好,地址 String name=""; String pwd=""; String sex=""; String hobby=""; String address=""; //连接对象 Connection conn=null; //执行对象 PreparedStatement ps=null; //结果集对象 ResultSet rs=null; try{ //加载驱动 Class.forName("oracle.jdbc.driver.OracleDriver"); //建立连接 conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "123"); //编写SQL语句 String sql="select * from tb_user where uname=? and upwd=? and usex=? and uhobby=? and uaddress=?"; //将SQL语句传入执行对象中并返回 ps=conn.prepareStatement(sql); //占位符赋值 ps.setString(1, uname); ps.setString(2, upwd); ps.setString(3, usex); ps.setString(4, uhobby); ps.setString(5, uaddress); //返回结果集对象 rs=ps.executeQuery(); //遍历或判断 if(rs.next()){ //有用户返回出来 用变量接收 name=rs.getString(3); pwd=rs.getString(3); sex=rs.getString(2); hobby=rs.getString(3); address=rs.getString(5); } }catch(Exception e){ e.printStackTrace(); }finally{ try{ if(conn != null && !conn.isClosed()){ conn.close(); } if(ps != null){ ps.close(); } if(rs != null){ rs.close(); } }catch(Exception e){ e.printStackTrace(); } } //页面跳转 out.print( "用户名:"+name+"
" +"密码:"+pwd+"
" +"性别:"+sex+"
" +"爱好:"+hobby+"
" +"地址:"+address ); if(name != "" && pwd != "" && sex !="" && hobby != "" && address != ""){ out.println(""); }else{ request.getRequestDispatcher("Registered1.jsp").forward(request, response); } %> //主页面 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here

欢迎<%= request.getParameter("uname") %> 注册成功

你可能感兴趣的:(java,web,java,web)