會議管理系統--項目總結

  • 前端
    =======

  • 使用frameset框架搭建前段界面


<!--clos 左,中,右,左右為網頁兩側留白-->
<frameset cols="*,1010px,*" border="0px" class="fram_set" >
	<frame  src="cool.html" scrolling="no"/>
	<!--rows 上,中,下-->
	<frameset rows="100,*,150" border="0px">
		<frame name="top" src="top.html"  scrolling="no"/>
		<frameset cols="150,*" border="0px" > 
			<!--為網頁左側選擇菜單,網頁正文-->
			<frame name="left" src="left.html" scrolling="no" />
			<!--右侧目标没写-->
			<frame name="right" src="loginsuccess.html" scrolling="no"/>
		</frameset>
		<frame name="footer" src="footer.html" scrolling="no"/>
		</frameset>
	<frame  src="cool.html" scrolling="no"/>
</frameset>
<!--注意為各個標簽添加name屬性,否則不能正確顯示需要顯示的界面-->
 在對應的left選擇菜單中,想要在網頁right顯示,需要在A標簽中添加target='right'屬性,這樣網頁的顯示位置會被確定。
  • Ajax的使用,以及傳值

  • 前端界面
var xmlHttp;
<!--創建ajax對象-->
function createXMLHttpRequest() {
	if (window.ActiveXObject) {
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	} 
	else if (window.XMLHttpRequest) {
		xmlHttp = new XMLHttpRequest();                
	}
}
<!--因爲參數是輸出的,需要使用JS參數進行傳值,用來確定飾那一條數據-->
function fun(key,num){
<!--一些的JS效果,圖標的顯示隱藏-->
	var rea=key+"in_1";
	var reb=key+"sp_1";
	var rec=key+"fig_in1"
	var red=key+"fig_in2"
	var ree=key+"fig_in3"
	var inp=document.getElementById(rea);
	var sp=document.getElementById(reb);
	var ina=document.getElementById(rec);
	var inb=document.getElementById(red);
	var inc=document.getElementById(ree);
		if(num=="1"){
			inp.style.display="none";
			sp.style.display="block";
			ina.style.display="block";
			inb.style.display="none";
			inc.style.display="none";
			sp.innerHTML=inp.value;
		}else{
			inp.value=sp.innerHTML;
		}
		var info=key+"#"+inp.value+"#"+num;
		<!--到這裏才創建Ajax對象-->
		createXMLHttpRequest();
		<!--使用異步POST方式執行請求-->
	 	xmlHttp.open("POST","/FirstProject/Passdepa",true);
	 	<!--保存请求头-->
		xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		<!--保存参数-->
		xmlHttp.send("info="+encodeURI(info));
		<!--解析返回信息-->
		xmlHttp.onreadystatechange=callback;
		}
function callback(){
	<!--当返回完成并无异常-->
	if(xmlHttp.readyState==4&&xmlHttp.status==200){
	<!--以XML形式返回,解析xml-->
	 var flog=xmlHttp.responseXML.getElementsByTagName("flog")[0].firstChild.data;
	 <!--根据返回值,执行对应条件-->
	 if(flog=="yes"){
	  	alert("修改完毕");
       	location.href("/FirstProject/departmentdata");
     }else if(flog=="no"){
	    alert("执行失败");
       	location.href("/FirstProject/departmentdata");
	     }	
	}
}
</script>
  • servlet中要将请求处理,并以XML方式返回结果
//message 为返回的信息,使用字符串拼接的方式将值传递回去
//以XML形式返回数据
response.setContentType("text/xml;charset=utf-8");
//PrintWriter 输出
PrintWriter out=response.getWriter();
response.setHeader("Cache-Control","no-cache");
out.println("<?xml version='1.0' encoding='"+"utf-8"+"' ?>");
out.println("<response>");
out.println("<passed>" + Boolean.toString(flag) + "</passed>");
out.println("<message>" + message + "</message>");
out.println("</response>");
out.close();
 这里不使用Ajax,真是直接使用onclick="location.href='xxxx?id=${EL}'"的URL形式访问更好,更加简单。
  • 多选select选择框,以及左移右移

  • 关于select选择框多选
<!--直接在select标签中添加multiple字段 select即为多选 可以用CSS调节大小-->
<select name="select" id="select" multiple></select>
  • 使用JS来实现

  • 使用JQ来实现

