jsp 实验12 servlet

一、实验目的

掌握怎样在JSP中使用javabean

二、实验项目内容(实验题目)

编写代码,掌握servlet的用法。【参考课本 上机实验1 】

三、源代码以及执行结果截图:

源代碼:

inputVertex.jsp:

<%@ page language="java" contentType="text/html; uft-8"

    pageEncoding="utf-8"%>

<style>

   #tom{

    font-family:宋体;font-size:26;color:blue

   }

</style>

<%

String s ="(20,220)(220,20)(420,220)(220,420)";

%>

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>Insert title here</title>

</head>

<body bgcolor=#ffccff>

<p id=tom>

<form action="drawPolygon" id= tom method=post>

输入多边形的顶点,格式是(m,n<br>m,n为整数 0<=m<=800,0<=n<=600<br>

<textArea name="polygonVertex" id =tom rows=5 cols=30 >

<%= s %>

</textArea>

<br><input type=submit id=tom value="提交"/>

</form>

</p>

</body>

</html>

web.xml:

<?xml version="1.0" encoding="UTF-8"?>

<web-app>

   <servlet>

       <servlet-name>drawPolygon</servlet-name>

       <servlet-class>moon.sun.DrawPolygon_Servlet</servlet-class>

   </servlet>

   <servlet-mapping>

        <servlet-name>drawPolygon</servlet-name>

        <url-pattern>/drawPolygon</url-pattern>

   </servlet-mapping>

</web-app>

DrawPolygon_Servlet:

package moon.sun;

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

import java.awt.image.BufferedImage;

import java.awt.*;

import java.util.regex.Pattern;

import java.util.regex.Matcher;

import java.awt.geom.*;

import javax.imageio.ImageIO;

public class DrawPolygon_Servlet extends HttpServlet{

                    HttpServletRequest request;

                    HttpServletResponse response;

                    public void init(ServletConfig config) throws ServletException{

                       super.init(config);

                    }

                    public void service(HttpServletRequest request,HttpServletResponse response)

                             throws IOException{

                       request.setCharacterEncoding("utf-8");

                       String polygonVertex = request.getParameter("polygonVertex");

                       if(polygonVertex == null||polygonVertex.length()==0){

                           response.sendRedirect("ch6_1.jsp");

                           return;

                       }

                       response.setContentType("image/jpeg");

                       Polygon  polygon = getPolygon(polygonVertex);

                       BufferedImage image = getImage(polygon);

                       OutputStream outClient= response.getOutputStream();

                       boolean boo =ImageIO.write(image,"jpeg",outClient);

                    }

                    Polygon getPolygon(String polygonVertex){

                       Polygon polygon = new Polygon();

                       Pattern pattern;

                       Matcher matcher;

                       String regex="(\\d+[,, ]+\\d+)" ;

                       pattern = Pattern.compile(regex);

                       matcher = pattern.matcher(polygonVertex);

                       while(matcher.find()) {

                          String str = matcher.group();

                          String []vertex = str.split("[( ),, ]+");

                          polygon.addPoint(Integer.parseInt(vertex[0]),Integer.parseInt(vertex[1]));

                       }

                       return polygon;

                    }

                    BufferedImage getImage(Shape shape){

                         int width=1000, height=800;

                         BufferedImage image =

                         new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);

                         Graphics g = image.getGraphics();

                         g.fillRect(0, 0, width, height);

                         Graphics2D g_2d=(Graphics2D)g;

                         g_2d.setColor(Color.blue);

                         g_2d.draw(shape);

                         return image;

                    }

}

代碼結果圖:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/9376.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MacOS下载安装JDK8

一、前言 今天给苹果电脑安装JDK环境&#xff0c;后续打算把Mac系统也用起来&#xff0c;也体验一把用苹果系统开发。 JDK就不过多介绍了&#xff0c;大家都是JAVA开发&#xff0c;JDK就是JAVA开发的必要环境。目前已经更新到JDK20了&#xff0c;不过我是不会更新的&#xff0…

