今日思维导图:
一、页面跳转方式(两种)
1、重定向 response : response.sendRedirect("success.jsp");
2、请求 request : request.getRequestDispatcher("success.jsp").forward(request, response);
两者之间的关系:
两者之间的区别:
//页面跳转方式
//1、重定向语法response ①能够将页面跳转,并且地址栏发生转变,但是不能将值传递到下一个页面 ③能够跳转到任意资源
//在客户端发挥作用
//response.sendRedirect("success.jsp");
//2.、转发 request ②能够将页面跳转,地址栏不发生改变,但是能将值传递到下一个值 ④只能跳转到当前页面
//在服务器端发生作用
//request.getRequestDispatcher("success.jsp").forward(request, response);
二、JDBC(连接数据库Oraacle)
主界面效果图展示如下:
代码展示如下:
<%@ 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>
<h2> 注册界面</h2>
<form action="dologin.jsp" method="post">
ID:<input type="text" name="iid"><br>
用户名:<input type="text" name="iname"><br>
密码:<input type="password" name="ipwd"><br>
性别:<input type="radio" name="isex" value="男">男
<input type="radio" name="isex" value="女">女<br>
爱好:<input type="checkbox" name="ihobby" value="干饭">干饭
<input type="checkbox" name="ihobby" value="睡觉">睡觉
<input type="checkbox" name="ihobby" value="网易云">网易云<br>
地址:<select name="iaddress">
<option value="湖南省">湖南省</option>
<option value="湖北省">湖北省</option>
<option value="河南省">河南省</option>
</select><br>
备注:<textarea rows="10" cols="15" name="ibak"></textarea></br>
<input type="submit" name="登录">
<input type="reset" name="清空">
</form>
</body>
</html>
再根据其中name值获取该对象 代码展示如下:
<%@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");
//接收提交过来的值(ID&用户名&密码)
String id = request.getParameter("iid");
String name = request.getParameter("iname");
String pwd = request.getParameter("ipwd");
//取不同类型的值
//取性别 地址 备注 都是根据name值获取值
String sex = request.getParameter("isex");
String address = request.getParameter("iaddress");
String bak = request.getParameter("ibak");
//获取爱好的值
String[] ss = request.getParameterValues("ihobby");//返回类型是个字符串的数组
String hobby = "";//用来拼接
//循环遍历
for(String s:ss){
hobby+=s+",";//用逗号隔开
}
//如果看不过最后的那个逗号 可以用substring截取掉
//out.print(hobby);
//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_0325(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,address);
ps.setString(7,bak);
//开始执行 增删改int 查rs
int n = ps.executeUpdate();//影响行数
//关闭资源 增删改2个 查3个
if(con!=null&&con.isClosed()==false){
con.close();
}
else{
ps.close();
}
//判断
if(n>0){
out.print("插入成功");
}
else{
out.print("插入失败");
}
//out.print(name+" "+pwd+" "+sex+" "+address+" "+bak);
//页面跳转方式
//假设法:假设数据表里存在用户名为admin 密码为123456
//if("admin".equals(name)&&"123456".equals(pwd)){
//说明登录成功 跳转到success.jsp
//页面跳转方式2中
//1、重定向语法response ①能够将页面跳转,并且地址栏发生转变,但是不能将值传递到下一个页面 ③能够跳转到任意资源
//在客户端发挥作用
//response.sendRedirect("success.jsp");
//2.、转发 request ②能够将页面跳转,地址栏不发生改变,但是能将值传递到下一个值 ④只能跳转到当前页面
//在服务器端发生作用
//request.getRequestDispatcher("success.jsp").forward(request, response);//req.getreq.for
//}
//else{
//说明登录失败 提示用户并返回登录界面 js的跳转属于重定向 因为地址栏发生了改变
//out.print("<script>alert('用户名或密码有误');location.href='login.jsp';</script>");//输送到页面
//}
%>
好了,以上就是今天的内容了,本节完。