java web(页面跳转方式&jdbc)三

 

目录

一,页面的跳转方式

1.js中的跳转

2.Java中的跳转

(1)转发(作用于客户端)

(2)重定向

 二,jdbc概念梳理

 三,连接数据库

数据库连接步骤:

案例:


一,页面的跳转方式

1.js中的跳转

<script>localtion.href='home.jsp'<script>
//注意:一定要写在<script></script>中

2.Java中的跳转

(1)转发(作用于客户端)

转发的作用:在多个页面交互过程中实现请求数据的共享

转发的实现:

  • RequestDispatcher对象
  • forward()方法

代码如下:

request.getRequestDispatcher("xxx.jsp").forward(request,response);

图解如下:

客户端对服务器发送一个请求,服务器1没有数据,转到服务器2,服务器2再发送给服务器1,然后再响应给客户端。简而言之,就是转发产生一个请求(转发数据可以携带).

(2)重定向

response对象用于响应客户请求并向客户端输出信息 

代码如下:

response.sendRedirect("xxx.jsp");

将会请求定位到一个不一样的URL。

图解展示:

 客户端向服务器1发送一次请求,服务器1没有数据后,客户端再向服务器2发送一次请求,以此类推,直到拿到数据为止,图上总共发送两次请求。

转发和重定向的区别:

  • 转发是在服务器端发挥作用,通过forward方法将提交信息在多个页面间进行传递。
  • 转发是在服务器内部控制权的转移,客户端浏览器的地址栏不会显示出转向后的地址
  • 重定向是在客户端发挥作用,通过请求新的地址实现页面转向
  • 重定向是通过浏览器重新请求地址,在地址栏中可以显示转向后的地址

 二,jdbc概念梳理

JDBC是Java数据库连接技术的简称,提供连接各种常用数据库的能力

 JDBC API(与数据库建立连接、执行SQL 语句、处理结果)

DriverManager :依据数据库的不同,管理JDBC驱动  

Connection :负责连接数据库并担任传送数据的任务    

Statement :由 Connection 产生、负责执行SQL语句  

ResultSet:负责保存Statement执行后所产生的查询结果

 三,连接数据库

数据库连接步骤:

准备好特定的jar包

 并将该jar包放在WEB-INF文件下的lib文件中

注意:在导包前一定要把数据的服务打开,这里我们用的是Oracle

步骤:win+x,g->服务于应用管理->服务->打开以下两个服务

 

 连接数据步骤如下:

   
      //1.导入驱动(SQLserver,oracle,mysql)
      <%@page import="oracle.jdbc.driver.OracleDriver"%>
      //OracleDriver
      //注意:在此之前一定执行build path
      Class.forName("oracle.jdbc.driver.OracleDriver");//加载驱动
      //2.连接语句
      //sqlserver的连接语句
      //jdbc:sqlserver:localhost:1433;databasename=ss
      String URL="jdbc:oracle:thin:@localhost:1521:orcl";
      //3.获得连接
      Connection con=DriverManager.getConnection(URL, "scott", "sa123");
      //4.获得预编译对象(执行对象)
      PreparedStatement ps=con.prepareStatement(sql语句);//?指的是占位符
      //5.占位符赋值
      ps.setString(占位符位,xx);
      //6.获得结果集
      ResultSet rs=ps.executeQuery();
      //7.判断
      if(rs.next()){
    	  request.getRequestDispatcher("xxx.jsp").forward(request, response);
      }else{
    	  response.sendRedirect("xxx.jsp");
      }
      //8.关闭资源
      if(con!=null&&!con.isClosed()){
    	  con.close();
      }
      if(ps!=null){
    	  ps.close();
      }
      if(rs!=null){
          rs.close();
      }

案例:

简单的登录案例,代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<body>
	<from action="doLogin.jsp" method="post">
	<p>
		<input name="username" placeholder="请输入名字">
	</p>
	<p>
		<input name="password" placeholder="请输入密码">
	</p>
    </p>
		<button>登录</button>
	</from>
</body>
</html>

