javaWeb 页面跳转方式&jdbc

本文介绍了JavaWeb中登录页面的实现,包括表单元素、提交方式。接着展示了使用JDBC连接Oracle数据库,插入用户信息的步骤。最后讲解了页面跳转的验证,包括设置字符编码、获取表单参数,并对比了重定向和转发的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

思维导图

登录页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; 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" value="登录">
        <input type="reset" value="清空">
    </form>
</body>
</html>

 连接数据库

//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_0328(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
    //---查         结果集 集合 
    int n=ps.executeUpdate();//获取影响行数
    
    //关闭资源 
    //---增删改  2个
    //---查         3个 rs 
    if(con!=null&&!con.isClosed()){//不为空且没有关 
        con.close();
    }
    if(ps!=null){
        ps.close();
    }

跳转页面的验证

//设置编码方式
    request.setCharacterEncoding("utf-8");
    //接收表单的值:id 用户名 密码  根据name值取value值 
    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+",";//拼接 用逗号隔开
    }

response  和   request 的区别

//假设我的数据表里面已经存在用户admin 密码为123456
    //if("admin".equals(name)&&"123456".equals(pwd)){
        //说明登录成功 跳转到success.jsp
        //页面跳转两种方式
        //1.重定向response
        //能够将页面跳转 地址栏发生了改变 但是不能将值传递到下一个界面  
        //能够跳转到任意资源 在客户端发挥作用

        //response.sendRedirect("http://www.baidu.com");
        
        //2.转发request
        //能够将页面跳转 能够将值传递下一个界面 但是地址栏不发生改变而是停留在了之前的界面
        //只能够转发到当前的项目内资源 在服务器端发挥作用 

        //request.getRequestDispatcher("http://www.baidu.com").forward(request, response);
    //}
    //else{
        //说明登录失败 提示用户并返回登录界面  js的跳转属于哪一种?属于重定向 因为地址栏发生了改变 login->dologin->login 
        //out.print("<script>alert('用户名或者密码有误');location.href='login.jsp';</script>");
    //}
    //out.print(name+"  "+pwd);
%>

好的,我会尽力解答你的问题。 JavaWeb页面跳转: 在JavaWeb中,实现页面跳转有多种方式,其中最常见的是使用重定向和转发。 重定向是指服务器返回一个HTTP响应,告诉客户端请求的资源已经被移到一个新的位置,客户端需要重新发送请求到这个新的位置。重定向可以通过以下代码实现: ```java response.sendRedirect("newpage.jsp"); ``` 转发是指服务器直接将请求转发到另一个资源,客户端并不知道这个过程发生了。转发可以通过以下代码实现: ```java request.getRequestDispatcher("newpage.jsp").forward(request, response); ``` JavaWeb之数据库连接: 在JavaWeb中,连接数据库是非常常见的操作,可以使用JDBC或者ORM框架来实现。 使用JDBC连接数据库的步骤如下: 1. 加载数据库驱动程序 ```java Class.forName("com.mysql.jdbc.Driver"); ``` 2. 获取数据库连接 ```java Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password"); ``` 3. 创建Statement对象 ```java Statement stmt = conn.createStatement(); ``` 4. 执行SQL语句 ```java ResultSet rs = stmt.executeQuery("SELECT * FROM user"); ``` 5. 处理查询结果集 ```java while (rs.next()) { // 处理每一行数据 } ``` 6. 释放资源 ```java rs.close(); stmt.close(); conn.close(); ``` ORM框架可以帮助我们更方便地操作数据库,比如使用MyBatis,只需要编写SQL语句和映射文件即可。例如: 1. 编写SQL语句 ```xml <select id="getUserById" resultType="User"> SELECT * FROM user WHERE id = #{id} </select> ``` 2. 编写映射文件 ```xml <resultMap id="userResultMap" type="User"> <id property="id" column="id"/> <result property="name" column="name"/> <result property="age" column="age"/> </resultMap> ``` 3. 获取SqlSession对象 ```java SqlSession sqlSession = sqlSessionFactory.openSession(); ``` 4. 执行查询操作 ```java User user = sqlSession.selectOne("getUserById", 1); ``` 5. 释放资源 ```java sqlSession.close(); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值