因为网站主题统一,所以,一个用户访问到的每一页都会有未读消息的提示,个人的用户名等信息,我将这些信息叫做基本信息
目前看来,基本信息有用户id用户名,和未读消息
而这些信息由用户id决定
因此编写setBaseAttribute 采用以下代码:
public static void setBaseAttributes(String userId ,HttpServletRequest request ){
//request
String userName;
ArrayList<String> messageContentNotRead = new ArrayList<String>();
ArrayList<String>messageDateNotRead = new ArrayList<String>();
ArrayList<String>messageFromNotRead = new ArrayList<String>();
ArrayList<String>messageIdNotRead = new ArrayList<String>();
ArrayList<String>messageStateNotRead = new ArrayList<String>();
DoSomething ds = new DoSomething();
userName = ds.getUserByUserId(userId).getUser_name();
Object[] objs = ds.selectMessageByUserId(userId) ;
for(int i = 0;i<objs.length;i++){
if(i==0)continue;
@SuppressWarnings("unchecked")
List<Message> msgs = (List<Message>) objs[i];
if(msgs!=null)
for(Message msg:msgs){
if(msg.getState().equals(DoSomething.MESSAGE_STATE_HAVEREAD))continue;
messageContentNotRead.add(msg.getContent());
messageDateNotRead.add(msg.getDate());
String messageFrom = "";
String type = msg.getMsgtype();
if(type.equals(DoSomething.MESSAGE_TYPE_ACADMY_TO_DEP)){
messageFrom = msg.getAca_name();
}else if(type.equals(DoSomething.MESSAGE_TYPE_DEP_TO_PERSON)){
messageFrom = ds.getDepartmentByDepartmentId(msg.getDep_id()).getDep_name();
}else if(type.equals(DoSomething.MESSAGE_TYPE_SCHOOL_TO_ACADMY)){
messageFrom = msg.getSch_name();
}
messageFromNotRead.add(messageFrom);
messageIdNotRead.add(msg.getMessage_id());
//messageStateNotRead.add(msg.getState());
}
}
request.setAttribute("userId", userId);
request.setAttribute("userName", userName);
request.setAttribute("messageContentNotRead",messageContentNotRead);
System.out.println("MesageSize:"+messageContentNotRead.size());
request.setAttribute("messageIdNotRead",messageIdNotRead);
request.setAttribute("messageDateNotRead",messageDateNotRead);
request.setAttribute("messageFromNotRead",messageFromNotRead);
}
在写messageCoontent 模块的servlet 和jsp时,使用了以上setBaseAttribut 方法
servlet代码如下:
package Service.servlets;
import java.io.IOException;
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.Message;
import Service.Logic.DoSomething;
/**
* Servlet implementation class MessageContent
*/
@WebServlet(name = "messageContent", urlPatterns = { "/messageContent" })
public class MessageContent extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public MessageContent() {
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);
}
private void process(HttpServletRequest request , HttpServletResponse response) throws ServletException, IOException{
response.setContentType("text/html;charset=UTF-8");
String messageId = request.getParameter("messageid");
String userId = request.getParameter("userid");
String messageFrom = null ;
String messageDate ;
String messageContent;
DoSomething ds = new DoSomething();
Message message = ds.selectMessageById(messageId);
ds.setMeeasgeReadState(messageId, DoSomething.MESSAGE_STATE_HAVEREAD);
if(message.getMsgtype().equals(DoSomething.MESSAGE_TYPE_ACADMY_TO_DEP)){
messageFrom = message.getAca_name();
}
else if(message.getMsgtype().equals(DoSomething.MESSAGE_TYPE_DEP_TO_PERSON)){
messageFrom = ds.getDepartmentByDepartmentId(message.getDep_id()).getDep_name();
}else if(message.getMsgtype().equals(DoSomething.MESSAGE_TYPE_SCHOOL_TO_ACADMY)){
messageFrom = message.getSch_name();
}
messageContent = message.getContent();
messageDate = message.getDate();
request.setAttribute("messageContent", messageContent);
request.setAttribute("messageId", messageId);
request.setAttribute("messageFrom", messageFrom);
request.setAttribute("messageDate", messageDate);
HTMLWriter.setBaseAttributes(userId, request);
RequestDispatcher rd = request.getRequestDispatcher("amz_4_baf/messageContent.jsp");
System.out.println("go to jsp");
rd.forward(request, response);
}
/*
*
String messageId = (String)request.getAttribute("messageId");
String messageFrom = (String)request.getAttribute("messageFrom");
String messageDate = (String)request.getAttribute("messageDate");
String messageContent = (String)request.getAttribute("messageContent");
//bar
//未读消息
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 userName = (String)request.getAttribute("userName");
//权限
String power = (String) request.getAttribute("power");
*/
}
jsp代码入下:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
String messageId = (String)request.getAttribute("messageId");
String messageFrom = (String)request.getAttribute("messageFrom");
String messageDate = (String)request.getAttribute("messageDate");
String messageContent = (String)request.getAttribute("messageContent");
/*
request.setAttribute("userId", userId);
request.setAttribute("userName", userName);
request.setAttribute("messageContentNotRead",messageContentNotRead);
request.setAttribute("messageIdNotRead",messageIdNotRead);
request.setAttribute("messageDateNotRead",messageDateNotRead);
request.setAttribute("messageFromNotRead",messageFromNotRead);
*/
//bar
//未读消息
ArrayList<String> messages= (ArrayList<String>)request.getAttribute("messageContentNotRead");
ArrayList<String> messageDates = (ArrayList<String>)request.getAttribute("messageDateNotRead");
ArrayList<String> messagefroms = (ArrayList<String>)request.getAttribute("messageFromNotRead");
ArrayList<String> messageIds = (ArrayList<String>)request.getAttribute("messageIdNotRead");
int messageNum = 0;
if(messages!=null)
messageNum = messages.size();
//跟日内信息
String userId = (String)request.getAttribute("userId");
String userName = (String)request.getAttribute("userName");
//权限
String power = (String) request.getAttribute("power");
%>
<!doctype html>
<html>
<head>
<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.get(i)+" </span> <span"
+ "class=\"tpl-dropdown-content-time\">"+messageDates.get(i)+"</span>"
+ "</span> <span class=\"tpl-dropdown-content-font\">"+messages.get(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 href="设置单位定额.html">
<i class="am-icon-angle-right"></i>
<span>设置单位定额</span>
<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 标签添加 active 即可 -->
<a href="个人中心.html" class="active">
<i class="am-icon-angle-right"></i>
<span>个人中心</span>
<i class="tpl-left-nav-content tpl-badge-primary">
5
</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><a href="个人中心.html">个人中心</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-secondary" onClick="location.href='个人中心.html'"><span class="am-icon-angle-double-left"></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"></div>
</div>
<div class="am-u-sm-12 am-u-md-3"></div>
<div class="am-u-sm-12 am-u-md-3">
<div class="am-form-group"></div>
</div>
<div class="am-u-sm-12 am-u-md-3">
<div class="am-input-group am-input-group-sm">发信人:<%=messageFrom %></div>
<p>发送时间:<%=messageDate %></p>
</div>
</div>
<ul class="tpl-task-list tpl-task-remind">
<div class="am-cf"> </div>
<div class="am-cf">
<div class="am-fr"></div>
</div>
</ul>
<div class="tpl-content-scope">
<div class="note note-info">
<!-- <h1 class="note-info">Amaze UI Icon 组件目前使用了 Font Awesome <span class="close" data-close="note"></span> </h1>-->
<p> <%=messageContent %></p>
</div>
</div>
</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>
</html>
二.hibernate 自动生成bean类
1.选择database browser 视图
2.选择一个连接并打开 要使用的数据库里面的table选项
对table中的每一个表,右击->hibernate reverse engenerring
在下图src folder 中添加src 路径 , 在package中添加要放的包名
按照下图进行勾选
点击finish