开发清单
- JDK 1.7
- Servlet 3.0
- JSP
- Dom4j 1.6.1
- FullCanlendar 3
后台考虑兼容性,并没有使用数据库,而是采用xml格式存储数据,毕竟一年只有365天,点击FullCanlendar的某一天,设置为休息日,再次点击取消。
XML格式为:
<?xml version="1.0" encoding="UTF-8"?>
<roots xmlns="http://www.phpStudy.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.phpStudy.net note.xsd">
<event ID="S2016-12-11" start="2016-12-11" title="休息日"/>
<event ID="S2016-12-04" start="2016-12-04" title="休息日"/>
<event ID="S2016-12-03" start="2016-12-03" title="休息日"/>
<event ID="S2016-12-10" start="2016-12-10" title="休息日"/>
<event ID="S2016-12-17" start="2016-12-17" title="休息日"/>
<event ID="S2016-12-18" start="2016-12-18" title="休息日"/>
<event ID="S2016-12-24" start="2016-12-24" title="休息日"/>
<event ID="S2016-12-25" start="2016-12-25" title="休息日"/>
<event ID="S2016-12-31" start="2016-12-31" title="休息日"/>
<event ID="S2017-01-01" start="2017-01-01" title="休息日"/>
</roots>
约束文档为:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.phpStudy.net"
xmlns="http://www.phpStudy.net"
elementFormDefault="qualified">
<xs:element name="roots">
<xs:complexType>
<xs:sequence>
<xs:element name="event" minOccurs="0" maxOccurs="366" >
<xs:complexType>
<xs:attribute name="ID" type="xs:ID" />
<xs:attribute name="title" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
整个项目只使用了一个index.html作为展示界面。
具体代码为:
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>wday政府日历</title>
<!-- Bootstrap -->
<!-- 新 Bootstrap 核心 CSS 文件 -->
<link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css">
<!-- 可选的Bootstrap主题文件(一般不用引入) -->
<link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap-theme.min.css">
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="http://cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="http://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<link href='./baseCanlendar/fullcalendar.min.css' rel='stylesheet' />
<link href='./baseCanlendar/fullcalendar.print.min.css' rel='stylesheet' media='print' />
<script src='./lib/jquery.min.js'></script>
<script>
var cal={};
$(document).ready(function() {
var arrData = [];
$.ajax({
url: "./FullCanlendarServlet",
async:false,
type:"GET",
success: function(data){
arrData = data;
}
});
cal = $('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'prevYear,nextYear'
},
editable: false,
droppable: false, // this allows things to be dropped onto the calendar
eventAfterAllRender: function( view ) {
//alert('好吧,全部加载完毕');
},
dayClick: function( date, jsEvent, view) {
var year = date._d.getFullYear();
var month = date._d.getMonth()+1;
var day = date._d.getDate();
if (month<10){
month = "0"+month;
}
if (day<10){
day = "0"+day;
}
var d =year+"-"+month+"-"+day;
$.ajax({
url: "./FullCanlendarSaveTag",
async:false,
type:"GET",
data:{start:d},
beforeSend:function (){
showModal();
},
success: function(data){
if (data.success==='sav'){
$('#calendar').fullCalendar('addEventSource',[{
start:d,
title: '休息日',
id:'S'+d
}]);
hideModal();
}else{
alert("已经存在");
hideModal();
}
}
});
},
events: arrData,
eventClick:function( event, jsEvent, view ) {
var d =event.id;
$.ajax({
url: "./FullCanlendarSaveTag",
async:false,
type:"POST",
data:{id:d},
beforeSend:function (){
showModal();
},
success: function(data){
if(data.success==='del'){
cal.fullCalendar("removeEvents", event.id);
hideModal();
}else{
alert("不存在");
hideModal();
}
}
});
}
});
});
function hideModal(){
console.log("$('#myModal').modal('hide');");
$('#myModal').modal('hide');
}
function showModal(){
console.log("$('#myModal').modal({backdrop:'static',keyboard:false});");
$('#myModal').modal({backdrop:'static',keyboard:false});
}
function showUserHoliday(){
$('#userHolidayModal').modal('show');
}
//设置自定义标签
function setUserHolidayTag(){
var tagText = $('#userHolidayText').val();
$('#userHolidayTag').html(tagText);
$('#userHolidayModal').modal('hide');
setDraggable();
}
function initCalendar(){
if(window.confirm('确定初始化?')){
var moment = cal.fullCalendar('getDate');
var y = moment.format();
var sp = y.split("-");
$.ajax({
url: "./FullCanlendarInit",
async:false,
type:"POST",
data:{year:sp[0]},
beforeSend:function (){
showModal();
},
success: function(data){
if(data.success==='init'){
alert("init ok");
hideModal();
}else{
alert("init error");
hideModal();
}
}
});
window.location.reload();
}
}
function clearCalendar(){
if(window.confirm('确定清空?')){
$.ajax({
url: "./FullCanlendarInit",
async:false,
type:"GET",
beforeSend:function (){
showModal();
},
success: function(data){
if(data.success==='clear'){
alert("clear ok");
hideModal();
}else{
alert("clear error");
hideModal();
}
}
});
cal.fullCalendar('removeEvents');
}
}
</script>
<style>
body {
margin-top: 40px;
text-align: center;
font-size: 14px;
font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif;
}
#wrap {
width: 1100px;
margin: 0 auto;
}
#external-events {
float: left;
width: 150px;
padding: 0 10px;
border: 1px solid #ccc;
background: #eee;
text-align: left;
}
#external-events h4 {
font-size: 16px;
margin-top: 0;
padding-top: 1em;
}
#external-events .fc-event {
margin: 10px 0;
cursor: pointer;
}
#external-events p {
margin: 1.5em 0;
font-size: 11px;
color: #666;
}
#external-events p input {
margin: 0;
vertical-align: middle;
}
#calendar {
width: 900px;
}
</style>
</head>
<body style="background-color: #C7EDCC;">
<button type="button" class="btn btn-primary" onclick="clearCalendar();">清空工作日</button>
<button type="button" class="btn btn-success" onclick="initCalendar();">初始化工作日</button>
<div style="">
<div id='calendar'></div>
</div>
<div class="modal fade" id="myModal">
<div class="modal-dialog modal-sm">
<img alt="" src="data:image/gif;base64,R0lGODlhGQAZAJECAK7PTQBjpv///wAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo5OTYyNTQ4Ni02ZGVkLTI2NDUtODEwMy1kN2M4ODE4OWMxMTQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RUNGNUFGRUFGREFCMTFFM0FCNzVDRjQ1QzI4QjFBNjgiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RUNGNUFGRTlGREFCMTFFM0FCNzVDRjQ1QzI4QjFBNjgiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjk5NjI1NDg2LTZkZWQtMjY0NS04MTAzLWQ3Yzg4MTg5YzExNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5OTYyNTQ4Ni02ZGVkLTI2NDUtODEwMy1kN2M4ODE4OWMxMTQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQFCgACACwAAAAAGQAZAAACTpSPqcu9AKMUodqLpAb0+rxFnWeBIUdixwmNqRm6JLzJ38raqsGiaUXT6EqO4uIHRAYQyiHw0GxCkc7l9FdlUqWGKPX64mbFXqzxjDYWAAAh+QQFCgACACwCAAIAFQAKAAACHYyPAsuNH1SbME1ajbwra854Edh5GyeeV0oCLFkAACH5BAUKAAIALA0AAgAKABUAAAIUjI+py+0PYxO0WoCz3rz7D4bi+BUAIfkEBQoAAgAsAgANABUACgAAAh2EjxLLjQ9UmzBNWo28K2vOeBHYeRsnnldKBixZAAA7" />
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<div class="modal fade" id="userHolidayModal">
<div class="modal-dialog modal-sm">
<div class="modal-content">
<div class="modal-body">
<input type="text" id="userHolidayText" />
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" onclick="setUserHolidayTag()">设置</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<script src='./lib/moment.min.js'></script>
<script src='./lib/jquery-ui.min.js'></script>
<script src='./baseCanlendar/fullcalendar.min.js'></script>
<script src='./baseCanlendar/zh-cn.js'></script>
<!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
<script src="http://cdn.bootcss.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
</body>
</html>
服务端使用Java Servlet处理。功能包括,【初始化日历】,【清空日历】,【点击日历增加休息日标签】,【点击标签移除标签】。
两点功能,采用dom4j为数据源,采用纯Java Servlet,目的是为了在任何Java Web项目当中都可以使用,前端日历框架使用了FullCalendar与BootStrpa模态效果。
首先粘贴Servlet代码,从XML中获取数据,代码如下:
package com.yu.wday;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
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 org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import com.yu.wday.util.Dom4JUtil;
import com.yu.wday.util.ResponseSendJson;
/**
* qq80303857
* Servlet implementation class FullCanlendarServlet
*/
@WebServlet("/FullCanlendarServlet")
public class FullCanlendarServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public FullCanlendarServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
@SuppressWarnings({ "unused", "unchecked" })
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String path = request.getServletContext().getRealPath("/");
File file = new File(path+"FullCanlendar/note.xml");
Document document = Dom4JUtil.parse(file);
Element root = document.getRootElement();
List<Element> list = root.elements("event");
String json = Dom4JUtil.XML2Json(list);
ResponseSendJson.sendJson(response, json);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
点击日历增加休息日标签与点击休息日标签删除标签分别使用了GET与POST区分,Servlet代码如下:
package com.yu.wday;
import java.io.File;
import java.io.IOException;
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 org.dom4j.Document;
import org.dom4j.Element;
import com.yu.wday.util.Dom4JUtil;
import com.yu.wday.util.ResponseSendJson;
/**
* qq80303857
* Servlet implementation class FullCanlendarSaveTag
*/
@WebServlet("/FullCanlendarSaveTag")
public class FullCanlendarSaveTag extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public FullCanlendarSaveTag() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
@SuppressWarnings("unused")
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String path = request.getServletContext().getRealPath("/");
String start = request.getParameter("start");
String title = request.getParameter("title");
if (title!=null){
title = new String(title.getBytes("ISO-8859-1"),"UTF-8");
}else{
title = "休息日";
}
File file = new File(path+"FullCanlendar/note.xml");
Document document = Dom4JUtil.parse(file);
Element root = document.getRootElement();
Element element = root.elementByID("S"+start);
if (element!=null){
ResponseSendJson.sendJson(response, "{\"success\":\"exist\"}");
}else{
Element curEle = root.addElement("event");
curEle.addAttribute("ID", "S"+start);
curEle.addAttribute("start", start);
curEle.addAttribute("title", title);
Dom4JUtil.write(file, document);
ResponseSendJson.sendJson(response, "{\"success\":\"sav\"}");
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String path = request.getServletContext().getRealPath("/");
String id = request.getParameter("id");
File file = new File(path+"FullCanlendar/note.xml");
Document document = Dom4JUtil.parse(file);
Element root = document.getRootElement();
Element element = root.elementByID(id);
if (element!=null){
root.remove(element);
Dom4JUtil.write(file, document);
ResponseSendJson.sendJson(response, "{\"success\":\"del\"}");
}else{
root.remove(element);
Dom4JUtil.write(file, document);
ResponseSendJson.sendJson(response, "{\"success\":\"exist\"}");
}
}
}
初始化休息日与清空所有标签,分别使用GET与POST区分,Servlet代码如下:
package com.yu.wday;
import java.io.File;
import java.io.IOException;
import java.util.Calendar;
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 org.dom4j.Document;
import org.dom4j.Element;
import com.yu.wday.util.DateUtils;
import com.yu.wday.util.Dom4JUtil;
import com.yu.wday.util.EveryDayUtils;
import com.yu.wday.util.ResponseSendJson;
/**
* Servlet implementation class FullCanlendarInit
*/
@WebServlet("/FullCanlendarInit")
public class FullCanlendarInit extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public FullCanlendarInit() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String path = request.getServletContext().getRealPath("/");
File file = new File(path+"FullCanlendar/note.xml");
Document document = Dom4JUtil.parse(file);
Element root = document.getRootElement();
Dom4JUtil.clear(root, root.elements("event"));
Dom4JUtil.write(file, document);
ResponseSendJson.sendJson(response, "{\"success\":\"clear\"}");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String path = request.getServletContext().getRealPath("/");
File file = new File(path+"FullCanlendar/note.xml");
Document document = Dom4JUtil.parse(file);
Element root = document.getRootElement();
Dom4JUtil.clear(root, root.elements("event"));
String parmYear = request.getParameter("year");
Calendar c = Calendar.getInstance();
int year = 2016;
if (EveryDayUtils.strIsNum(parmYear)){
year = Integer.valueOf(parmYear);
}else{
year = c.get(Calendar.YEAR);
}
for (int i=0;i<12;i++){
c.set(year, i, 1);
int lastDay = c.getActualMaximum(Calendar.DAY_OF_MONTH);
for (int x=1;x<=lastDay;x++){
c.set(year, i, x);
if(DateUtils.checkHoliday(c)){
System.out.print(year+"-"+(i+1)+"-"+x+" 休息 ");
String mon = "";
String day = "";
if (i+1<10){
mon = "0"+(i+1);
}else{
mon = ""+(i+1);
}
if (x<10){
day = "0"+x;
}else{
day = ""+x;
}
String ymd = year+"-"+mon+"-"+day;
Element curEle = root.addElement("event");
curEle.addAttribute("ID", "S"+ymd);
curEle.addAttribute("start", ymd);
curEle.addAttribute("title", "休息日");
}else{
System.out.print(year+"-"+(i+1)+"-"+x+" ");
}
}
System.out.println();
}
Dom4JUtil.write(file, document);
ResponseSendJson.sendJson(response, "{\"success\":\"init\"}");
}
}
Dom4J工具包,代码如下:
package com.yu.wday.util;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
public class Dom4JUtil {
public static Document parse(File file){
SAXReader reader = new SAXReader();
Document document = null;
try {
document = reader.read(file);
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return document;
}
public static void bar(Document document) throws DocumentException {
Element root = document.getRootElement();
// iterate through child elements of root
for ( Iterator i = root.elementIterator(); i.hasNext(); ) {
Element element = (Element) i.next();
// do something
}
// iterate through child elements of root with element name "foo"
for ( Iterator i = root.elementIterator( "foo" ); i.hasNext(); ) {
Element foo = (Element) i.next();
// do something
}
// iterate through attributes of root
for ( Iterator i = root.attributeIterator(); i.hasNext(); ) {
Attribute attribute = (Attribute) i.next();
// do something
}
}
public Document createDocument() {
Document document = DocumentHelper.createDocument();
Element root = document.addElement( "root" );
Element author1 = root.addElement( "author" )
.addAttribute( "name", "James" )
.addAttribute( "location", "UK" )
.addText( "James Strachan" );
Element author2 = root.addElement( "author" )
.addAttribute( "name", "Bob" )
.addAttribute( "location", "US" )
.addText( "Bob McWhirter" );
return document;
}
public static String XML2Json(List<Element> list){
StringBuffer sb = new StringBuffer("[");
for (int i=0;i<list.size();i++){
StringBuffer sbTemp = new StringBuffer("{");
Element e = list.get(i);
Attribute abID = e.attribute("ID");
Attribute abTitle = e.attribute("title");
Attribute abStart = e.attribute("start");
String idValue = abID.getValue();
String title = abTitle.getValue();
String start = abStart.getValue();
sbTemp.append("\"start\":\""+start+"\",");
sbTemp.append("\"title\":\""+title+"\",");
sbTemp.append("\"id\":\""+idValue+"\"");
if (i<list.size()-1){
sbTemp.append("},");
}else{
sbTemp.append("}");
}
sb.append(sbTemp);
}
sb.append("]");
return sb.toString();
}
public static void write(File file,Document document) throws IOException {
FileOutputStream fos = new FileOutputStream(file);
OutputFormat of = OutputFormat.createPrettyPrint();
of.setEncoding("UTF-8");
// of.setIndent(" ");
XMLWriter writer = new XMLWriter(fos,of);
writer.write(document);
writer.flush();
writer.close();
}
public static void clear (Element parentElement,List<Element> list){
for (Element ele:list){
parentElement.remove(ele);
}
}
}
检查休息日,代码如下:
package com.yu.wday.util;
import java.util.Calendar;
public class DateUtils {
/**
*
* <p>Title: checkHoliday </P>
* <p>Description: TODO 验证日期是否是节假日</P>
* @param calendar 传入需要验证的日期
* @return
* return boolean 返回类型 返回true是节假日,返回false不是节假日
* throws
* date 2014-11-24 上午10:13:07
*/
public static boolean checkHoliday(Calendar calendar){
//判断日期是否是周六周日
if(calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY ||
calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY){
return true;
}
return false;
}
}
常用工具栏,判断字符串是否可以转换为数字,代码如下:
package com.yu.wday.util;
public class EveryDayUtils {
public static boolean strIsNum(String str){
try {
Integer.valueOf(str);//把字符串强制转换为数字
return true;//如果是数字,返回True
} catch (Exception e) {
return false;//如果抛出异常,返回False
}
}
}
使用Response发送Json数据,代码如下:
package com.yu.wday.util;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.HttpServletResponse;
public class ResponseSendJson {
public static void sendJson(HttpServletResponse response,String json){
response.setCharacterEncoding("UTF-8");
response.setContentType("application/json; charset=utf-8");
PrintWriter out = null;
try {
out = response.getWriter();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
out.append(json);
out.flush();
out.close();
}
}
有了这些数据,就很轻而易举的判断哪天是休息日咯。