Linux|了解如何使用 awk 内置变量

引言 当我们揭开 Awk 功能部分时&#xff0c;我们将介绍 Awk 中内置变量的概念。您可以在 Awk 中使用两种类型的变量&#xff1a;用户定义的变量和内置变量。 内置变量的值已经在 Awk 中定义&#xff0c;但我们也可以仔细更改这些值&#xff0c;内置变量包括&#xff1a; FILEN…

LeNet-5上手敲代码

LeNet-5 LeNet-5由Yann LeCun在1998年提出&#xff0c;旨在解决手写数字识别问题&#xff0c;被认为是卷积神经网络的开创性工作之一。该网络是第一个被广泛应用于数字图像识别的神经网络之一&#xff0c;也是深度学习领域的里程碑之一。 LeNet-5的整体架构&#xff1a; 总体…

免费思维13招之四:主副型思维

免费思维13招之四:主副型思维 本节,给你分享一下产品型思维的第二种子思维:主副型思维 什么是主副型思维呢?传统的主副型思维是指对企业的核心、利润最高的产品进行收费,一些附加品、延伸产品进行让利,赠送给客户。 但是这早已过时了,现在升级之后的产品型思维,就是将…

VisualGDB:Linux静态库项目创建、编译及库的使用

接上篇《VisualGDB&#xff1a;Linux动态库项目创建、编译及库的使用》&#xff0c;静态库的创建和使用与动态库基本无差别&#xff0c;唯一需要做的就是指定项目生成静态库。 一、指定项目生成静态库 二、重新构建和编译项目 这里注意&#xff0c;同样要copy一个libxxx.so格式…

Linux 无名信号量(Semaphore)的使用

目录 一、无名信号量的概念二、无名信号量相关函数三、信号量的使用步骤四、应用场景五、测试代码 一、无名信号量的概念 Linux无名信号量&#xff08;Semaphore&#xff09;   在Linux操作系统中&#xff0c;信号量&#xff08;Semaphore&#xff09;是一种用于进程间或线程…

内网穿透速度慢

内网穿透速度慢原因及优化策略 在计算机网络应用中&#xff0c;内网穿透是一个常见的需求&#xff0c;它允许外部网络访问位于内部网络&#xff08;如企业局域网或家庭网络&#xff09;中的设备或服务。然而&#xff0c;有时用户在进行内网穿透时会遇到速度慢的问题&#xff0…

AI视频教程下载:给企业管理层和商业精英的ChatGpt课程

课程内容大纲&#xff1a; 1-引言 2-面向初学者的生成性人工智能 3-与ChatGPT一起学习提示101 详细介绍了如何使用ChatGPT的六种沟通模式&#xff0c;并提供了各种实际应用场景和示例&#xff1a; **Q&A模式&#xff08;问题与答案模式&#xff09;**&#xff1a; - 这…

打印机处于脱机状态如何恢复到正常状态?最简单!

当打印机一直处于脱机状态但打印机重启了好几遍仍然无效果时&#xff0c;尝试以下方法或许会成功&#xff01; 1.打开设置&#xff0c;在主页界面会有它的推荐设置&#xff0c;如上图&#xff0c;此时只需要点击“打印机和扫描仪”这个方框即可 2.但也并不是每次都会有推荐设置…

从零开始!学习绘制3D表情的详细指南

在2020 年的苹果全球开发者大会(WWDC)&#xff0c;苹果发布了新的 macOS 11(又名 Big Sur)。其中在UI视觉方面macOS Big Sur 系统最大的变化就是图标上&#xff0c; Big Sur更新了很多新设计风格的 3D应用图标&#xff0c;3D设计的确可以提升UI整体的视觉氛围&#xff0c;并且现…

wsl2安装rancher并导入和创建k8s集群

