javaweb页面跳转方式&JDBC

页面跳转方式&JDBC

本期内容 页面的跳转 和 数据库的连接
页面跳转

在java中out.print()是可以输出html语句的

跳转:
out.print("<a href='login.jsp'>点我返回登入页面")//这个也是可以跳转的
   还有:回顾我们的js跳转 location.href="xx"
使用js跳转

在这里插入图片描述

这里我们新建一个我们要跳转的页面 名字(home)

location.href="xx"这里我们先使用js语句跳转

然java后在我们之前的页面上把这个 丢在out.print里面去

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%//里面写java代码
//网页数据传输如果是字节或文字情况下会产生乱码情况
request.setCharacterEncoding("UTF-8");//将请求中的字符编码设置成中文
String name=request.getParameter("username");//获取username的值
String pwd=request.getParameter("userpwd");//获取userowd的值
//登入逻辑:跳转页面
if("sa".equals(name)&&"123".equals(pwd)){
	out.print("<script>location.href="home.jsp</script>");//双引号里面写我们要跳转的页面 这里我们要跳转的页面是home
    注:(这里直接丢进去是不行的 因为它是js语句 要把它套在 script标签里面)
}else{
	out.print("no");
}
%>
使用java进行跳转
  1. 转发 意思:(就是如果 你找一个人借东西但他没有 然后他就找别人借给你 然后别人就把东西给他再给你)

    如图

在这里插入图片描述

  1. 重定向 意思:(就是如果 你找一个人借东西但他没有 然后他(叫你)找别人借给你 然后别人就东西直接交给你手上

    如图

在这里插入图片描述

区别:

  1. 转发是服务器行为,重定向是客户端行为

  2. 转发可携带数据(request中的数据),但重定向不行

  3. 转发的页面的路径不会发生改变,但重定向会发生

    • 所以它去B页面那数据给到它

在这里插入图片描述

 .forward(请求,向应)

转发:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%//里面写java代码
//网页数据传输如果是字节或文字情况下会产生乱码情况
request.setCharacterEncoding("UTF-8");//将请求中的字符编码设置成中文
String name=request.getParameter("username");//获取username的值
String pwd=request.getParameter("userpwd");//获取userowd的值
//登入逻辑:跳转页面
if("sa".equals(name)&&"123".equals(pwd)){
	//转发
  //  .forward(请求,向应)
    requset.getRequsetDispatcher("home.jsp").forward(request,reqponse);//这边就是向这个这个页面 拿数据 然后这个页面把数据给(home)-然后home又给到(dologin)再给到(login) 但是输出时页面路径 会停留在dologin
}else{
	out.print("no");
}
%>
重定向
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%//里面写java代码
//网页数据传输如果是字节或文字情况下会产生乱码情况
request.setCharacterEncoding("UTF-8");//将请求中的字符编码设置成中文
String name=request.getParameter("username");//获取username的值
String pwd=request.getParameter("userpwd");//获取userowd的值
//登入逻辑:跳转页面
if("sa".equals(name)&&"123".equals(pwd)){
    //重定向 
response.sendRedirect("home.jsp");:它跳过去之后是没有数据的 因为最终它还是 回到了dologin页面
}else{
	out.print("no");
}
%>
数据库的连接 oracle
  • 语句步骤

    1. 导入oracle驱动

在这里插入图片描述

 注:切记一定要把驱动包 导在 (web-INF )下的lib里面

在这里插入图片描述

 右键打开 找到build path 点击牛奶瓶

在这里插入图片描述

 添加完之后 上边就会显示一个牛奶瓶

 如图:

在这里插入图片描述

 这样我们的驱动就可用了

  然后我们就可以进行下一步操作了

导包:

在这里插入图片描述

这里我们选择第二个 长一点的

然后我们代码的上面就会出现刚刚导好包的语句

在这里插入图片描述

 然后我们把 双引号里面 的复制下来

 加载驱动


 Class.forName("oracle.jdbc.driver.OracleDriver");
  1. 编写链接

    连接驱动

    String URL=“jdbc:oracle:thin:@localhost:1521:orcl”;
    意 😕/oracle连接:这里的thin是驱动名称(不能修改!!!)
    //@localhost代表本机 1521是oracle提供的端口
    //后面orcl是Oracle数据库名称 因为Oracle只有一个数据库我们就固定填这个 (但它有多个用户)

    
    
  2. 获得连接

    打开Oracle服务(要开两个)win+x,g

在这里插入图片描述

 进来之后点击黑色方块里的服务

 然后进入

在这里插入图片描述

再点击服务
在这里插入图片描述

 进来之后我们首先看到的不是这个界面 (点击服务里面的任意一个(不要点进去))打上一个O就可以看到 所有Oracle服务 我们点击 黑色方块里的两个服务右键开起 就可以开始连接了

 获取连接


 Connection con=DriverManager.getConnection(URL,"用户名","密码");
 

 用户名和密码 填写你数据库登入的密码
  1. 获得预编译对象(执行对象)

    到这里 就可以去数据库建表了

    建好表之后 写上 查询语句 把它复制过来

    PreparedStatement pre=con.preparStatement("这里写你的查询语句")
    

    如果你写的是占位符(给占位符赋值)

    ps.setString (1  , name );//用户名
    ps.setString (1  , pwd );//密码
    
  2. 获取结果集

    resultset rs=ps.executeQuery();//获取结果集
    
  3. 判断(结果集里面东西 有 无?)也可以说是登入验证

    if(rs.next){
    request.getRequestDispatcher("home.jsp").forward(request,response)
    }else{
    response.sendRedirect("login.jsp")
    }
    
  4. 关闭资源

if(con!=null&&!con.isClosed()){
con.close();
}
if(ps!=null){
ps.close();
}
if(rs!=null){
rs.close();
}

本期内容 到此结束
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
好的,我会尽力解答你的问题。 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(); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冷亿!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值