用Servlet框架实现切换图片

一、在给定的文件夹范围内,随机切换一个图片

1、具体操作:

(1)创建一个Servlet类:首先,在项目中创建一个继承自`javax.servlet.http.HttpServlet`的Servlet类。

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class ImageSwitchServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        // 在这里处理切换图片的逻辑
    }
}

(2)处理切换图片的逻辑:在`doGet`方法中,根据你的具体需求,编写切换图片的逻辑。你可以根据请求参数、会话状态或其他条件来确定要切换的图片。

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
    // 获取当前要显示的图片的标识符
    String imageId = request.getParameter("imageId");
    
    // 根据图片标识符获取图片的URL或路径
    String imageUrl = getImageUrl(imageId);
    
    // 设置响应的内容类型为图片类型
    response.setContentType("image/jpeg");
    
    // 使用输出流将图片写入响应
    ImageIO.write(ImageIO.read(new File(imageUrl)), "jpg", response.getOutputStream());
}

(3)配置Servlet映射:在web.xml文件中配置Servlet的映射,将请求路径映射到刚才创建的Servlet类。

<servlet>
    <servlet-name>ImageSwitchServlet</servlet-name>
    <servlet-class>com.example.ImageSwitchServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>ImageSwitchServlet</servlet-name>
    <url-pattern>/switchImage</url-pattern>
</servlet-mapping>

2、具体例子:

前端代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        button {
            width: 100px;
            height: 40px;
            background-color: plum;
            border: none;
            color: white;
            font-size: large;
            border-radius: 10px;
            cursor: pointer;
            box-shadow: 0 8px 5px gainsboro;
            margin-left: 20px;
        }
        #myButton{
            margin: 0 auto;
        }
    </style>
</head>
<body>
<button id="myButton" onclick="location.reload()">点我切换</button>
<br>
<br>
<img src="/randomImgC" alt="" width="400px" height="500px">
</body>
</html>

后端代码:

package com.hp.controller;

import com.hp.utils.ImgUtil;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;

@WebServlet("/randomImgC")
public class RandomImgC extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取某个文件夹下所有的文件名称
        String[] fileNames = new File("C:\\Users\\wangchao\\Desktop\\imgs/").list();
        String imgName = fileNames[(int) Math.floor(Math.random() * fileNames.length)];//随机生成的
        System.out.println("随机生成的图片是:" + imgName);
        ImgUtil.responseImg("C:\\Users\\wangchao\\Desktop\\imgs/" + imgName, resp);

    }
}

实现效果:

 二、小结:

        使用Servlet框架实现切换图片的过程可以简要总结为以下几个步骤:首先,创建一个Servlet类,并在web.xml文件中配置该Servlet。然后,在Servlet中获取请求参数,根据参数值选择要展示的图片。接下来,将选择的图片路径设置为响应的内容,并发送给客户端。最后,客户端接收到响应后,根据响应内容显示相应的图片。通过这种方式,可以实现基于Servlet框架的切换图片功能。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值