环境准备 安装wsl2点击此文]ubuntu20.04安装docker 点击此文,安装完成后docker镜像仓库改成阿里云镜像加速地址.如果不熟请点击此文 docker 安装rancher 启动wsl,根据官方文档以root身份执行 sudo docker run -d --restartunless-stopped -p 80:80 -p 443:443 --privileged …

《基于GNU-Radio和USRP的雷达通信系统的实现》文献阅读

文章目录 前言一、摘要二、引言三、联合系统实施1、基本原理2、实验方案 四、软件设置1、发射机2、接收机 五、实验结果1、实验设置2、波形3、室内外对比4、不同参数的结果 六、结论七、参考文献八、论文自取九、阅读收获 前言 本文记录《基于GNU-Radio和USRP的雷达通信系统的实…

2024粤港澳青少年信息学创新大赛C++知识点汇总和真题训练

2024粤港澳青少年信息学创新大赛C知识点汇总和真题训练 知识汇总 真题训练 程序设计语言C是一种解释性语言。 A.正确 B.错误 Python是一种编译型语言。 A.正确 B.错误 误 RAM&#xff08;随机存取存储器&#xff09;是一种易失性存储设备。 A.正确 B.错误 Java…

Docker-harbor

一、搭建本地私有仓库 1.1 下载Registry镜像 1.2 添加本地私有仓库配置 1.3 重启服务并运行Registry容器 1.4.容器的操作 1.4.1 拉取Nginx镜像并为镜像打标签 1.4.2 上传到私有仓库 1.4.3 列出私有仓库所有镜像 1.4.4 列出私有仓库的镜像的所有标签 1.4.5 先删除原有…

基于鸢尾花数据集实施自组织神经网络聚类分析

基于鸢尾花数据集实施自组织神经网络聚类分析 1. 自组织神经网络的基础知识2. 鸢尾花数据集的自组织分类3. SOM的无监督聚类 1. 自组织神经网络的基础知识 自组织神经网络也称自组织映射&#xff08;SOM&#xff09;或自组织特征映射&#xff08;SOFM&#xff09;&#xff0c;…

Coze扣子开发指南:用免费API自己创建插件

虽然Coze扣子现在插件商店已经有几百个插件了&#xff0c;但相对于海量人群的众多差异化需求&#xff0c;还是远远不够的。如果插件商店没有合适的插件&#xff0c;其实完成可以自己创建&#xff0c;过程也很简单&#xff0c;不需要编写任何代码。 首先打开个人空间&#xff0…

AcWing 835:Trie字符串统计 ← 字典树(Trie树)模板题

【题目来源】https://www.acwing.com/problem/content/837/【题目描述】 维护一个字符串集合&#xff0c;支持两种操作&#xff1a; ● I x 向集合中插入一个字符串 x&#xff1b; ● Q x 询问一个字符串在集合中出现了多少次。 共有 N 个操作&#xff0c;所有输入的字符…

Linux sudo 指令

sudo命令 概念&#xff1a; sudo是linux下常用的允许普通用户使用超级用户权限的工具&#xff0c;允许系统管理员让普通用户执行一些或者全部的root命令&#xff0c;如halt&#xff0c;reboot&#xff0c;su等。这样不仅减少了root用户的登录和管理时间&#xff0c;同样也提高…

22、Flink 背压下的 Checkpoint处理

1.概述 通常&#xff0c;对齐 Checkpoint 的时长主要受 Checkpointing 过程中的同步和异步两个部分的影响&#xff1b;但当 Flink 作业正运行在严重的背压下时&#xff0c;Checkpoint 端到端延迟的主要影响因子将会是传递 Checkpoint Barrier 到 所有的算子/子任务的时间&…

线程与进程

进程 进程是程序的一次执行过程&#xff0c;系统程序的基本单位。有自己的main方法&#xff0c;并且主要由主方法运行起来的基本上就是进程。 线程 线程与进程相似&#xff0c;但线程是一个比进程更小的执行单位。一个进程在其执行的过程中可以产生多个线程。与进程不同的是…