<script type="text/javascript" src="js/jquery-3.1.1.min.js"></script>
<!--注意ID与JQ的对应关系,两个select标签,两个Input标签-->
<script type="text/javascript">
	$(document).ready(function(){  
        $('#add').click(function(){  
           var $options = $('#select1 option:selected');  
           var $remove = $options.remove();
           $remove.appendTo('#select2'); 
        });  
          
        $('#remove').click(function(){  
           var $removeOptions = $('#select2 option:selected');  
           $removeOptions.appendTo('#select1');
        });   
         
        $('#select1').dblclick(function(){   
           var $options = $('option:selected', this);
           $options.appendTo('#select2');  
        });  
          
        $('#select2').dblclick(function(){  
           $('#select2 option:selected').appendTo('#select1');  
        });
	 });  
		</script>
  • 后端
    ======
  • 对部门员工进行分页管理–基于Oracle数据库

1.Sql语句

a是当前页的第一条
b是当前页的最后一条
"select * from (select row_number() over (order by ename) as rn, f.* from emp f) b where b.rn 
between "+a+" and "+b;

2.对应dao层代码

//搜索员工
	public PageBean indexEmp(int pageNo,String name,String status){
		//pageCount 每页的条数
		int pageCount=3;
		//a 当前页的第一条
		int a=(pageNo-1)*pageCount+1;
		//b 当前页的最后一条
		int b=pageNo*pageCount;
		String countSql="select count(*) from employee where employee_name='"+name+"'and status='"+status+"'";
		String sql="select * from (select row_number() over (order by employee_id) as rn, "+" f.* from employee f
		where employee_name='"+name+"' and status='"+status+"'"+") b where b.rn between "+a+" and "+ b";
		ArrayList<Employee> emps = new ArrayList<Employee>();
		ResultSet rs=null;
		ResultSet countRs=null;
		try {
			rs=MyConn.query(sql1);
			while(rs.next()){
				String ename=rs.getString("employee_name");
				String eusername=rs.getString("username");
				String tel=rs.getString("phone");
				String email=rs.getString("email");			
				emps.add(new Employee(ename,eusername,tel,email));
			}
			countRs=MyConn.query(countSql);
			int totalCount=0;
			while(countRs.next()){
				totalCount=countRs.getInt(1);
			}
			System.out.println(totalCount);
			return new PageBean(emps,totalCount,pageNo,pageCount);
		} catch (SQLException e) {
			e.printStackTrace();
		}	
		return null;	
	}

3.对应的分页模型类PageBean

package com.chinasofti.vo;

import java.util.Collection;

public class PageBean {
	private Collection<Object> objs;//从数据库中读的集合
	private int totalCount;//总的条数
	private int pageNo;//当前的页数
	private int pageCount;//每页的条数
	private int totalPage;
	
	public void setTotalPage(int totalPage) {
		this.totalPage = totalPage;
	}
	//无参构造方法
	public PageBean() {
		super();
		// TODO Auto-generated constructor stub
	}
	//全参构造方法
	public PageBean(Collection<Object> objs, int totalCount, int pageNo, int pageCount) {
		this.objs = objs;
		this.totalCount = totalCount;
		this.pageNo = pageNo;
		this.pageCount = pageCount;
	}
	//属性的set,get 方法
	public int getPageCount() {
		return pageCount;
	}

	public void setPageCount(int pageCount) {
		this.pageCount = pageCount;
	}
		
	public void setPageNo(int pageNo) {
		this.pageNo = pageNo;
	}
	
	public int getPageNo() {
		return pageNo;
	}
	
	public Collection<Object> getObjs() {
		return objs;
	}
	
	public void setObjs(Collection<Object> objs) {
		this.objs = objs;
	}

	public int getTotalCount() {
		return totalCount;
	}

	public void setTotalCount(int totalCount) {
		this.totalCount = totalCount;
	}
	//获取总页数
	public int getTotalPage(){
		if(totalCount % pageCount == 0){
			return totalCount/pageCount;
		}else{
			return totalCount/pageCount+1;
		}
	}
	//多写一个判断下一页的方法
	public boolean isNext(){
		return pageNo < getTotalPage();
	}
	//上一页的方法
	public boolean isPrevious(){
		return pageNo > 1;
	}
	
}

从数据库中读取的数据(对应的条数) 存在集合中,在JSP页面输出

4.对应JSP

<head>
	<script type="text/javascript">
		function page(num){
			var myform = document.getElementById("myform");
			var pageNo = document.getElementById("pageNo");	
			pageNo.value = num;
			myform.submit();
		}
	</script>
