做题
来源:互联网 发布:免费收据打印软件 编辑:程序博客网 时间:2024/04/27 15:33
有拦截器
public class LoginInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
User user=(User) httpServletRequest.getSession().getAttribute("user");
if (user==null){
}
return false;
}
@Override
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
}
属性有时间
import java.text.SimpleDateFormat;
import java.util.Date;
public class User {
int id;
String accountNumber;
String name;
String password;
String sex;
@DateTimeFormat(pattern="yyyy-MM-dd")
Date birthday;
int age;
public static final SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
VO pojo类
public class VO {
String ids;
String content;
dao 类
public interface IUserDao {
//登陆方法
User login(User user);
//注册用户
void addUser(User user);
//验证账号是否重复
int checkAccountNumber(String acc);
//查询所有用户
List<User> getUsers();
//修改用户基本信息
void updateUser(User user);
sql 语句
<select id="login" resultType="User">
SELECT * FROM tb_user WHERE account_number=#{accountNumber} AND password=#{password}
</select>
<insert id="addUser" parameterType="User">
INSERT INTO tb_user (account_number,password,name,sex,birthday) VALUES (#{accountNumber},#{password},#{name},#{sex},#{birthday})
</insert>
<select id="getUsers" resultType="User">
SELECT id,name FROM tb_User
</select>
<select id="checkAccountNumber" resultType="int">
SELECT COUNT(id) FROM tb_user WHERE account_number=#{acc}
</select>
<update id="updateUser" parameterType="User">
UPDATE tb_user SET name=#{name},sex=#{sex},birthday=#{birthday} WHERE id=#{id}
</update>
public interface IMessageDao {
//发送邮件
void sendMessage(List<Message> messageList);
List<Message> findAllMessages();
List<Message> findMessagesByName(String name);
删除
void deleteMessage(VO vo);
List<Message> findMessagesByContent(String content);
sql 语句
<select id="findAllMessages" resultType="Message">
SELECT id,content,createtime AS createTime,send_name AS sendName,receive_name AS receiveName,level FROM tb_message
</select>
<select id="findMessagesByName" resultType="Message" parameterType="String">
SELECT id,content,createtime AS createTime,send_name AS sendName,receive_name AS receiveName,level FROM tb_message WHERE receive_name=#{name}
</select>
<insert id="sendMessage" parameterType="java.util.List" useGeneratedKeys="true">
INSERT INTO tb_message (content,createtime,receive_name,send_name,level) VALUES
<foreach collection="list" item="item" index="index" separator="," >
(#{item.content},#{item.createTime},#{item.receiveName},#{item.sendName},#{item.level})
</foreach>
</insert>
<delete id="deleteMessage" parameterType="VO">
DELETE FROM tb_message WHERE id IN (${ids})
</delete>
<select id="findMessagesByContent" parameterType="String" resultType="Message">
SELECT id,content,createtime AS createTime,send_name AS sendName,receive_name AS receiveName,level FROM tb_message WHERE content LIKE CONCAT(CONCAT('%', #{content}), '%')
</select>
service 类
@Service
@Transactional(readOnly = true)
public class MessageServiceImpl implements IMessageService {
@Autowired
private IMessageDao dao;
@Override
@Transactional(readOnly = false)
public void sendMessage(List<Message> messageList) {
dao.sendMessage(messageList);
}
@Override
public List<Message> findAllMessages() {
return dao.findAllMessages();
}
@Override
public List<Message> findMessagesByName(String name) {
return dao.findMessagesByName(name);
}
@Override
@Transactional(readOnly = false)
public void deleteMessage(VO vo) {
dao.deleteMessage(vo);
}
@Override
public List<Message> findMessagesByContent(String content) {
return dao.findMessagesByContent(content);
}
@Service
@Transactional(readOnly = true)
public class UserServiceImpl implements IUserService {
@Autowired
private IUserDao dao;
@Override
public User login(User user) {
return dao.login(user);
}
@Override
@Transactional(readOnly = false)
public void addUser(User user) {
dao.addUser(user);
}
@Override
public int checkAccountNumber(String acc) {
return dao.checkAccountNumber(acc);
}
@Override
public List<User> getUsers() {
return dao.getUsers();
}
@Override
@Transactional(readOnly = false)
public void updateUser(User user) {
dao.updateUser(user);
}
controller 类
@Controller
@RequestMapping(value = "/user")
public class UserAction
@Autowired
private IUserService userService;
//登陆业务
@RequestMapping(value = "/login",method = RequestMethod.POST)
public ModelAndView login(User user, HttpSession session){
user=userService.login(user);
if (user.getId()!=0){
//计算用户年龄
int age= AgeUtils.getAgeFromBirthTime(user.getBirthday());
//给登陆用户年龄赋值
user.setAge(age);
session.setAttribute("user",user);
return new ModelAndView("homePage");
}
else {
return new ModelAndView("error");
}
}
@RequestMapping(value = "/register",method = RequestMethod.POST)
public ModelAndView register(User user){
userService.addUser(user);
return new ModelAndView("login");
}
@RequestMapping(value = "/checkAccountNumber",method = RequestMethod.GET)
@ResponseBody
public Map<String,Object> checkAccountNumber(String acc) throws Exception{
Map<String,Object> map=new HashMap<String,Object>();
acc= URLDecoder.decode(acc,"utf-8");
int flag=userService.checkAccountNumber(acc);
if (flag==0) {
map.put("msg",1);
}
else {
map.put("msg",0);
}
return map;
}
@RequestMapping(value = "/personal",method = RequestMethod.GET)
public ModelAndView toPersonal(){
return new ModelAndView("personal");
}
@RequestMapping(value = "/homePage",method = RequestMethod.GET)
public ModelAndView toHomePage(){
return new ModelAndView("homePage");
}
@RequestMapping(value = "/getCurrentUser",method = RequestMethod.GET)
@ResponseBody
public Map<String,Object> getCurrentUser(HttpSession session){
Map<String,Object> map=new HashMap<String,Object>();
User user=(User) session.getAttribute("user");
map.put("user",user);
return map;
}
@RequestMapping(value = "/updateUser",method = RequestMethod.POST)
public ModelAndView updateUser(User user,HttpSession session){
User user1=(User) session.getAttribute("user");
user1.setName(user.getName());
user1.setSex(user.getSex());
user1.setBirthday(user.getBirthday2());
int age=AgeUtils.getAgeFromBirthTime(user1.getBirthday());
user1.setAge(age);
userService.updateUser(user1);
session.setAttribute("user",user1);
return new ModelAndView("personal");
}
@Controller
@RequestMapping(value = "/message")
public class MessageAction {
@Autowired
private IUserService userService;
@Autowired
private IMessageService messageService;
@RequestMapping(value = "/toSend",method = RequestMethod.GET)
public String toSend(Model model){
List<User> users=userService.getUsers();
model.addAttribute("users",users);
return "send";
}
//-------------------------------------------ajax多人发送消息业务------------------------------------------
@RequestMapping(value = "/sendMessage",method = RequestMethod.GET)
@ResponseBody
public Map<String,Object> sendMessage(String names, String content, String level, HttpSession session) throws Exception{
Map<String,Object> map=new HashMap<String,Object>();
if (names==null&&content==null){//判断是否传来用户名和消息是否为空
map.put("flag",0);
return map;
}
names= URLDecoder.decode(names,"UTF-8");
content=URLDecoder.decode(content,"UTF-8");
level=URLDecoder.decode(level,"UTF-8");
List<Message> messageList=new ArrayList<Message>();
for (String name :names.split(",")) {
Message message=new Message();
message.setLevel(level);
User user=(User) session.getAttribute("user");
if (user==null) {
message.setSendName("系统");
}
else {
message.setSendName(user.getName());
}
message.setReceiveName(name);
message.setCreateTime(new Date());
message.setContent(content);
messageList.add(message);
}
messageService.sendMessage(messageList);
map.put("flag",1);
return map;
}
@RequestMapping(value = "/toMessage",method = RequestMethod.GET)
public String toMessage(Model model){
List<User> users=userService.getUsers();
List<Message> messages=messageService.findAllMessages();
model.addAttribute("users",users);
model.addAttribute("messages",messages);
return "message";
}
@RequestMapping(value = "/findMessagesByName",method = RequestMethod.GET)
@ResponseBody
public Map<String,Object> findMessagesByName(String name) throws Exception{
name=URLDecoder.decode(name,"utf-8");
Map<String,Object> map=new HashMap<String,Object>();
List<Message> messages;
if (name.equals("0")){
messages=messageService.findAllMessages();
}
else {
messages=messageService.findMessagesByName(name);
}
map.put("messages",messages);
return map;
}
@RequestMapping(value = "/deleteMessage",method = RequestMethod.GET)
@ResponseBody
public Map<String,Object> deleteMessage(String ids,String name) throws Exception{
ids=URLDecoder.decode(ids,"utf-8");
name=URLDecoder.decode(name,"utf-8");
VO vo=new VO();
vo.setIds(ids);
messageService.deleteMessage(vo);
Map<String,Object> map=new HashMap<String,Object>();
List<Message> messages;
if (name.equals("0")){
messages=messageService.findAllMessages();
}
else {
messages=messageService.findMessagesByName(name);
}
map.put("messages",messages);
return map;
}
@RequestMapping(value = "/findMessagesByContent",method = RequestMethod.GET)
@ResponseBody
public Map<String,Object> findMessagesByContent(String content) throws Exception{
Map<String,Object> map=new HashMap<String,Object>();
content=URLDecoder.decode(content,"utf-8");
if (!content.equals("")){
List<Message> messages=messageService.findMessagesByContent(content);
map.put("messages",messages);
}
else {
List<Message> messages=messageService.findAllMessages();
map.put("messages",messages);
}
return map;
}
jsp 界面 第一个界面
<a href="/jsp/login.jsp">登陆</a>
<a href="/book/toList.action">直接查看书店</a>
<a href="/message/toSend.action">直接前往信息发送页面</a>
<a href="/message/toMessage.action">直接前往信息查看页面</a>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>登陆</title>
</head>
<body>
<form action="/user/login.action" method="post">
<table>
<tr><td>账号:</td><td><input name="accountNumber"></td></tr>
<tr><td>密码:</td><td><input type="password" name="password"></td></tr>
<tr><td><input type="submit" value="登陆"></td><td><input type="reset" value="重写"></td></tr>
</table>
</form>
<a href="register.jsp">前往注册</a>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>注册</title>
<script src="/js/jquery-1.8.3.js"></script>
<script>
var flag1=false;
var flag2=true;
function checkAccountNumber() {
var acc0=$("#accountNumber").val();
var acc=encodeURI(acc0);
$.ajax({
type: "get",
url: "/user/checkAccountNumber.action",
data: {acc:acc},
dataType: "json",
success: function (data) {
var flag=data.msg;
if(flag==1){
$("#s1").html("<b style='color: aquamarine'>账号可用</b>");
flag1=true;
}
else {
$("#s1").html("<b style='color: crimson'>账号已被使用</b>");
}
},
error: function () {
$("#s1").html("<b style='color: crimson'>出了点差错</b>");
}
});
}
function checkPwd() {
var pwd1=$("#pwd1").val();
var pwd2=$("#pwd2").val();
if (pwd1==pwd2){
$("#s2").html("");
flag2=true;
}
else {
$("#s2").html("<b style='color: crimson'>两次密码不一致</b>");
}
}
function checkAll() {
if (flag1&&flag2){
$("form").submit();
}
else {
alert("请检查表单");
}
}
</script>
</head>
<body>
<form action="/user/register.action" method="post">
<table>
<tr><td>账号:</td><td><input name="accountNumber" id="accountNumber" onblur="checkAccountNumber()"><span id="s1">*</span></td></tr>
<tr><td>用户名:</td><td><input name="name">*</td></tr>
<tr><td>密码:</td><td><input type="password" name="password" id="pwd1"></td></tr>
<tr><td>确认密码:</td><td><input type="password" id="pwd2" onblur="checkPwd()"><span id="s2"></span></td></tr>
<tr><td>性别:</td><td>
<input type="radio" name="sex" value="男">男
<input type="radio" name="sex" value="女">女
</td></tr>
<tr><td>出生日期:</td><td><input type="date" name="birthday"></td></tr>
<tr><td><input type="button" value="注册" onclick="checkAll()"></td><td><input type="reset" value="重写"></td></tr>
</table>
</form>
<a href="login.jsp">返回登陆</a>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>登陆失败</title>
</head>
<body>
<h3><a href="login.jsp">密码或用户名错误,请重新登陆</a></h3>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>查看信息</title>
<script src="/js/jquery.min.js"></script>
<script>
function findMessagesByName() {
var name=$("#s1").val();
name=encodeURI(name);
$.ajax({
type:"GET",
url: "/message/findMessagesByName.action",
data: {name:name},
dataType: "json",
success: function (data) {
var html="";
var list=data.messages;
for(var i=0;i<list.length;i++){
html+="<tr>" +
"<td><input type='checkbox' id='id' value='"+list[i].id+"'></td>" +
"<td>"+list[i].id+"</td>" +
"<td>"+list[i].content+"</td>" +
"<td>"+list[i].createTime+"</td>" +
"<td>"+list[i].sendName+"</td>" +
"<td>"+list[i].receiveName+"</td>" +
"<td>"+list[i].level+"</td>" +
"<td><input type=\"button\" value=\"删除\" onclick='deleteMessage("+list[i].id+")'></td>" +
"</tr>";
}
$("#t1").html(html);
$("#content").val("");
},
error: function () {
alert("系统繁忙,请稍后再试");
}
});
}
function deleteMessage(checkId) {
checkId.toString();
var ids=encodeURI(checkId);
var name=$("#s1").val();
name=encodeURI(name);
$.ajax({
type: "GET",
url: "/message/deleteMessage.action",
data: {ids:ids,name:name},
dataType: "json",
success: function (data) {
var html="";
var list=data.messages;
for(var i=0;i<list.length;i++){
html+="<tr>" +
"<td><input type='checkbox' id='id' value='"+list[i].id+"'></td>" +
"<td>"+list[i].id+"</td>" +
"<td>"+list[i].content+"</td>" +
"<td>"+list[i].createTime+"</td>" +
"<td>"+list[i].sendName+"</td>" +
"<td>"+list[i].receiveName+"</td>" +
"<td>"+list[i].level+"</td>" +
"<td><input type=\"button\" value=\"删除\" onclick='deleteMessage("+list[i].id+")'></td>" +
"</tr>";
}
$("#t1").html(html);
$("#content").val("");
},
error: function () {
alert("系统繁忙,请稍后重试");
}
});
}
function deleteSomeMessages() {
var checkId=[];
var name=$("#s1").val();
name=encodeURI(name);
$("input:checked").each(function () {
checkId.push($(this).val());
});
if(checkId.length==0){
alert("请至少选择一项");
return
}
checkId.toString();
var ids=encodeURI(checkId);
$.ajax({
type: "get",
url: "/message/deleteMessage.action",
data: {ids:ids,name:name},
dataType: "json",
success: function (data) {
var html="";
var list=data.messages;
for(var i=0;i<list.length;i++){
html+="<tr>" +
"<td><input type='checkbox' id='id' value='"+list[i].id+"'></td>" +
"<td>"+list[i].id+"</td>" +
"<td>"+list[i].content+"</td>" +
"<td>"+list[i].createTime+"</td>" +
"<td>"+list[i].sendName+"</td>" +
"<td>"+list[i].receiveName+"</td>" +
"<td>"+list[i].level+"</td>" +
"<td><input type=\"button\" value=\"删除\" onclick='deleteMessage("+list[i].id+")'></td>" +
"</tr>";
}
$("#t1").html(html);
$("#content").val("");
},
error: function () {
alert("系统繁忙,请稍后再试");
}
});
}
function checkAll() {
$("#t1 :checkbox").each(function () {
$(this).prop("checked", !$(this).prop("checked"));
});
$("#t1:checkbox").prop("checked",true);
}
function searchContent() {
var msg=$("#content").val();
var content=encodeURI(msg);
$.ajax({
type: "get",
url: "/message/findMessagesByContent.action",
data: {content:content},
dataType:"json",
success: function (data) {
var html="";
var list=data.messages;
for(var i=0;i<list.length;i++){
html+="<tr>" +
"<td><input type='checkbox' id='id' value='"+list[i].id+"'></td>" +
"<td>"+list[i].id+"</td>" +
"<td>"+list[i].content+"</td>" +
"<td>"+list[i].createTime+"</td>" +
"<td>"+list[i].sendName+"</td>" +
"<td>"+list[i].receiveName+"</td>" +
"<td>"+list[i].level+"</td>" +
"<td><input type=\"button\" value=\"删除\" onclick='deleteMessage("+list[i].id+")'></td>" +
"</tr>";
}
$("#t1").html(html);
},
error: function () {
alert("系统繁忙,请稍后重试");
}
});
}
</script>
</head>
<body>
<h1>站内信息查看页面</h1>
<form>
<select id="s1" onchange="findMessagesByName()">
<option value="0" selected="selected">所有人</option>
<c:forEach items="${users}" var="one">
<option value="${one.name}">${one.name}</option>
</c:forEach>
</select>
<input id="content">
<input type="button" value="查询" onclick="searchContent()">
<input type="button" value="全选/全不选" onclick="checkAll()">
<input type="button" value="批量删除" onclick="deleteSomeMessages()">
<table border="1px">
<thead>
<tr>
<td></td>
<td width="200px">消息id</td>
<td width="200px">消息内容</td>
<td width="200px">时间</td>
<td width="200px">发送人</td>
<td width="200px">接收人</td>
<td width="200px">重要等级</td>
<td width="200px">操作</td>
</tr>
</thead>
<tbody id="t1">
<c:forEach items="${messages}" var="one">
<tr>
<td><input type="checkbox" value="${one.id}"></td>
<td>${one.id}</td>
<td>${one.content}</td>
<td>${one.createTime}</td>
<td>${one.sendName}</td>
<td>${one.receiveName}</td>
<td>${one.level}</td>
<td><input type="button" value="删除" onclick="deleteMessage(${one.id})"></td>
</tr>
</c:forEach>
</tbody>
</table>
<a href="/message/toSend.action">返回发送页面</a>
<c:if test="${sessionScope.user!=null}"><br><a href="/user/homePage.action">返回主页</a></c:if>
</form>
</body>
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>发送邮件</title>
<script src="/js/jquery-1.8.3.js"></script>
<script>
function sendMessage() {
var checkLevel=$("#s1").val();
var msg=$("#msg").val();
//判断消息框是否为空
if(msg==""){
alert("消息不能为空");
return;
}
var checkName=[];
$("input:checked").each(function () {
checkName.push($(this).val());
});
//检查是否选择用户
if(checkName.length==0){
alert("请选择收信人");
return;
}
var names=checkName.toString();
var level=encodeURI(checkLevel);
var names=encodeURI(names);
var content=encodeURI(msg);
$.ajax({
type : "GET",
url: "sendMessage.action",
data: {names:names,content:content,level:level},
dataType: "json",
success: function(data) {
$("input:checked").prop("checked",false);
$("#msg").val("");
if(data.flag==1){
alert("发送成功");
}
else {
alert("发送格式有误,请检查");
}
},
error: function () {
alert("系统繁忙,请稍后重试");
}
});
}
</script>
</head>
<body>
<h1>站内信息发送页面</h1>
<form>
<table>
<tr><td>请选择联系人</td><td>
<c:forEach items="${users}" var="one">
<input type="checkbox" value="${one.name}">${one.name}
</c:forEach>
</td></tr>
<tr>
<td>请选择重要等级</td>
<td>
<select id="s1">
<option value="非常重要">非常重要</option>
<option value="有点重要">有点重要</option>
<option value="爱看不看">爱看不看</option>
<option value="垃圾消息">垃圾消息</option>
</select>
</td>
</tr>
<tr><td>请输入消息内容</td><td><textarea id="msg"></textarea></td></tr>
<tr><td></td><td><input type="button" value="发送" onclick="sendMessage()"></td></tr>
</table>
<a href="/message/toMessage.action">返回查看信息页面</a>
<c:if test="${sessionScope.user!=null}"><br><a href="/user/homePage.action">返回主页</a></c:if>
</form>
</body>
</html>
修改界面
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>个人信息</title>
<script src="/js/jquery-1.8.3.js"></script>
<script>
function clickUpdate() {
$.ajax({
type: "get",
url: "/user/getCurrentUser.action",
data: {},
dataType: "json",
success: function (data) {
var user=data.user;
var html="<tr><td>姓名:</td><td><input name='name' value='"+user.name+"'></td></tr>"+
"<tr><td>性别:</td><td><input type='radio' name='sex' value='男'>男" +
"<input type='radio' name='sex' value='女'>女</td></tr>"+
"<tr><td>生日:</td><td><input type='date' name='birthday' value='"+user.birthday+"'></td></tr>"+
"<tr><td><input type=\"button\" value=\"保存\" onclick=\"toUpdate()\"></td><td></td></tr>";
$("#t1").html(html);
},
error: function () {
alert("系统繁忙,请稍后重试");
}
});
}
function toUpdate() {
$("#f1").submit();
}
</script>
</head>
<body>
<form action="/user/updateUser.action" method="post" id="f1">
<table id="t1">
<tr><td>姓名:</td><td>${sessionScope.user.name}</td></tr>
<tr><td>登陆账号:</td><td>${sessionScope.user.accountNumber}</td></tr>
<tr><td>性别:</td><td>${sessionScope.user.sex}</td></tr>
<tr><td>生日:</td><td>${sessionScope.user.birthday}</td></tr>
<tr><td>年龄:</td><td>${sessionScope.user.age}</td></tr>
<tr><td><input type="button" value="点击修改" onclick="clickUpdate()"></td><td></td></tr>
</table>
<a href="/user/homePage.action">返回个人主页</a>
</form>
</body>
</html>
登录成功后的界面
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>个人主页</title>
</head>
<body>
<h1>欢迎你,${sessionScope.user.name} | <a>注销</a></h1>
<h3><a href="/book/bookStore.action">浏览书店</a></h3>
<h3><a href="/book/bookStore.action">查看我的图书</a></h3>
<h3><a href="/user/personal.action">个人信息</a></h3>
<h3><a href="/message/toSend.action">发送消息</a></h3>
<h3><a href="/message/toMessage.action">收信箱</a></h3>
</body>
</html>
- 做题
- 做题
- 做题
- 做题
- 做题
- 做题与做项目
- 陪她做题
- 开始做题。。。
- 做题沙龙
- 做题小结
- POJ做题分类
- USACO做题介绍
- 数据结构题 怎么做
- 做测试题
- 天天做题
- 做题感言
- 做题感受
- 9.28做题总结
- Leetcode#190. Reverse Bits (反向位&位运算)
- Window.open()方法参数详解
- 如何在WPF或者C#中打开外部资源:System.Diagnostics.Process.Start()
- Count and Say
- 二分
- 做题
- Android Multimedia框架总结(八)Stagefright框架之AwesomePlayer及数据解析器
- oracle索引
- 数据结构基本知识
- CodeForces
- http与https的区别
- Android Studio打包签名 Signature Versions V1、V2的选择问题
- 渐进增强和优雅降级之间的区别?
- java 集合之map集合介绍