Java Web入门之 页面跳转方式&JDBC

本章目录

一、页面跳转的方式以及区别

a、重定向 response

b、转发 request

c、二者之间的区别

小提问

二、JSP使用JDBC连接Oracle数据库

a、jar包的下载

b、连接数据库的步骤

c、如何使用JDBC连接Oracle数据库

d、运用增加的案例获取表单提交的各种类型的值传入到数据库

e、JDBC进行数据的提交是否需要commit?


各位看官好,今天我带来的是JSP的页面跳转和JSP连接Oracle数据库的JDBC,接下来我献上思维导图来供大家观看,理一下今日学习的重点

OK,现在进入我们今日的学习主题


一、页面跳转的方式以及区别

a、重定向 response

response.sendRedirect("页面名");

快捷键:resp.sendr

b、转发 request

request.getRequestDispatcher("要跳转的页面名").forward(request, response);

快捷键:req.getreq.for

c、二者之间的区别

重定向 response:能够将页面跳转,并且地址栏发生了改变,但是不能将值传递到下一个页面可以跳转到任意资源,在客户端发挥作用

转发 request:能够将页面跳转,能够将值传递到下一个界面,但是地址栏不会发生改变而是停留在了之前的界面,只能跳转到当前的项目内资源  在服务器段发挥作用

小提问:

那么js的跳转属于什么呢?(可以自己试验一下找出答案哦,下篇文章会公布答案哦)

out.print("<script>alert('用户名或者密码有误');location.href='login.jsp';</script>");//输送到页面

小建议:大部分时候都用重定向 地址栏发生改变,看的舒服,也比较清晰,但是如果需要将值传递到另一个界面就需要转发


二、JSP使用JDBC连接Oracle数据库

a、jar包的下载

https://www.oracle.com/cn/database/technologies/appdev/jdbc-downloads.html

b、连接数据库的步骤

把jar包直接复制到项目里WebContent/WEB-INF文件里

c、如何使用JDBC连接Oracle数据库

首先要定义两个静态常量

	//两个静态常量
	String URL="jdbc:oracle:thin:@localhost:1521:orcl";
    //OracleDriver导包
	String CNAME="oracle.jdbc.driver.OracleDriver";

第二个需要导包 使用OracleDriver

<%@page import="oracle.jdbc.OracleDriver"%>

加载驱动

	//加载驱动
	Class.forName(CNAME);

创建连接

	//创建连接
	Connection con= DriverManager.getConnection(URL, "用户名","密码");

d、运用增加的案例获取表单提交的各种类型的值传入到数据库

案例需要的代码:

 接收login传的值并增加到Oracle数据库(需要另起一个页面,login页面中form表单里action等于的值要跟你另起页面的名字相同,跳转)

<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="oracle.jdbc.OracleDriver"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	//纯java代码
	//设置编码方式
	request.setCharacterEncoding("utf-8");
	//接收表单提交过来的值
	String id= request.getParameter("iid");
	String name= request.getParameter("iname");
	String pwd= request.getParameter("ipwd");
	//取不类型的值
	String sex=request.getParameter("isex");
	String dz=request.getParameter("iaddress");
	String bak=request.getParameter("ibak");
	//取爱好的值
	String ss[]= request.getParameterValues("ihobby");
	String hobby="";//用来拼接
	//循环遍历
	 for(String s:ss){
		hobby+=s+",";//用逗号隔开		
	}
	//如果看不惯最后那个逗号 大家可以用substring截取掉	
	//JDBC连接Oracle 插入到数据库中
		
	//两个静态常量
	String URL="jdbc:oracle:thin:@localhost:1521:orcl";
	String CNAME="oracle.jdbc.driver.OracleDriver";
	//OracleDriver
	//加载驱动
	Class.forName(CNAME);
	
	//创建连接
	Connection con= DriverManager.getConnection(URL, "scott","tiger");
	
	//定义sql语句
	String sql="insert into tb_0327(sid,sname,spwd,ssex,shobby,saddress,sbak) values(?,?,?,?,?,?,?)";
	
	//获取执行对象
	PreparedStatement ps=con.prepareStatement(sql);
	
	//给占位符赋值
	ps.setInt(1, Integer.parseInt(id));//String-->int
	ps.setString(2, name);
	ps.setString(3, pwd);
	ps.setString(4, sex);
	ps.setString(5, hobby);
	ps.setString(6, dz);
	ps.setString(7, bak);
	
	//开始执行 增删改int 查rs
	int n=ps.executeUpdate();//影响行数
	
	//关闭资源 增删改2个 查3个
	if(con!=null&&!con.isClosed()){//不为空且没有关
		con.close();
	}
	if(ps!=null){
		ps.close();
	}
	
	//判断
	if(n>0){
		out.print("插入成功");
	}
	else{
		out.print("插入失败");
	}

注意:数据库要提前创建好表,根据表里面的数据类型插入

e、JDBC进行数据的提交是否需要commit?

不需要,JDBC会自动commit。

OK,以上所有就是今日学习的所有内容了,我是小陽,欢迎个位看官能观看我的文章,如果有写的不好/不足的地方欢迎大家指出来,博主会做出改变,如对各位有所帮助,不介意各位留下免费的三连哦!

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

歐陽。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值