目录
java与jacascript的跳转方式:
JSP页面跳转方式:
form表单提交跳转(上节课已讲):
要求:action和method都需要配置,method不自己设置,默认就是get请求
问题:参数传递
<form action = "1.jsp?password=123" method = "post"> 账号: <input type = "text" name = "username"/> <br/><br/> <input type ="submit" value = "登录"/> </form>
<!-- HTMLform标签时 hidden 隐藏域标签 --> <!-- 作用:页面传值 不会在页面上显示 --> <input type ="hidden" name = "sex" value = "男"/>
超链接标签页面跳转 :
<h5>不带参数超链接页面跳转</h5> <a href = "1.jsp">跳转到1.jsp页面</a> <h5>带参数超链接页面跳转</h5> <a href = "1.jsp?hobby=打游戏">跳转到1.jsp页面</a>
js中location页面跳转:
<button type = "button" onclick = "one()">不带参数跳转</button> <button type = "button" onclick = "two()">带参数跳转</button> <script type="text/javascript"> function one(){ //location对象跳转 location.href = "1.jsp"; } function two(){ location.href = "1.jsp?age=12"; } </script>
java的方式跳转:
请求转发:面向服务端跳转,1次请求,可以将参数传递到另外的页面去获取,地址栏不会发生改变
请求重定向:面向浏览器客户端跳转,2次请求,不可以将参数传递到另外的页面去获取,地址栏会发生改变
请求转发:
通过request对象进行跳转
request.getRequestDispatcher("/页面地址").forward(request, response);请求重定向:
通过response对象进行跳转
response.sendRedirect("success.jsp");
获取form表单提交的值与转发 重定向的使用:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% /* 中转站页面 */ //设置编码 request.setCharacterEncoding("utf-8"); //获取提交页面的账号 使用name属性 String username = request.getParameter("username"); out.println("用户名为: "+username); //获取提交页面的密码使用name属性 String password = request.getParameter("password"); out.println("<br/>密码: "+password); String sex = request.getParameter("sex"); out.println("<br/>性别: "+sex); out.println("<hr/>"); String hobby = request.getParameter("hobby"); out.println("<br/>爱好: "+hobby); out.println("<hr/>"); String age = request.getParameter("age"); out.println("<br/>年龄: "+age); out.println("<hr/>"); /* 如果在中转站页面获取数据进行判断后需要继续跳转页面 */ /* 页面跳转的方式中:location,java的请求转发 重定向可以自动跳转 */ /* form表单以及超链接需要手动点击跳转 不可取 */ String uname = request.getParameter("uname"); String pwd =request.getParameter("pwd"); //判断处理(假设与数据库连接了 交互 admin 123) //匹配成功 跳转到主页,匹配不成功 返回登录页面继续输入后进行登录验证 if("admin".equals(uname) && "123".equals(pwd)){//ok //通过request对象设置一个标记 //跳转---主页 //location //注意:out.println();输出js代码不能直接拼接 需要存放到script标签中才能识别为js代码 //out.println("locaiton.href=index.jsp");//错误的写法 /* out.println("<script>"); out.println("alert('登录成功')"); out.println("location.href='success.jsp'"); out.println("</script>"); */ //java的方式进行跳转 //请求转发 //面向服务端跳转,1次请求,可以将参数传递到另外的页面去获取,地址栏不会发生改变 //request.getRequestDispatcher("success.jsp").forward(request, response); //请求重定向:面向浏览器客户端跳转,2次请求,不可以将参数传递到另外的页面去获取,地址栏会发生改变 response.sendRedirect("success.jsp"); }else{//账号或者密码错误 //返回登录页面 进行操作 out.println("<script>"); out.println("alert('账号或密码错误')"); out.println("location.href='demo1.jsp'"); out.println("</script>"); } %>
JDBC数据库交互:
jdbc 架包下载 :
https://wwn.lanzoul.com/iC6p80298t5ehttps://wwn.lanzoul.com/iC6p80298t5e获取密码:f3da
基础
1.jdbc:java程序与oracle数据库一个连接的桥梁。
2.jdbc中提供的接口以及类
Class.forName();
加载驱动
DriverMagaer:驱动管理类,根据不同的驱动jar连接对应的数据库,返回连接对象
DriverManager.getConnection(url,user,password);
Connection 数据库连接类
PreparedStatement 执行对象,有连接对象调用特定的方法将sql语句传入并返回其对象
ResultSet 结果集对象,通过执行对象调用特定的方法后返回的对象,该对象只针对查询操作,将查询的结果保存在了结果集对象ResultSet中,可以遍历得到这个结果集对象中的每一条记录。
next(); 如果结构及对象中存在查询的记录 可以进行打印输出占位符: ? 通过执行对象.setXxx(设置);
3.web程序通过jdbc连接oracle与sqlserver差不多。
Class.forName("OracleDriver");//SQLServerDriverurl
sqlserver
jdbc:sqlserver://lcoalhost:1433;DatabaseName=db_xxxoracle
jdbc:oracle:thin:@localhost:1521:orcl特别要注意:
oracle中的url地址中都是: 没有其它符号
oracle的端口号: 1521
orcl:实例名 *** 服务名称
服务名称: OracleServiceORCL orcl
OracleServiceORCLE orcle
jdbc连接数据库的步骤 :
准备阶段: 1.编写sql数据表 2.导入指定的架包 步骤如下:
<% //使用步骤 //1.注册驱动类 Class.forName("oracle.jdbc.driver.OracleDriver"); //2.连接数据库 String url = "jdbc:oracle:thin:@localhost:1521:orcl"; Connection conn = DriverManager.getConnection(url, "scott", "123"); //3.执行sql语句 String sql = "select * from tb_user where uname = ? and upwd = ?"; //4.操作数据 PreparedStatement ps = conn.prepareStatement(sql); //给占位符设置值 ps.setString(1, username); ps.setString(2,password); //返回结果集 ResultSet rs = ps.executeQuery(); //判断结果集 if(rs.next()){//如果有下一个值 //转发--- //out.print("<script>alert('登录成功')</script>"); request.getRequestDispatcher("index.jsp").forward(request, response); }else{ //重定向---新的请求方式 //out.print("<script>alert('登录失败')</script>"); response.sendRedirect("login.jsp"); } //5.关闭连接 rs.close(); ps.close(); conn.close();%>