预算编报管理系统 Day12 前端jsp与后台servlet写法总结

3 篇文章 0 订阅
3 篇文章 0 订阅

1.由html修改为jsp_1:设计变量

1)根据需要找出哪些是变化的部分,哪些是固定不变的部分

2)考虑变化的部分需要哪些数据和变量,把那个将这些数据罗列出来,分别起一个有意义的变量

3)将2)中的变量做区分,区分出哪些是必须由后台传入的(记为变量集合A),哪些是可以从由后台传来的数据中得出的(记为变量集合B)

4)对于A中的每一个变量,都首先采用request.getAttribute("Paraname")方法进行获取

5)对于B中的变量,根据相应逻辑求出即可,至此,变量的准备工作完成,与servelt的实现尚且无关

2.根据jsp中所需变量,编写servlet

1)设置变量

对于1.(4)中的没一条语句,都写上对应的setAttribut("Paraname",para);

尤其要注意,其中的paraname 要与1.4)中的paraname完全相同,para要与1.A中的变量类型完全相同

2)根据相应逻辑得出1)中所需要的变量,

在写代码的时候,这一步要在1)之前,但是分析的时候,要做在)之后

3)最后,调用forwar方法进行带有参数传递的页面跳转,

详见https://blog.csdn.net/slj2017/article/details/81074670一篇中的"数据处理与返回"

3.由html修改为jsp_2:修改可变部分

将html dom中的需要改变的部分,通过jsp脚本进行逻辑上的修改

总结:

1 与 2, 3 之间有先后顺序,一般的,1在2,3之前完成,2,3,根据1总结出的变量进行修改

最好一次性将1完美完成,这样就不会在做修改,但是,有时候可能会在做3的时候发现1中变量设置不足,因此需要在1中增加变量这样,当增加的是必须传入的变量的时候,就会需要在2中进行相应的修改

总体来说,2,3 两步可以并行的进行,前提都是参考1中已有的变量

令附上今天编写的jsp文件和servelt代码 (预算配额设置)

jsp:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
			+ path + "/";

	String depNames[] = (String[]) request.getAttribute("depNames");
	String[] dates = (String[]) request.getAttribute("dates");
	String[] lastlimitmoneys = (String[]) request.getAttribute("lastlimitmoneys");
	String[] budgetmoneys = (String[]) request.getAttribute("budgetmoneys");
	String aca_name = (String) request.getAttribute("aca_name");
	String[] depIds = (String[]) request.getAttribute("depIds");
	String selected_depname = (String)request.getAttribute("depname");

	int thisPage = (int) request.getAttribute("thisPage");

	int pagecount = 0;

	if (depNames != null) {

		pagecount = (int) Math.ceil((double) depNames.length / 10);

	}

	//bar parameters

	String userid = (String) request.getAttribute("userid");
	String userName = (String) request.getAttribute("userName");
	
	//未读消息
	String messages[] = (String[]) request.getAttribute("messages");
	String messageDates[] = (String[]) request.getAttribute("messageDates");
	String messagefroms[] = (String[]) request.getAttribute("messageFrom");
	int messageNum = 0;
	if(messages!=null)
	 messageNum = messages.length;
	 
	 //跟日内信息
	 String userId = (String)request.getAttribute("userId");
	 //权限
	 String power = (String) request.getAttribute("power");
%>

<!doctype html>
<html>

<head>
<link rel="stylesheet"
	href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>设置单位定额</title>
<meta name="description" content="这是一个 index 页面">
<meta name="keywords" content="index">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="renderer" content="webkit">
<meta http-equiv="Cache-Control" content="no-siteapp" />
<link rel="icon" type="image/png" href="assets/i/favicon.png">
<link rel="apple-touch-icon-precomposed"
	href="assets/i/app-icon72x72@2x.png">
