js

login

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
$(document).ready(function(){
var userStr = localStorage .getItem("user");
try{
var user = JSON.parse(userStr);
var date = new Date(user.loginDate);
date.setDate(date.getDate()+7);
console.log(date);
if(new Date() < date){
jump(user);
}
}catch(error){

}
$(".loginButton").click(function(){
var email = $(".email").val();
var password = $(".password").val();

$.ajax({
url:"http://localhost:8080/SunshineAirlines/login",
data:"email="+email+"&password="+password,
type:"post",
success:function(msg){
var obj = JSON.parse(msg);
if(obj.flag=="success"){
var user = obj.data;
//7
if($(".is7day").is(":checked")){
user.loginDate = new Date();
}
localStorage.setItem("user",JSON.stringify(user));
jump(user);
}else{
$(".alertInfo").text(obj.data);
}
}
})
})


})
function jump(user){
if(user.RoleId==1){
location.href="ModifyPassword.html"
}else if(user.RoleId==2){
location.href="UserManagement.html"
}
}

updatePassword

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
$(function () {
var userStr = localStorage.getItem("user");
var user = null;

try {
user = JSON.parse(userStr);
var email = user.Email;
var name = user.FirstName + " " + user.LastName;
$(".email").val(email);
$(".name").val(name);
} catch (error) {

}

$(".list_out").click(function () {
localStorage.setItem("user", "");
location.href = "./Login.html"
})



$(".submit").click(function () {
var newPassword = $(".newPassword").val();
var newPasswordAgain = $(".newPasswordAgain").val();
var userId = user.UserId;

if (newPassword.length > 16 || newPassword.length < 8) {
alert("wrong format");
return;
}
if (newPassword != newPasswordAgain) {
alert("unequal");
return;
}


var param = "userId=" + userId + "&password=" + newPassword;
$.ajax({
url: "http://localhost:8080/SunshineAirlines/updatePassword",
data: param,
type: "post",
success: function (msg) {
var obj = JSON.parse(msg);
if (obj.flag == "success") {
localStorage.setItem("user", "");
location.href = "./Login.html";
}

}

})
});

$(".cancel").click(function () {
$(".newPassword").val("");
$(".newPasswordAgain").val("");
})
})

userList

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
var searchObj = {};

function editUser(userId) {
// alert(userId);
localStorage.setItem("userId", userId);
location.href = "./EditUser.html"
};

$(document).ready(function () {
$(".list_out").click(function () {
localStorage.setItem("user", "");
location.href = "./Login.html"
})

$("#goAddUser").click(function () {
localStorage.setItem("userId", 0);
location.href = "./EditUser.html";
});

getUserList(0, "", 1);

$(".step-backward").click(function () {
getUserList(searchObj.roleId, searchObj.name, 1);
});


$(".searchbutton").click(function () {
var roleId = $(".roleId").val();
var name = $(".userName").val();
getUserList(roleId, name, 1);

});


$(".chevron-left").click(function () {
if (searchObj.startPage == 1) {
alert("first page!");
} else {
getUserList(searchObj.roleId, searchObj.name, searchObj.startPage - 1);
}
});


$(".chevron-right").click(function () {
if (searchObj.startPage == searchObj.pages) {
alert("last page!");
} else {
getUserList(searchObj.roleId, searchObj.name, searchObj.startPage + 1);
}
});


$(".step-forward").click(function () {
getUserList(searchObj.roleId, searchObj.name, searchObj.pages);
});



$(".NUM .pages").change(function () {
getUserList(searchObj.roleId, searchObj.name, parseInt($(this).val()));
});


function getUserList(RoleId, name, startPage) {
searchObj.roleId = RoleId;
searchObj.name = name;
searchObj.startPage = startPage;
$.ajax({
url: "http://localhost:8080/SunshineAirlines/userList",
data: "roleId=" + RoleId + "&name=" + name + "&startPage=" + startPage + "&pageSize=10",
type: "post",
success: function (msg) {

var obj = JSON.parse(msg);
if (obj.flag == "success") {
var html = "";
for (let i = 0; i < obj.data.length; i++) {
var role = obj.data[i].RoleId == 1 ? "Office User" : "Administrator";
html += "<tr>";
html += "<td>" + obj.data[i].Email + "</td>";
html += "<td>" + obj.data[i].FirstName + " " + obj.data[i].LastName + "</td>";
html += "<td>" + obj.data[i].Gender + "</td>";
html += "<td>" + obj.data[i].DateOfBirth + "</td>";
html += "<td>" + obj.data[i].Phone + "</td>";
html += "<td>" + role + "</td>";
html += "<td><input class='editUser' style='width: 80px; font-size: 16px;' type='button' value='Edit' onClick='editUser(" + obj.data[i].UserId + ")'/></td>";
html += "<tr>";

}
$(".formclass tbody").html(html);
$(".formclass tbody tr:odd").addClass("tdcolor");
$(".formclass tbody tr:even").addClass("tdcolor1");

var total = obj.page.total;
searchObj.pages = parseInt(total / 10);
if (total % 10 != 0) {
searchObj.pages += 1;
}
$(".pages").text(searchObj.pages);
$(".totals").text(total);
var optionHTML = "";
for (let i = 1; i < searchObj.pages + 1; i++) {
if (searchObj.startPage == i) {
optionHTML += "<option value='" + i + "' selected>" + i + "</option>";
} else {
optionHTML += "<option value='" + i + "'>" + i + "</option>";
}

}
$(".NUM .pages").html(optionHTML);
}
}
})

}

});