当然执行之前少不了创建数据库

这里我们使用oracle创建一张简单的表

CREATE TABLE T_USER(
 UUID NUMBER PRIMARY KEY,
 UNAME VARCHAR2(20) NOT NULL,
 UPWD VARCHAR2(20) NOT NULL
)
commit;

注意:这里我们在创建表格之后一定要把数据提交(commit)了。

连接数据库代码:

<%@page import="java.sql.ResultSet"%>
<%@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"%>
<%
      //网络中的数据都是字节 如果是文字就会产生乱码的情况
      request.setCharacterEncoding("UTF-8");//将请求中的字符全部编码设置为中文
       
      //获取前端数据
      String name=request.getParameter("username");//名字
      String password=request.getParameter("password");//密码
      
      //导入驱动(SQLserver,oracle,mysql)
      //OracleDriver
      //注意:在此之前一定执行build path
      Class.forName("oracle.jdbc.driver.OracleDriver");//加载驱动
      //连接语句
      //sqlserver的连接语句
      //jdbc:sqlserver:localhost:1433;databasename=ss
      String URL="jdbc:oracle:thin:@localhost:1521:orcl";
      //获得连接
      Connection con=DriverManager.getConnection(URL, "scott", "sa123");
      //获得预编译对象(执行对象)
      PreparedStatement ps=con.prepareStatement("SELECT * FROM T_USER WHERE UNAME=? AND UPWD=?");//?指的是占位符
      //占位符赋值
      ps.setString(1,name);
      ps.setString(2,password);
      //获得结果集
      ResultSet rs=ps.executeQuery();
      //判断
      if(rs.next()){
    	  request.getRequestDispatcher("home.jsp").forward(request, response);
      }else{
    	  response.sendRedirect("login.jsp");
      }
      //关闭资源
      if(con!=null&&!con.isClosed()){
    	  con.close();
      }
      if(ps!=null){
    	  ps.close();
      }
      if(rs!=null){
          rs.close();
      }
      
      
%>

首页代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>main</title>
</head>
<body>
     <h1>我是首页</h1>
     <h2>欢迎 <%request.getParameter("username"); %>login</h2>
</body>
</html>

总结:这期的关键就是熟练数据库的连接的方式!下期给大家带来代码优化!

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
实现登录页面需要以下步骤: 1. 创建一个 HTML 页面,包含用户名和密码的输入框以及提交按钮。 ```html <!DOCTYPE html> <html> <head> <title>Login Page</title> </head> <body> <h2>Login</h2> <form action="login" method="post"> <label for="username">Username:</label> <input type="text" id="username" name="username"><br><br> <label for="password">Password:</label> <input type="password" id="password" name="password"><br><br> <input type="submit" value="Submit"> </form> </body> </html> ``` 2. 在后端编写 Java 代码实现登录验证逻辑。这里以 Servlet 为例,需要重写 `doPost` 方法,读取表单数据并判断用户名和密码是否正确。 ```java public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); if (username != null && username.equals("admin") && password != null && password.equals("admin123")) { // 登录成功 request.getSession().setAttribute("username", username); response.sendRedirect("success.html"); } else { // 登录失败 response.sendRedirect("error.html"); } } } ``` 3. 在 web.xml 中配置 Servlet 映射和静态资源映射,使得浏览器访问 /login 能够调用 LoginServlet 进行登录验证。 ```xml <web-app> <servlet> <servlet-name>LoginServlet</servlet-name> <servlet-class>com.example.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/login</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> <error-page> <error-code>404</error-code> <location>/404.html</location> </error-page> <resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/mydb</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> </web-app> ``` 4. 运行项目,浏览器访问登录页面,输入正确的用户名和密码后,即可跳转到成功页面;输入错误的用户名和密码后,即可跳转到错误页面。 以上是一个简单的 Java Web 实现登录页面的过程,具体实现方式还有很多种,可以根据自己的需求和技术水平进行选择。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一麟yl

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

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

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

打赏作者

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

抵扣说明:

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

余额充值