<meta name="apple-mobile-web-app-title" content="Amaze UI" />
<link rel="stylesheet" href="assets/css/amazeui.min.css" />
<link rel="stylesheet" href="assets/css/admin.css">
<link rel="stylesheet" href="assets/css/app.css">
</head>

<body data-type="generalComponents">


	<header class="am-topbar am-topbar-inverse admin-header">
		<div class="am-topbar-brand">
			<a href="javascript:;" class="tpl-logo"> <img
				src="assets/img/logo.png" alt="">
			</a>
		</div>
		<div
			class="am-icon-list tpl-header-nav-hover-ico am-fl am-margin-right">

		</div>

		<button
			class="am-topbar-btn am-topbar-toggle am-btn am-btn-sm am-btn-success am-show-sm-only"
			data-am-collapse="{target: '#topbar-collapse'}">
			<span class="am-sr-only">导航切换</span> <span class="am-icon-bars"></span>
		</button>

		<div class="am-collapse am-topbar-collapse" id="topbar-collapse">
			
			
			<ul
				class="am-nav am-nav-pills am-topbar-nav am-topbar-right admin-header-list tpl-header-list">
				<li class="am-dropdown" data-am-dropdown data-am-dropdown-toggle>
					<a class="am-dropdown-toggle tpl-header-list-link"
					href="javascript:;"> <span class="am-icon-comment-o"></span> 消息
						<span
						class="<%=messageNum>0?"am-badge tpl-badge-danger am-round":"" %>"><%=messageNum>0?""+messageNum:""%></span></span>
				</a>
					
					
					<ul class="am-dropdown-content tpl-dropdown-content">
						<li class="tpl-dropdown-content-external">
							<h3>
								你有 <span class="tpl-color-danger"><%=messageNum%></span> 条新消息
							</h3> <a href="#">全部</a>
						</li>
						<li>
							<!-- 消息列表 --> <%
 	for (int i = 0; i < messageNum; i++) {

 		String messgeListContent = "<a href=\"#\" class=\"tpl-dropdown-content-message\"> <span"
 				+ "class=\"tpl-dropdown-content-photo\"> <img" + "src=\"assets/img/user02.png\" alt=\"\">"
 				+ "</span> <span class=\"tpl-dropdown-content-subject\"> <span"
 				+ "class=\"tpl-dropdown-content-from\"> "+messagefroms[i]+" </span> <span"
 				+ "class=\"tpl-dropdown-content-time\">"+messageDates[i]+"</span>"
 				+ "</span> <span class=\"tpl-dropdown-content-font\">"+messages[i]+" </span>" + "</a>";
 		out.print(messgeListContent);

 	}
 %>

						</li>

					</ul>
					
					
					
				</li>
				<li class="am-hide-sm-only"><a href="javascript:;"
					id="admin-fullscreen" class="tpl-header-list-link"><span
						class="am-icon-arrows-alt"></span> <span class="admin-fullText">开启全屏</span></a></li>

				<li class="am-dropdown" data-am-dropdown data-am-dropdown-toggle>
					<a class="am-dropdown-toggle tpl-header-list-link"
					href="javascript:;"> <span class="tpl-header-list-user-nick"><%=userName %></span><span
						class="tpl-header-list-user-ico"> <img
							src="assets/img/user01.png"></span>
				</a>
					<ul class="am-dropdown-content">
						<li><a href="#"><span class="am-icon-bell-o"></span> 资料</a></li>
						<li><a href="#"><span class="am-icon-cog"></span> 设置</a></li>
						<li><a href="#"><span class="am-icon-power-off"></span>
								退出</a></li>
					</ul>
				</li>
				<li><a href="###" class="tpl-header-list-link"><span
						class="am-icon-sign-out tpl-header-list-ico-out-size"></span></a></li>
			
			
			</ul>
			
			
		</div>
	</header>



	<div class="tpl-page-container tpl-page-header-fixed">


		<div class="tpl-left-nav tpl-left-nav-hover">
			<div class="tpl-left-nav-title">Amaze UI 列表</div>
			<div class="tpl-left-nav-list">
				<ul class="tpl-left-nav-menu">
					<li class="tpl-left-nav-item"><a href="index.html"
						class="nav-link active"> <i class="am-icon-home"></i> <span>首页</span>
					</a></li>
					<li class="tpl-left-nav-item"><a href="chart.html"
						class="nav-link tpl-left-nav-link-list"> <i
							class="am-icon-bar-chart"></i> <span>数据表</span> <i
							class="tpl-left-nav-content tpl-badge-danger"> 12 </i>
					</a></li>

					<li class="tpl-left-nav-item">
						<!-- 打开状态 a 标签添加 active 即可   --> <a href="javascript:;"
						class="nav-link tpl-left-nav-link-list active"> <i
							class="am-icon-table"></i> <span>表格</span> <!-- 列表打开状态的i标签添加 tpl-left-nav-more-ico-rotate 图表即90°旋转  -->
							<i
							class="am-icon-angle-right tpl-left-nav-more-ico am-fr am-margin-right tpl-left-nav-more-ico-rotate"></i>
					</a>
						<ul class="tpl-left-nav-sub-menu" style="display:block">
							<li>
								<!-- 打开状态 a 标签添加 active 即可   --> <a href="设置单位定额.html"
								class="active"> <i class="am-icon-angle-right"></i>设置单位定额<i
									class="am-icon-star tpl-left-nav-content-ico am-fr am-margin-right"></i>
							</a> <a href="table-images-list.html"> <i
									class="am-icon-angle-right"></i> <span>图片表格</span> <i
									class="tpl-left-nav-content tpl-badge-success"> 18 </i> <a
									href="个人中心.html"> <i class="am-icon-angle-right"></i> <span>个人中心</span>
										<i
										class="<%=messageNum>0?"tpl-left-nav-content tpl-badge-primary":"" %>">
											<%=messageNum>0?""+messageNum:"" %>
									</i> <a href="form-news-list.html"> <i
											class="am-icon-angle-right"></i> <span>文字列表</span>

									</a>
							</li>
						</ul>
					</li>

					<li class="tpl-left-nav-item"><a href="javascript:;"
						class="nav-link tpl-left-nav-link-list"> <i
							class="am-icon-wpforms"></i> <span>表单</span> <i
							class="am-icon-angle-right tpl-left-nav-more-ico am-fr am-margin-right"></i>
					</a>
						<ul class="tpl-left-nav-sub-menu">
							<li><a href="form-amazeui.html"> <i
									class="am-icon-angle-right"></i> <span>Amaze UI 表单</span> <i
									class="am-icon-star tpl-left-nav-content-ico am-fr am-margin-right"></i>
							</a> <a href="form-line.html"> <i class="am-icon-angle-right"></i>
									<span>线条表单</span>
							</a></li>
						</ul></li>

					<li class="tpl-left-nav-item"><a href="login.html"
						class="nav-link tpl-left-nav-link-list"> <i
							class="am-icon-key"></i> <span>登录</span>

					</a></li>
				</ul>
			</div>
		</div>





		<div class="tpl-content-wrapper">
			<div class="tpl-content-page-title">设置单位定额</div>
			<ol class="am-breadcrumb">
				<li><a href="index.html" class="am-icon-home">首页</a></li>
				<li class="am-active">设置单位定额</li>
			</ol>
			<div class="tpl-portlet-components">
				<div class="portlet-title">
					<div class="caption font-green bold">
						<span class="am-icon-code"></span>项目列表
					</div>
				</div>
				<div class="tpl-block">
					<div class="am-g">
						<div class="am-u-sm-12 am-u-md-6">
							<div class="am-btn-toolbar">
								<div class="am-btn-group am-btn-group-xs">
									<button type="button"
										class="am-btn am-btn-default am-btn-success">
										<span class="am-icon-plus"></span> 新增
									</button>
									<button type="button"
										class="am-btn am-btn-default am-btn-secondary">
										<span class="am-icon-save"></span> 保存
									</button>
									<button type="button"
										class="am-btn am-btn-default am-btn-warning">
										<span class="am-icon-archive"></span>提交
									</button>
									<button type="button"
										class="am-btn am-btn-default am-btn-danger">
										<span class="am-icon-trash-o"></span> 删除
									</button>
								</div>
							</div>
						</div>
						<div class="am-u-sm-12 am-u-md-3">
							<div class="am-form-group">
								<select data-am-selected="{btnSize: 'sm'}" id="dep_select"
									onchange="selectDepOnFilterChange()">
									<!--  Option-->
									<option value="all_deps">所有部门</option>
									<%
										Set<String> deps = new HashSet<String>();
										for (int i = 0; i < depNames.length; i++) {
											deps.add(depNames[i]);
										}
										for (String depname : deps) {
											String optionConyent = "<option value=\"" + depname + "\">" + depname + "</option>";
											out.print(optionConyent);
										}
									%>
								</select>
							</div>
						</div>
						<div class="am-u-sm-12 am-u-md-3">
							<div class="am-input-group am-input-group-sm">
								<input type="text" class="am-form-field" placeholder="查找项目...">
								<span class="am-input-group-btn">
									<button
										class="am-btn  am-btn-default am-btn-success tpl-am-btn-success am-icon-search"
										type="button"></button>
								</span>
							</div>
						</div>
					</div>
					<div class="am-g">
						<div class="am-u-sm-12">
							<form class="am-form">
								<table
									class="am-table am-table-striped am-table-hover table-main">
									<thead>


										<tr>
											<th width="20" class="table-check"><input
												type="checkbox" class="tpl-table-fz-check"></th>
											<th width="50" class="table-id">ID</th>
											<th width="146" class="table-type">部门</th>
											<th width="146" class="table-date am-hide-sm-only">修改日期</th>
											<th width="168" class="table-set">推荐金额(元)</th>
											<th width="168" class="table-set">申报金额(元)</th>
											<th width="168" class="table-set">设置单位定额(元)</th>
											<th width="172" class="table-set">操作</th>
										</tr>
									</thead>
									<tbody>
										<%
											// <!-- TR 
											for (int i = thisPage * 10; i < (thisPage + 1) * 10 && i < depIds.length; i++) {
											if(selected_depname!=null&&!selected_depname.equals("all_deps")&&!depNames[i].equals(selected_depname))continue;
												String tr_content = "<tr>" + "  <td><input type=\"checkbox\"></td>" + "   <td tag=\"depId\">"
														+ depIds[i] + "</td>" + "   <td>" + depNames[i] + "</td>"
														+ "   <td tag=\"itemdate\" class=\"am-hide-sm-only\">" + dates[i] + "</td>" + "  <td>"
														+ lastlimitmoneys[i] + "</td>" + "  <td tag=\"budgetMoney\">" + budgetmoneys[i] + "</td>"
														+ "  <td><div class=\"input-group\">" + "<input type=\"text\" class=\"form-control\" value="
														+ lastlimitmoneys[i] + ">" + "<span class=\"input-group-addon\">元</span>" + "</div></td>"
														+ "  <td>" + "  <div class=\"am-btn-toolbar\">" + "<div class=\"am-btn-group am-btn-group-xs\">"
														+ "  <button class=\"am-btn am-btn-default am-btn-xs am-text-secondary\" type=\"button\" onClick=\"edit(this)\"><span class=\"am-icon-pencil-square-o\"></span> 设置</button>"
														+ " <button class=\"am-btn am-btn-default am-btn-xs am-hide-sm-only\" type=\"button\" onClick=\"save(this)\"><span class=\"am-icon-save\"></span> 保存</button>"
														+ "  </div>" + "  </div>" + " </td>" + "</tr>";
												// -->

												out.println(tr_content);

											}
										%>
									</tbody>
								</table>
								<div class="am-cf">

									<div class="am-fr">
										<ul class="am-pagination tpl-pagination">

											<!-- Button -->


											<%
												String last_url = "?aca_name=" + aca_name + "&" + "thisPage=" + (thisPage - 1);
												String li_last = "<li " + (thisPage > 0 ? "" : "class=\"am-disabled\"") + "><a href=\"" + last_url
														+ "\">«</a></li>";
												out.print(li_last);
												for (int i = 0; i < pagecount; i++) {
													String li_content;
													String url = "?aca_name=" + aca_name + "&" + "thisPage=" + i;
													if (i == thisPage) {
														li_content = "<li class=\"am-active\"><a href=\"" + url + "\">" + (i + 1) + "</a></li>";

													} else {
														li_content = "<li ><a href=\"" + url + "\">" + (i + 1) + "</a></li>";

													}
													out.print(li_content);

												}
												String next_url = "?aca_name=" + aca_name + "&" + "thisPage=" + (thisPage + 1);
												String li_next = "<li " + (thisPage < pagecount - 1 ? "" : "class=\"am-disabled\"") + "><a href=\""
														+ next_url + "\">»</a></li>";
												out.print(li_next);
											%>


										</ul>
									</div>
								</div>
								<hr>

							</form>
						</div>

					</div>
				</div>
				<div class="tpl-alert"></div>
			</div>



		</div>

	</div>

	<script src="assets/js/jquery.min.js"></script>
	<script src="assets/js/amazeui.min.js"></script>
	<script src="assets/js/app.js"></script>
