设计一个jsp页面,要求jsp页面的颜色随着当前月份的变化而变化

来源:百度知道 编辑:UC知道 时间:2024/09/25 15:30:02
<%@ page import="java.util.*" contentType="text/html; charset=gb2312"%>
<%
String color;
Date date = new Date();
int mm = date.getMonth()+1;
switch (mm) {
case 1:
color="black";break;
case 2:
color="white";break;
case 3:
color="blue";break;
case 4:
color="red";break;
case 5:
color="green";break;
case 6:
color="pink";break;
case 7:
color="yellow";break;
case 8:
color="gray";break;
case 9:
color="orange";break;
case 10:
color="brown";break;
case 11:
color="garnet";break;
default:
color="pink";break;
}
%>
<HTML>
<HEAD>
<TITLE>JAVA Server Page(JSP) Test</TITLE>
</HEAD>
<BODY bgcolor="<%out.println

我来说说你这里面的一些问题:
首先,Date的getMonth()是一个在JDK1.1以后就过时的方法,使用Calendar.get(Calendar.MONTH)替代,返回0-11。获取当前月份的代码如下:
Calendar now = Calendar.getInstance();
int month = now.get(Calendar.MONTH);
你的颜色不正确的问题出在你的<BODY bgcolor="<%out.println(color); %>">这句代码上,不应该使用out.println方法,这会导致html代码意外换行(在bgcolor属性引号对中换行),这是颜色显示不正确的根本原因。这里应调用out.print()方法。
其次,你这段代码其实可以采取其他的方式写,以便看起来更简洁明了
下面是我写的,可以参考以下:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="java.util.Calendar" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%
String[] colors = new String[]{"black", "white", "blue", "red", "green", "pink", "yellow", "gra