</head>
<body bgcolor="gainsboro">
	<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
		<div id="div_right">
			<div id="div_login">人员管理 > 搜索员工</div>
			<form action="/FirstProject/indexemp" method="post" id="form_login">
				<fieldset id="fie_set">
					<legend style="font-weight: bold">登录信息</legend>
					<table cellspacing="0px" cellpadding="8px" class="from_table">
						<tr>
							<td>
								姓名:
								<input type="text" name="name" id="name" />
							</td>
							<td>
								账号名:
								<input type="text" name="username" id="username" />
							</td>
							<td>
								状态:
								<input type="radio" name="che" value="1" checked/>已批准
								<input type="radio" name="che" value="0" />待审批
								<input type="radio" name="che" value="2" />已关闭
							</td>
						</tr>
						<tr>
							<td colspan="3" class="input_info">
								<input class="click_button" type="submit" value="搜索" />
								<input class="click_button" type="reset" value="重置" />
							</td>
						</tr>
					</table>
				</fieldset>
			</form>
			<div class="div_info"><center>查询结果</center></div>
			<div class="div_info_all">
				<div class="div_info_all_text">
					共
					<span class="span_txt">${requestScope.pagebean.totalCount}</span>
					条结果,分成
					<span class="span_txt">${requestScope.pagebean.totalPage}</span>页显示,当前第
					<span class="span_txt">${requestScope.pagebean.pageNo}</span>页
				</div>
				<div class="div_input">
					<form action="/FirstProject/indexemp" id="myform" method="post">
					<input type="button" class="input_scan" value="首页" onclick="page(1);" />
					<c:if test="${requestScope.pagebean.previous}">
					<input type="button" class="input_scan" value="上页" onclick="page(${requestScope.pagebean.pageNo - 1})"/>
					</c:if>
					<c:if test="${requestScope.pagebean.next}">
					<input type="button" class="input_scan" value="下页" onclick="page(${requestScope.pagebean.pageNo + 1})"/>
					</c:if>
					<input type="button" class="input_scan" value="末页" onclick="page(${requestScope.pagebean.totalPage})"/>
					<span class="span_text">跳到第</span>
					<input type="text" name="pageNo" id="pageNo" class="input_text"/>
					<span class="span_text">页</span>
					<input type="submit" class="input_scan" value="跳转" />
					</form>
				</div>
			</div>
			<table border="1px" cellspacing="0px" cellpadding="5px" class="table_txt">
				<tr class="table_head">
					<th>姓名</th>
					<th>账户名</th>
					<th>联系电话</th>
					<th>电子邮件</th>
					<th>操作</th>
				</tr>
				<c:forEach items="${requestScope.pagebean.objs}" var="key">
				<tr>
					<td>${key.employee_name}</td>
					<td>${key.username}</td>
					<td>${key.phone}</td>
					<td>${key.email}</td>
					<td>
						<input type="button" class="fig_in" id="${key.username}" value="关闭帐号" onclick="fun('${key.username}','2')" />
					</td>
				</tr>
				</c:forEach>
			</table>		
		</div>
	</body>
    《SSM会议室预约系统》该项目主要解决了会议室预约日常工作中的一些问题,采用技术的技术是jsp +springmvc+spring+mybatis +css+js等。 项目含有源码、文档、配套开发软件、软件安装教程、项目发布教程等。    会议室御园管理系统灵活结合多种端 口,实现您随时随地掌握会议室情况,智能化的操作手段,使您 轻松快捷的选择适合您的会议室,一键完成会议预定。    1、学会各类开发软件安装、项目导入以及项目发布,含项目源码,需求文档,配套软件等    2、该项目主要功能完善,主要用于简历项目经验丰富,以及毕业设计或者二次开发    3、提供项目源码,设计文档、数据库sql文件以及所有配套软件,按照教程即可轻松实现项目安装部署 下面是系统运行起来后的部分截图:项目实战课程:代码视频讲解版如下java项目实战之电商系统全套(前台和后台)(java毕业设计ssm框架项目)https://edu.youkuaiyun.com/course/detail/25771java项目之oa办公管理系统(java毕业设计)https://edu.youkuaiyun.com/course/detail/23008java项目之hrm人事管理项目java毕业设计)https://edu.youkuaiyun.com/course/detail/23007JavaWeb项目实战之点餐系统前台https://edu.youkuaiyun.com/course/detail/20543JavaWeb项目实战之点餐系统后台https://edu.youkuaiyun.com/course/detail/19572JavaWeb项目实战之宿舍管理系统https://edu.youkuaiyun.com/course/detail/26721JavaWeb项目实战之点餐系统全套(前台和后台)https://edu.youkuaiyun.com/course/detail/20610java项目实战之电子商城后台(java毕业设计SSM框架项目)https://edu.youkuaiyun.com/course/detail/25770java美妆商城项目|在线购书系统(java毕业设计项目ssm版)https://edu.youkuaiyun.com/course/detail/23989系统学习课程:JavaSE基础全套视频(环境搭建 面向对象 正则表达式 IO流 多线程 网络编程 java10https://edu.youkuaiyun.com/course/detail/26941Java Web从入门到电商项目实战挑战万元高薪(javaweb教程)https://edu.youkuaiyun.com/course/detail/25976其他素材版(毕业设计或课程设计)项目:点击老师头像进行相关课程学习
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值