</body>
<script src="assets/js/editandsave.js"></script>
<script type="text/javascript">
<%
String html = "var dep_select = document.getElementById(\"dep_select\");"+
"var optionNum = dep_select.options.length;"+
//"alert(optionNum);"+
"for(var i = 0;i<optionNum;i++){"+
//"alert('yess'+i);"+
"if(dep_select.options[i].value=='"+selected_depname+"'){"+
//"alert('have');"+
"dep_select.selectedIndex=i;break;}}";
out.print(html);
 %>
</script>




</html>

servlet

package Service.servlets;

import java.io.IOException;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.RequestDispatcher;
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 Bean.Adbudget;
import Bean.Department;
import Bean.Message;
import DAO.Department_DAO;
import Service.Logic.DoSomething;

/**
 * Servlet implementation class listOfDepBudget
 */
@WebServlet("/listOfDepBudget")
public class ListOfDepBudget extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public ListOfDepBudget() {
		super();
		// TODO Auto-generated constructor stub
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		// response.getWriter().append("Served at:
		// ").append(request.getContextPath());
		process(request,response);

	}

	/**
	 * @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);
		process(request, response);
	}

	private void process(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html;charset=UTF-8");

		String aca_name = request.getParameter("aca_name");
		//当前页,从0开始
		int thisPage = Integer.parseInt(request.getParameter("thisPage"));
		String uiserId = request.getParameter("userId");
		String depname = request.getParameter("depname");

		DoSomething ds = new DoSomething();
		List<Adbudget> adbudgets= ds.selectAdBudgetByAcaName(aca_name);
		
		
		//System.out.println(adbudgets.size());

		/*
		 * depNames = (String[])request.getAttribute("depNames"); dates =
		 * (String[])request.getAttribute("dates"); lastlimitmoneys =
		 * (String[])request.getAttribute("lastlimitmoneys"); budgetmoneys =
		 * (String[])request.getAttribute("budgetmoneys");
		 * 
		 */

		String depNames[] = new String[adbudgets.size()];
		String dates[] = new String[adbudgets.size()];
		String lastlimitmoneys[] = new String[adbudgets.size()];
		String budgetmoneys[] = new String[adbudgets.size()];
		String depids[] = new String[adbudgets.size()];
		
		// int thisPage ;

		for (int i = 0; i < adbudgets.size(); i++) {
			 depids[i]= adbudgets.get(i).getDep_id();
			depNames[i] = getDepNameById(depids[i]);
			dates[i] = adbudgets.get(i).getDate();
			lastlimitmoneys[i] = "" + adbudgets.get(i).getLimit_money();
			budgetmoneys[i] = "" + adbudgets.get(i).getMoney();
		}
		
		request.setAttribute("depNames", depNames);
		request.setAttribute("dates", dates);
		request.setAttribute("lastlimitmoneys", lastlimitmoneys);
		request.setAttribute("budgetmoneys", budgetmoneys);
		request.setAttribute("thisPage", thisPage);
		request.setAttribute("aca_name", aca_name);
		request.setAttribute("depIds", depids);
		request.setAttribute("depname", depname);
		//System.out.println(depids.length);

		
		
		
		
		
		Object messageObj[]=ds.selectMessageByUserId(uiserId);
		
		List<Message> msgList1 = (List<Message>) messageObj[1];
		List<Message>msgList2 =null;
		ArrayList<Message>notReadMessages = new ArrayList<Message>();
		
		if(messageObj.length==3){
			msgList2 = (List<Message>) messageObj[2];
		}
		//int messageNum = msgList1.size()+(msgList2==null?0:msgList2.size());
		for(int i = 0;i<msgList1.size();i++){
			if(!msgList1.get(i).getState().equals(DoSomething.MESSAGE_STATE_NOTREAD))continue;
			notReadMessages.add(msgList1.get(i));
		}
		if(msgList2!=null){
			for(int i = 0;i<msgList2.size();i++){
				if(!msgList2.get(i).getState().equals(DoSomething.MESSAGE_STATE_NOTREAD))continue;
				notReadMessages.add(msgList2.get(i));
			}
				
		}
		
		String messages[] = new String[notReadMessages.size()];
		String messageDates[]= new String[notReadMessages.size()];
		String messageFrom[]= new String[notReadMessages.size()];
		int i = 0;
		for(Message msg:notReadMessages){
			
			messages[i]=msg.getContent();
			messageDates[i] = msg.getDate();
			if(msg.getMsgtype().equals(DoSomething.MESSAGE_TYPE_DEP_TO_PERSON)){
				messageFrom[i]= ds.getDepartmentByDepartmentId(msg.getDep_id()).getDep_name();
				
			}else if(msg.getMsgtype().equals(DoSomething.MESSAGE_TYPE_ACADMY_TO_DEP)){
				messageFrom[i] = msg.getAca_name();
				
			}else if(msg.getMsgtype().equals(DoSomething.MESSAGE_TYPE_SCHOOL_TO_ACADMY)){
				messageFrom[i] = msg.getSch_name();
				
			}
			i++;
			
			
			//messageFrom[i] = msg.get
			
		}
		
		
//		String messages[] = (String[]) request.getAttribute("messages");
//		String messageDates[] = (String[]) request.getAttribute("messageDates");
//		String messagefroms[] = (String[]) request.getAttribute("messageFrom");
		System.out.println("Msg : "+messages.length);
		
		request.setAttribute("messages", messages);
		request.setAttribute("messageDates", messageDates);
		request.setAttribute("messageFrom", messageFrom);
		
		
		
		RequestDispatcher rd = request.getRequestDispatcher("amz_4_baf/setLimitmoneyfordeps.jsp") ;
		
		System.out.println("go to jsp");
		rd.forward(request,response);
		
	}

	private String getDepNameById(String depId) {

		Department_DAO dao = new Department_DAO();
		dao.beginTransaction();
		List<Department> dep = dao.queryWhereSQL("dep_id='" + depId + "'");
		dao.commit();
		if (dep.size() == 1)
			return dep.get(0).getDep_name();
		return null;

		// return depId;

	}
	
	

}

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值