Java Web入门之 页面跳转方式&JDBC
各位看官好,今天我带来的是JSP的页面跳转和JSP连接Oracle数据库的JDBC,接下来我献上思维导图来供大家观看,理一下今日学习的重点
OK,现在进入我们今日的学习主题
一、页面跳转的方式以及区别
a、重定向 response
response.sendRedirect("页面名");
快捷键:resp.sendr
request.getRequestDispatcher("要跳转的页面名").forward(request, response);
快捷键:req.getreq.for
c、二者之间的区别
重定向 response:能够将页面跳转,并且地址栏发生了改变,但是不能将值传递到下一个页面可以跳转到任意资源,在客户端发挥作用
小提问:
那么js的跳转属于什么呢?(可以自己试验一下找出答案哦,下篇文章会公布答案哦)
out.print("<script>alert(用户名或者密码有误);location.href=login.jsp;</script>");//输送到页面
二、JSP使用JDBC连接Oracle数据库
a、jar包的下载
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。
下一篇:
mac下实现代码远程同步