JavaWeb连接图片实现翻牌实践

目录

  • 架构准备

  • 步骤详解

  • 实现效果

  • 参考源码


    架构准备

首先依旧是我们熟悉的架构准备环节:

步骤详解

ImgC类中的编写doGet方法,首先通过HttpServletRequest获取参数action的值,该参数表示要执行的操作。

如果action的值是"getAllImgNames",则会获取指定目录下的所有图片文件名,并将文件名数组转换成JSON格式的响应。

如果action的值是"getImgByName",则会根据图片名称获取对应的图片数据,并将图片数据作为响应输出。

以下是代码中使用到的工具类和方法的简要说明:

  • ImgUtil:一个自定义的工具类,用于处理图片相关的操作。其中responseImg方法用于响应图片数据。
  • JsonUtil:一个自定义的工具类,用于将对象转换为JSON格式的数据,并将其作为响应输出。

下面这个则是JsonUtil工具类

工具类中的transJson方法接受两个参数,一个是要转换成JSON格式的对象(obj),另一个是HttpServletResponse对象(resp),用于向客户端发送响应。

在方法中,首先调用JSON.toJSONString(obj)方法将对象转换为JSON格式的字符串。然后设置响应的Content-Typeapplication/json;charset=utf-8,指定响应的内容类型为JSON,同时指定字符编码为UTF-8。

最后,通过resp.getWriter().write(josn_string)将JSON字符串作为响应输出给客户端。

 然后是随机生成图片的工具类RandomImgC

doGet方法中,首先通过File类和指定的文件夹路径获取该文件夹下的所有文件名称,并将文件名数组存储在fileNames变量中。

接下来,通过随机生成一个索引,从fileNames数组中获取随机的图片文件名(imgName),这样就获取到了随机的图片名称。

然后,通过调用ImgUtil工具类的responseImg方法,根据指定的图片路径和HttpServletResponse对象,将随机图片作为响应输出。

最后,将生成的随机图片名称打印输出到日志中

 下面是对应的工具类:

 

最后则是html与css有关知识编写,这里不做解释,附代码参考:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="/vue/vue.min.js"></script>
<style>
       .f{
            display: flex;
            justify-content: space-around;
       }
       .f>div{
           width: 300px;
           height: 350px;
           cursor: pointer;
           background-size: 300px 350px;
           margin-left: 30px;
       }
       .f>div:nth-child(odd){
           background-color: lightgreen;
       }
       .f>div:nth-child(even){
           background-color: lightcoral;
       }
       @keyframes xz {
           0%{
               transform: rotateY(0deg);
               background-image: url("");
           }100%{
           transform:rotateY(180deg);
                       }
       }
       @keyframes xzr {
           0% {
               transform: rotateY(180deg);
           }
           100% {
               transform: rotateY(0deg);
               background-image: url("");
           }
       }
           .xz{
               animation: xz 1s linear 1 forwards;
           }
           .xzr{
               animation: xzr 1s linear 1 forwards;
           }
       /*
        .z1,.z2,.z3{
            width: 400px;
            height: 450px;
            position: absolute;
        }
        .z1{
            top: 25px;
            left: 20px;
            background-color: aqua;
        }
        .z2{
            top: 25px;
            left: 500px;
            background-color: lightcoral;
        }
        .z3{
            top: 25px;
            left: 980px;
            background-color: lightgreen;
        }
        */
        
</style>
</head>
<body>
     <!--  点击按钮实现图片切换
        <img src="/randomImgC" alt="" width="400" height="450"><br>
        <button οnclick="location.reload()">换一个</button>
        -->
<!--
     <div class="f">
         <div class="z1" id="img1" οnclick="changeImage1()">
             <img id="Image1"  alt="" width="400" height="450">
         </div>
         <div class="z2" id="img2" οnclick="changeImage2()">
             <img id="Image2"  alt="" width="400" height="450">
         </div>
         <div class="z3" id="img3" οnclick="changeImage3()">
             <img id="Image3"  alt="" width="400" height="450">
         </div>

     </div>
-->
     <div id="app">
         <button οnclick="location.assign('/home.html')">进入后宫,观看佳丽三千</button>
         <div class="f">
             <div v-for="i in 6" @click="xzImg($event,i)"></div>
         </div>
         <hr>
         <img src="/randomImgC" alt="" width="400" height="450"><br>
         <button οnclick="location.reload()">换一个</button>
     </div>
</body>
<script>
    /*
    let img1 = document.getElementById('img1');
    function changeImage1() {
        let Image1 = document.getElementById("Image1");
        Image1.src = "/randomImgC";
    }
    let img2 = document.getElementById('img2');
    function changeImage2() {
        let Image2 = document.getElementById("Image2");
        Image2.src = "/randomImgC";
    }
    let img3 = document.getElementById('img3');
    function changeImage3() {
        let Image3 = document.getElementById("Image3");
        Image3.src = "/randomImgC";
    }
    */
    new Vue({
        el:'#app',
        data:{
            //记录每个图片被点击的次数
            arr:[0,0,0,0,0,0]
        },
        methods:{
            xzImg(e,i){
            if(this.arr[i-1]%2){//1
                e.target.style.backgroundImage='url()'
                e.target.className='xzr'
                console.log('xzr')
               }else{//0
                e.target.style.backgroundImage='url(/randomImgC?'+i+')'
                e.target.className='xz'
                console.log('xz')
               }
            console.log(e.target,i,this.arr)
                this.arr[i-1]++
            }
        }
    })
