思维导图:
页面跳转
页面跳转分为重定向和转发
主要的区别是地址栏发生改变
代码:
<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" value="注册">
<input type="reset" value="清空">
</form>
//页面跳转方式
//假设法:假设数据表里面存在用户名为admin的用户 密码为123456
///if("admin".equals(name)&&"123456".equals(pwd)){
//说明登录成功 跳转到success.jsp
//页面跳转方式2种
//1.重定向response 能够将页面跳转 地址栏发生了改变 但是不能将值传递到下一个界面
// 可以跳转到任意资源 在客户端发挥作用
response.sendRedirect("http://www.baidu.com");//resp.sendr
//2.转发 request 能够将页面跳转 能够将值传递到下一个界面 但是地址栏不发生改变而是停留在了之前的界面
//只能跳转到当前的项目内资源 在服务器端发挥作用
request.getRequestDispatcher("http://www.baidu.com").forward(request, response);//req.getreq.for
//}
//else{
//说明登录失败 提示用户并且返回登录界面 js的跳转属于重定向 因为地址栏发生了改变 login->dologin->login
out.print("<script>alert('用户名或者密码有误');location.href='login.jsp';</script>");//输送到页面
//}
jdbc:
比较重要的代码是:
//两个常量
String URL="jdbc:oracle:thin:@localhost:1521:orcl";
String CNAME="oracle.jdbc.driver.OracleDriver";
用来连接数据库很重要
//纯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 address=request.getParameter("iaddress");
String bak=request.getParameter("ibak");
//取爱好的值
String[] ss=request.getParameterValues("ihobby");
String hobby="";//用来拼接
//循环遍历
for(String s:ss){
hobby+=s+",";//用逗号隔开
}
//如果看不惯最后那个逗号 大家可以用substring截取掉
//jdbc连接Oracle 插入到数据库中
//作业1 sid:使用触发器+序列实现标识列效果
//两个常量
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_220326(id,name,pwd,sex,hobby,address,bak) 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()){//不为空且没有关
con.close();
}
if(ps!=null){
ps.close();
}
//判断
if(n>0){
out.print("插入成功");
}
else{
out.print("插入失败");
}
版权声明:本文为weixin_67338832原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。