Helper

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
package edu.wtbu.helper;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public class MySqlHelper {
private static Connection conn = null;
private static PreparedStatement ps = null;
private static ResultSet rs = null;

private static String url = "jdbc:mysql://localhost:3306/session1?serverTimezone=GMT%2B8&useOldAliasMetaDataBehavior=true";
private static String driver = "com.mysql.jdbc.Driver";
private static String user = "root";
private static String password = "123456";

static {
try {
Class.forName(driver);
} catch (Exception e) {
// TODO: handle exception
}
}

public static void Close() {
try {
if (conn != null) {
conn.close();
}
if (rs != null) {
rs.close();
}
if (ps != null) {
ps.close();
}
} catch (Exception e) {
// TODO: handle exception
}
}

public static Connection getConn() {
try {
conn = DriverManager.getConnection(url, user, password);
} catch (Exception e) {
// TODO: handle exception
}
return conn;
}

public static List<HashMap<String, Object>> executeQueryReturnMap(String sql, Object parameters[]) {
List<HashMap<String, Object>> list = null;
try {
conn = getConn();
ps = conn.prepareStatement(sql);
if (parameters != null) {
for (int i = 0; i < parameters.length; i++) {
String ClassName = parameters[i].getClass().getName();
if (ClassName.contains("String")) {
ps.setString(i+1, parameters[i].toString());
}
if(ClassName.contains("Integer")) {
ps.setInt(i+1, Integer.parseInt(parameters[i].toString()));
}
}

ResultSet rs = ps.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
int columnNum = rsmd.getColumnCount();
list = new ArrayList<HashMap<String,Object>>();

while(rs.next()) {
HashMap<String, Object> map = new HashMap<String, Object>();
for (int i = 0; i < columnNum; i++) {
String columnName = rsmd.getColumnName(i+1);
Object value = rs.getObject(i+1);
map.put(columnName, value);
}
list.add(map);
}
}
} catch (Exception e) {
// TODO: handle exception
}
return list;
}

public static int executeUpdate(String sql, Object parameters[]) {
int result = 0;
try {
conn = getConn();
ps = conn.prepareStatement(sql);
if (parameters != null) {
for (int i = 0; i < parameters.length; i++) {
String ClassName = parameters[i].getClass().getName();
if (ClassName.contains("String")) {
ps.setString(i+1, parameters[i].toString());
}
if(ClassName.contains("Integer")) {
ps.setInt(i+1, Integer.parseInt(parameters[i].toString()));
}
}

result = ps.executeUpdate();
}
} catch (Exception e) {
// TODO: handle exception
}
return result;
}
}

Dao

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package edu.wtbu.dao;

import java.util.HashMap;
import java.util.List;

import edu.wtbu.helper.MySqlHelper;

public class UserDao {
public static List<HashMap<String, Object>> findByEmail(String email) {
String sql = "select * from Users where Email = ?";
return MySqlHelper.executeQueryReturnMap(sql, new Object[] { email });
}

public static HashMap<String, Object> findByEmailAndPassword(String email, String password) {
String sql = "select * from Users where Email = ? and Password = ?";
List<HashMap<String, Object>> list = MySqlHelper.executeQueryReturnMap(sql, new Object[] { email, password });
if (list != null && list.size() > 0) {
return list.get(0);
} else {
return null;
}
}

public static int updatePassword(int userId, String password) {
String sql = "update Users set Password = ? where UserId = ?";
return MySqlHelper.executeUpdate(sql, new Object[] { password, userId });
}

public static List<HashMap<String, Object>> findByPage(String name,int startPage,int pageSize){
String sql = "select * from users where ( FirstName like ? or LastName like ? ) order by FirstName limit ?,?" ;
return MySqlHelper.executeQueryReturnMap(sql, new Object[] {"%"+name+"%","%"+name+"%",(startPage-1)*pageSize,pageSize});
}

public static int findByCount(String name) {
String sql = "select count(1) as Total from users where( FirstName like ? or LastName like ? )";
List<HashMap<String, Object>> list = MySqlHelper.executeQueryReturnMap(sql, new Object[] {"%"+name+"%","%"+name+"%"});
if(list != null && list.size() > 0) {
return Integer.parseInt(list.get(0).get("Total").toString());
}else {
return 0;
}
}

//without RoleId
public static List<HashMap<String, Object>> findByPageAndRoleId(String name,int startPage,int pageSize ,int roleId){
String sql = "select * from users where RoleId = ? and ( FirstName like ? or LastName like ? ) order by FirstName limit ?,?" ;
return MySqlHelper.executeQueryReturnMap(sql, new Object[] {roleId,"%"+name+"%","%"+name+"%",(startPage-1)*pageSize,pageSize});
}

public static int findByCountAndRoleId(String name ,int roleId) {
String sql = "select count(1) as Total from users where RoleId = ? and ( FirstName like ? or LastName like ? )";
List<HashMap<String, Object>> list = MySqlHelper.executeQueryReturnMap(sql, new Object[] {roleId,"%"+name+"%","%"+name+"%"});
if(list != null && list.size() > 0) {
return Integer.parseInt(list.get(0).get("Total").toString());
}else {
return 0;
}
}
}