</script>
</html>

实现效果:

将图片路径添加后,将会出现如下的几个隔行变色的方框,方框内将会显示你的图片路径对应的图片,这里我将图片路径进行了修改,所以没有显示图片(点击进行图片的旋转)。下面那一块就是一个一JavaWeb随机变换图片的效果

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: JavaWeb连接数据库实现登录注册的步骤如下: 1. 首先需要创建一个数据库,可以使用MySQL或者Oracle等关系型数据库。 2. 在JavaWeb项目中引入数据库驱动程序,例如MySQL的驱动程序为mysql-connector-java.jar。 3. 在Java代码中使用JDBC连接数据库,可以使用以下代码: ``` Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password"); ``` 其中,test为数据库名称,root为数据库用户名,password为数据库密码。 4. 实现登录功能,可以使用以下代码: ``` String sql = "select * from user where username=? and password=?"; PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, username); ps.setString(2, password); ResultSet rs = ps.executeQuery(); if(rs.next()){ // 登录成功 }else{ // 登录失败 } ``` 其中,user为数据库中的用户表,username和password为用户输入的用户名和密码。 5. 实现注册功能,可以使用以下代码: ``` String sql = "insert into user(username, password) values(?, ?)"; PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, username); ps.setString(2, password); int result = ps.executeUpdate(); if(result > ){ // 注册成功 }else{ // 注册失败 } ``` 其中,username和password为用户输入的用户名和密码。 以上就是JavaWeb连接数据库实现登录注册的基本步骤。 ### 回答2: 在Java Web开发中,使用数据库实现登录注册是非常常见和重要的一步。通常情况下,我们需要使用MySQL数据库来存储用户的信息。 连接数据库的第一步是导入数据库驱动包,一般使用JDBC驱动,可以从官方网站下载并导入到项目中。 在Java连接MySQL数据库,需要使用Java Database Connectivity(JDBC)来实现。JDBC是Java的一个API,可以访问各种关系型数据库。 为了访问MySQL数据库,我们需要获取MySQL JDBC驱动程序的正确实例。在Java中访问MySQL数据库,需要使用如下格式的URL: jdbc:mysql://host:port/database 其中,host表示服务器的地址,port表示端口,database表示要连接的MySQL数据库名。 在Java实现登录注册,我们需要先创建一个用户表。在用户表中,通常包含以下字段: 1. 用户名 2. 密码 3. 邮箱 4. 电话号码 我们需要在程序中编写SQL语句来创建这个用户表。 在用户输入用户名和密码时,我们需要使用Java中的PreparedStatement来防止SQL注入攻击。使用PreparedStatement时,我们可以使用占位符来代替用户输入的值,然后在执行SQL语句时,使用setString()等方法来设置占位符的值。 在用户注册时,我们需要验证用户输入的用户名是否已经存在于数据库中。如果用户名已经存在,则必须提示用户重新输入。 在用户登录时,我们需要查询数据库以验证用户名和密码是否正确。如果验证通过,则允许用户登录。 在Java Web中,我们可以使用JSP和Servlet来实现登录注册。当用户点击登录或注册按钮时,客户端会向服务器发送一个请求,服务器会使用JSP和Servlet来处理这个请求,并返回相应的结果。在处理请求时,Servlet会从客户端接收用户输入,并将其传递给JDBC驱动程序来访问MySQL数据库。在获取了数据库的响应后,Servlet会渲染JSP页面并将其返回给客户端。 总之,Java Web连接数据库实现登录注册需要使用JDBC驱动程序、SQL语句、Servlet和JSP等技术。正确地使用这些技术,我们可以创建一个安全、高效且易于维护的登录注册系统。 ### 回答3: JavaWeb连接数据库实现登录注册,是常见的网站开发功能,主要通过JavaEE技术中的Servlet和JSP实现。其基本流程如下: 1. 创建数据库表 首先需要在数据库中创建一个用户表,包含用户ID,用户名和密码等信息。 2. 导入 JDBC 驱动程序 使用jdbc连接数据库需要导入对应的jdbc驱动程序,在项目中引入MySQL的jdbc驱动。 3. 创建数据库连接Java Web应用中,要使用javax.sql.DataSource来管理数据库连接池,获取连接对象,简化连接数据库的过程。 4. 编写Servlet代码 Servlet是Java Web应用中的核心组件之一,负责接收和处理浏览器发送的请求,比如登录和注册请求。在Servlet中需要完成以下几项工作: - 获取用户提交的用户名和密码等信息; - 根据请求类型,判断是登录还是注册请求; - 查询数据库中是否存在该用户; - 验证用户输入的密码是否正确; - 根据验证结果,跳转到不同的页面。 5. 编写 JSP 页面 在Servlet中获取到数据信息后,需要使用JSP呈现出来,给用户提示错误信息或跳转到相应页面。包括登录页面,注册页面和欢迎页面等。 6. 进行测试 完成代码编写后,需要对程序进行测试,检查登录和注册流程是否正常,是否能够正确处理错误情况。 JavaWeb连接数据库实现登录注册是一个较为复杂的工程,需要熟练掌握Java Web开发相关知识,包括Servlet、JSP、JavaBean和数据库等知识。同时需要使用IDE工具进行编程,例如Eclipse、IntelliJ IDEA等,可极大提高开发效率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值