import java.util.List;
import com.zking.entity.RolePermission;
import com.zking.entity.User;
import com.zking.util.BaseDao;
import com.zking.util.PageBean;
public class UserDao extends BaseDao {
// 登录
public User login(User user) throws Exception {
// TODO Auto-generated method stub
String sql = “select * from t_easyui_user where name='” + user.getName() + “’ and pwd='” + user.getPwd() + “'”;
System.out.println(“==” + super.executeQuery(sql, User.class, null).get(0));
return super.executeQuery(sql, User.class, null).get(0);
}
// 注册,默认为买家注册
public void add(User user) throws Exception {
String sql = “insert into t_easyui_user(name,pwd) values(?,?)”;
super.executeUpdate(sql, user, new String[] { “name”, “pwd” });
}
public List list(String sql, Class clz, PageBean pageBean) throws Exception {
// TODO Auto-generated method stub
return super.executeQuery(sql, clz, pageBean);
}
}
3.在子
真题解析、进阶学习笔记、最新讲解视频、实战项目源码、学习路线大纲
详情关注公中号【编程进阶路】
控制器action中调用dao方法
当u为null时,登录失败重新跳转到登录界面
package com.zking.web;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.zking.dao.UserDao;
import com.zking.entity.User;
import com.zking.framework.ActionSupport;
import com.zking.framework.ModelDriver;
//导包ctrl+shift+o
public class UserAction extends ActionSupport implements ModelDriver {
private User user = new User();
private UserDao userDao = new UserDao();
@Override
public User getModel() {
// TODO Auto-generated method stub
return null;
}
// 登录
public String login(HttpServletRequest req, HttpServletResponse resp) {
try {
User u = userDao.login(user);
System.out.println(u + “—”);
if (u == null) {
return “toLogin”;
}
req.getSession().setAttribute(“cuser”, u);
} catch (Exception e) {
e.printStackTrace();
return “toLogin”;
}
// 只要数据库中有这个用户,就跳转到主界面
return “main”;
}
// 注册
public String register(HttpServletRequest req, HttpServletResponse resp) {
try {
userDao.add(user);
req.setAttribute(“msg”, “用户名密码错误”);
} catch (Exception e) {
e.printStackTrace();
return “toRegister”;
}
// 如果注册成功,跳转到登录界面
return “toLogin”;
}
}
4.配置mvc.xml文件
二、树形菜单展示及权限管理
卖家和买家需要展示不同的功能
t_easyui_user表中type为1是管理员,2为普通用户
t_easyui_role_permission表中有1和2对应的功能id即pid
1.先建立实体类 roleprimission
package com.zking.entity;
public class RolePermission {
private long rid;
private long pid;
public long getRid() {
return rid;
}
public void setRid(long rid) {
this.rid = rid;
}
public long getPid() {
return pid;
}
public void setPid(long pid) {
this.pid = pid;
}
@Override
public String toString() {
return “RolePermission [rid=” + rid + “, pid=” + pid + “]”;
}
}
4.根据rid查询pid
package com.zking.dao;
import java.util.List;
import com.zking.entity.RolePermission;
import com.zking.framework.ModelDriver;
import com.zking.util.BaseDao;
public class RolePermissionDao extends BaseDao {
/**
通过user表的type字段进行查询,查出商家/买家对应的菜单id
@param type
@return
@throws Exception
*/
public List findRolePermission(int type) throws Exception {
String sql = “select * from t_easyui_role_Permission where rid=” + type;
return super.executeQuery(sql, RolePermission.class, null);
}
}
3.用,将rid拼接起来
public String tree(HttpServletRequest req, HttpServletResponse resp) {
try {
User cuser = (User) req.getSession().getAttribute(“cuser”);
if (cuser == null) {
return “toLogin”;
}
int type = cuser.getType();
List findRolePermission = rolePermissionDao.findRolePermission(type);
StringBuffer sb = new StringBuffer();
for (RolePermission rp : findRolePermission) {
sb.append(“,”).append(rp.getPid());
}
// ids=1,2,3,4,5,6,7,8,9,14
List<TreeVo> treePlus = permissionDao.treePlus(sb.substring(1));
// List<TreeVo> tree = permissionDao.tree(null, null);
ResponseUtil.writeJson(resp, treePlus);
} catch (Exception e) {
e.printStackTrace();
try {
ResponseUtil.writeJson(resp, “0”);
} catch (Exception e2) {
e2.printStackTrace();
}
}
return null;
}
s.substring(1)是将第一个逗号 , 去掉
ES6
列举常用的ES6特性:
箭头函数需要注意哪些地方?
let、const、var
拓展:var方式定义的变量有什么样的bug?
Set数据结构
拓展:数组去重的方法
箭头函数this的指向。
手写ES6 class继承。
微信小程序
简单描述一下微信小程序的相关文件类型?
你是怎么封装微信小程序的数据请求?
有哪些参数传值的方法?
你使用过哪些方法,来提高微信小程序的应用速度?
小程序和原生App哪个好?
简述微信小程序原理?
分析微信小程序的优劣势
怎么解决小程序的异步请求问题?
其他知识点面试
webpack的原理
webpack的loader和plugin的区别?
怎么使用webpack对项目进行优化?
防抖、节流
浏览器的缓存机制
描述一下二叉树, 并说明二叉树的几种遍历方式?
项目类问题
笔试编程题:
最后
技术栈比较搭,基本用过的东西都是一模一样的。快手终面喜欢问智力题,校招也是终面问智力题,大家要准备一下一些经典智力题。如果排列组合、概率论这些基础忘了,建议回去补一下。