Service

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package edu.wtbu.service;

import java.util.HashMap;
import java.util.List;
import edu.wtbu.dao.UserDao;
import edu.wtbu.pojo.Page;
import edu.wtbu.pojo.Result;

public class UserService {
public static Boolean findByEmail(String email) {
List<HashMap<String, Object>> list = UserDao.findByEmail(email);
if (list != null && list.size() > 0) {
return true;
} else {
return false;
}
}

public static Result Login(String email, String password) {
HashMap<String, Object> user = UserDao.findByEmailAndPassword(email, password);
Result result = new Result("fail", null, null);
if(user != null) {
result.setFlag("success");
HashMap<String, Object> loginInfo = new HashMap<String, Object>();
loginInfo.put("RoleId", user.get("RoleId"));
loginInfo.put("UserId", user.get("UserId"));
loginInfo.put("Email", user.get("Email"));
loginInfo.put("FirstName", user.get("FirstName"));
loginInfo.put("LastName", user.get("LastName"));
result.setData(loginInfo);
}else {
if(findByEmail(email)) {
result.setData("wrong password");
}else {
result.setData("email not exist");
}
}
return result;
}

public static Result updatePassword(int userId,String password) {
Result result = new Result("fail", null, null);
int updateResult = UserDao.updatePassword(userId,password);
if(updateResult > 0) {
result.setFlag("success");
}
return result;
}

public static Result userList(String name,int startPage,int pageSize,int roleId) {
List<HashMap<String, Object>> list = null;
int total = 0;
if(roleId == 0) {
list = UserDao.findByPage(name, startPage, pageSize);
total = UserDao.findByCount(name);
}else {
list = UserDao.findByPageAndRoleId(name, startPage, pageSize, roleId);
total = UserDao.findByCountAndRoleId(name, roleId);
}
Page page = new Page(startPage, pageSize, total);
Result result = new Result("success", list, page);
return result;
}
}

Servlet

login

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package edu.wtbu.servlet;

import java.io.IOException;
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 com.alibaba.fastjson.JSON;

import edu.wtbu.pojo.Result;
import edu.wtbu.service.UserService;

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

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

/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
String email = request.getParameter("email");
String password = request.getParameter("password");
Result result = UserService.Login(email, password);
String msg = JSON.toJSONString(result);
response.getWriter().append(msg);
}

}

updatePassword

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package edu.wtbu.servlet;

import java.io.IOException;
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 com.alibaba.fastjson.JSON;

import edu.wtbu.pojo.Result;
import edu.wtbu.service.UserService;

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

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

/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
int userId = 0;
try {
userId = Integer.parseInt(request.getParameter("userId"));
} catch (Exception e) {
userId = 0;
}

String password = request.getParameter("password");
Result result = UserService.updatePassword(userId, password);
String msg = JSON.toJSONString(result);
response.getWriter().append(msg);

}
}

userList

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package edu.wtbu.servlet;

import java.io.IOException;
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 com.alibaba.fastjson.JSON;

import edu.wtbu.pojo.Result;
import edu.wtbu.service.UserService;


@WebServlet("/userList")
public class UserList extends HttpServlet {
private static final long serialVersionUID = 1L;

public UserList() {
super();
}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
String name = request.getParameter("name");
int startPage = 1;
int pageSize = 10;
int roleId = 0;

try {
startPage = Integer.parseInt(request.getParameter("startPage"));
} catch (Exception e) {
startPage = 1;
}

try {
pageSize = Integer.parseInt(request.getParameter("pageSize"));
} catch (Exception e) {
pageSize = 10;
}

try {
roleId = Integer.parseInt(request.getParameter("roleId"));
} catch (Exception e) {
roleId = 0;
}

Result result = UserService.userList(name, startPage, pageSize, roleId);
String msg = JSON.toJSONString(result);
response.getWriter().append(msg);
}

}