📄 sendedmsgservlet.java
字号:
package cn.jx.ecjtu.oa.servlets.msg;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import cn.jx.ecjtu.oa.common.Constant;
import cn.jx.ecjtu.oa.ps.pojo.LoginUser;
import cn.jx.ecjtu.oa.ps.pojo.Message;
import cn.jx.ecjtu.oa.services.MessageService;
import cn.jx.ecjtu.oa.services.Result;
import cn.jx.ecjtu.oa.services.ResultType;
import cn.jx.ecjtu.oa.services.ServiceFactory;
import cn.jx.ecjtu.oa.services.SysUserService;
import cn.jx.ecjtu.oa.services.UserInSession;
public class SendedMsgServlet extends HttpServlet {
/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request
* the request send by the client to the server
* @param response
* the response send by the server to the client
* @throws ServletException
* if an error occurred
* @throws IOException
* if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to
* post.
*
* @param request
* the request send by the client to the server
* @param response
* the response send by the server to the client
* @throws ServletException
* if an error occurred
* @throws IOException
* if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
HttpSession session = request.getSession();
String sPages = request.getParameter("page");// 获取用户输入的要跳转的页数
UserInSession u = (UserInSession) session
.getAttribute(Constant.USER_IN_SESSION);// 从session中取得用户
int page = 1;
if (u != null) {
int sendId = u.getId();
try {// 将取的参数转化为整型
if (sPages != null) {
page = Integer.parseInt(sPages);
}
} catch (Exception e) {// 异常
page = 1;
}
// 调用MessageService取得短信息,当前页面,总信息数,总页面数
Result result = msgService.getSendMsg(sendId, page);
if (result != null) {
if (result.getRet() == ResultType.RET_SUCCESS) {// 取得成功
// 把取得的数据(短信息,当前页面,总信息数,总页面数)放入到request中
for (Map.Entry<String, Object> entry : result
.listAttribute().entrySet()) {
request.setAttribute(entry.getKey(), entry.getValue());
}
// 取得短信息列表
List<Message> msgs = (List<Message>) result
.getAttribute("listMsg");
List<Integer> msgIds = new ArrayList<Integer>();// 定义一个存储接受者者ID的列表
for (Message msg : msgs) {
msgIds.add((int) msg.getMsgId());
}
// 通过接受者ID取得用户
List<LoginUser> users = userService.getUsersByIds(msgIds);
Map<Integer, String> userMap = new HashMap<Integer, String>();
for (LoginUser user : users) {// 把用户ID和name放入映射表
userMap.put(user.getId(), user.getRealName());
}
request.setAttribute("userMap", userMap);// 把映射表放入request中
request.getRequestDispatcher("sent_msg.jsp").forward(
request, response);
} else if (result.getRet() == ResultType.RET_FAIL) {// 取得失败
request.getRequestDispatcher("error.jsp").forward(request,
response);
} else {// 异常
request.getRequestDispatcher("error.jsp").forward(request,
response);
}
} else {
response.sendRedirect("nomsg.jsp");
}
} else {
out.print("您还未登陆!请登陆后再试!");
}
}
/**
* Initialization of the servlet. <br>
*
* @throws ServletException
* if an error occure
*/
private MessageService msgService;
private SysUserService userService;
public void init() throws ServletException {
msgService = (MessageService) ServiceFactory
.getService(MessageService.class);
userService = (SysUserService) ServiceFactory
.getService(SysUserService.class);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -