航空行李运费
前言
Web初学者的小积累,整体还是很简陋的=.=大佬看到这里可以点小叉叉了
题目要求
重量不超过30公斤的行李可以免费托运,重量超过30公斤时,对超运部分,头等舱国内乘客收4元/公斤;其他舱位国内乘客收6元/公斤;外国乘客收费为国内乘客的2倍;残疾乘客的收费为正常乘客的1/2。
实际效果
在javaee中的效果(没法查看动图,应该是javaee自带的简单浏览器?以后有机会更改一下运行时默认打开的浏览器……)
这个图片的背景可以变换,花里胡哨的,但是个人感觉很nice👌
实际功能展示,每次填写完都能自动刷新
小知识点
一.关于getParameterValues和getParameter
request.getParameterValues(String name)是获得如checkbox类(名字相同,但值有多个)的数据。 接收数组变量 ,如checkobx类型
request.getParameter(String name)是获得相应名的数据,如果有重复的名,则返回第一个的值。接收一般变量 ,如text类型
二.String转Double
Double m= Double.parseDouble(t);JAVA基操。request获得的值都是string类型,只能转换一下,不知道还有没有更方便的方法直接获得想要的数据类型。
三.文本域限制输入
请输入行李重量:<input type=“text” name=“weight” οnkeyup=“value=value.replace(/[^\d.]/g,’’)” maxlength=“4”/>
οnkeyup=“value=value.replace(/[^\d.]/g,’’)” 限制输入为数字和小数点
maxlength="4"限制输入只能四位(包括小数点)
四.盒子背景
关于盒子的背景,从一开始的固定颜色换成了渐变色,最后看到了css动画又被我从网上找了个动态背景图……对这种花里胡哨的东西完全没有抵抗力。
ps:动态背景部分来自https://www.cnblogs.com/lijianming180/p/12037921.html
五.盒子边框
border-radius: 30%;百分比越大,边框越圆,跟我想象中的圆边有点出入……
缺陷(未来会慢慢填)
一.小数部分有问题
显而易见的问题,看起来好zz……
二.没有提示框
如果其中有一个选项未选择,点确定后会全部刷新,没有提示框的弹出,个人感觉这点有点不太亲民,本来想加上<a href="#"></a>
来弹出消息框,但是会破坏<% %>的结构,听老师说这样做会被后来看代码的人打死的,emmmm虽然我现在写的也差不多(捂脸遁逃
完整代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>机场行李托运</title>
<!-- 此处动态背景和盒子 -->
<style type="text/css">
div.header
{
text-align: center;
animation:mymove 5s infinite; /*animation 时间 播放次数*/
animation-direction:alternate; /*是否循环交替反向播放动画*/
/*Safari 和 Chrome:*/
-webkit-animation:mymove 5s infinite;
width: 450px;
padding: 25px;
margin: 25px auto;
border:5px solid BlanchedAlmond ;
border-radius: 30%;
}
@keyframes mymove
{
0% {background:#87CEFF;}
25% {background:#54FF9F;}
50% {background:#7CCD7C;}
75% {background:#63B8FF;}
100% {background:#00FFFF;}
}
/*Safari 和 Chrome:*/
@-webkit-keyframes mymove
{
0% {background:#87CEFF;}
25% {background:#54FF9F;}
50% {background:#7CCD7C;}
75% {background:#63B8FF;}
100% {background:#00FFFF;}
}
</style>
</head>
<body>
<div class="header">
<form action="NewFile.jsp" method="post">
<input type="radio" name="cangwei" value="1">普通舱
<input type="radio" name="cangwei" value="2">头等舱
<input type="radio" name="guoji" value="3">国内
<input type="radio" name="guoji" value="4">国外
<input type="radio" name="jiankang" value="5">正常
<input type="radio" name="jiankang" value="6">残疾
<br>
请输入行李重量:<input type="text" name="weight" οnkeyup="value=value.replace(/[^\d\.]/g,'')" maxlength="4"/>
<input type="submit" value="确定" name="submit">
</form>
<%
request.setCharacterEncoding("UTF-8");
double money=0;
String cw[]=request.getParameterValues("cangwei");
String gj[]=request.getParameterValues("guoji");
String jk[]=request.getParameterValues("jiankang");
if(cw!=null)
{
for(int i=0;i<cw.length;i++)
{
if(cw[i].equals("1"))
money=6;
else
money=4;
}
}
if(gj!=null)
{
for(int i=0;i<gj.length;i++)
{
if(gj[i].equals("4"))
money=money*2;
}
}
if(jk!=null)
{
for(int i=0;i<jk.length;i++)
{
if(jk[i].equals("6"))
money=money/2;
}
}
if(cw!=null&&gj!=null&&jk!=null)
{
String t=request.getParameter("weight");
double m=0;
if(t!=null)
{
m= Double.parseDouble(t);
}
if(m>30)
out.println("所需支付:"+(m-30.0)*money+" ");
else
out.println("所需支付:"+0.0+" ");
}
%>
</div>
</body>
</html>