一、页面跳转方式以及区别
重定向:response(响应)
语法:response.sendRedirect("要跳转的页面");
特点:
- 能够将页面跳转
- 地址栏发生改变
- 不能将值传递到下一个页面
- 可以跳转到任意资源
- 在客户端发挥作用
转发:request(请求)
语法:request.getRequestDispatcher("要跳转的页面").forward(request, response);
特点:
- 能够将页面跳转
- 能够将值传递到下一个页面
- 地址栏不发生改变停留在之前的界面
- 不能随便跳转 只能跳转到当前项目内资源
- 在服务器发挥作用
二、JDBC【Oracle】
问题1、如何获取表单提交过来的各种类型的值 ?
<form action="dologin.jsp" method="post"> 用户名:<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" value="登录"> <input type="reset" value="清空"> </form>
该如何拿到上面各种类型的值呢?
//首先要设置编码方式 request.setCharacterEncoding("utf-8"); //开始接收 //用户名&密码 String name=request.getParameter("iname"); String pwd=request.getParameter("ipwd"); //取不同类型的值 取性别 地址 备注 String sex=request.getParameter("isex"); String address=request.getParameter("iaddress"); String bak=request.getParameter("ibak"); //上面的因为都是拿一个值,所以都根据name就可以拿到 //爱好不同,爱好要拿到多个 //取爱好的值 String[] ss=request.getParameterValues("ihobby"); String hobby="";//用来拼接 //循环遍历 for(String s:ss){ hobby+=s+",";//若看这个“,”不爽,可以利用截取,把它截取调 } //以上就是拿到的所有值打印一下 out.print(sex+" "+address+" "+bak+" "+hobby);
问题2、连接数据库的步骤 ?
//首先需要两个常量 String URL="jdbc:oracle:thin:@localhost:1521:orcl"; String CNAME="oracle.jdbc.driver.OracleDriver";//需要导入驱动包,具体信息根据自己驱动包来填 //加载驱动 Class.forName(CNAME); //创建连接 Connection con= DriverManager.getConnection(URL, "Oracle数据库账号", "数据库密码"); //定义sql语句 //这里以增加为例子 数据库表名为tb_0325 列sname,spwd,ssex,shobby,saddress,sbak String sql="insert into tb_0325(sname,spwd,ssex,shobby,saddress,sbak) values(?,?,?,?,?,?)"; //获得执行对象 PreparedStatement ps=con.prepareStatement(sql); //给占位符赋值 ps.setString(1, name); ps.setString(2, pwd); ps.setString(3, sex); ps.setString(4, hobby); ps.setString(5, address); ps.setString(6, bak); //开始执行 增删改int 查rs int n=ps.executeUpdate();//影响行数 //关资源 if(con!=null&&con.isClosed()){ con.close(); } if(ps!=null){ ps.close(); } //判断 if(n>0){ out.print("插入成功"); } else{ out.print("插入失败"); }