mvc登录注册及树形菜单权限管理

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对项目进行优化?

  • 防抖、节流

  • 浏览器的缓存机制

  • 描述一下二叉树, 并说明二叉树的几种遍历方式?

  • 项目类问题

  • 笔试编程题:

最后

技术栈比较搭,基本用过的东西都是一模一样的。快手终面喜欢问智力题,校招也是终面问智力题,大家要准备一下一些经典智力题。如果排列组合、概率论这些基础忘了,建议回去补一下。

相关推荐

  1. C# Winform权限、用户和菜单开发的顺序和注意

    2024-07-12 17:22:05       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 17:22:05       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 17:22:05       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 17:22:05       58 阅读
  4. Python语言-面向对象

    2024-07-12 17:22:05       69 阅读

热门阅读

  1. 拥抱变革,AI工作新纪元

    2024-07-12 17:22:05       20 阅读
  2. 【若依】打开一个新页面

    2024-07-12 17:22:05       22 阅读
  3. Linux跨服务器文件传输

    2024-07-12 17:22:05       21 阅读
  4. 软设之享元模式

    2024-07-12 17:22:05       20 阅读
  5. 3179. K 秒后第 N 个元素的值

    2024-07-12 17:22:05       22 阅读
  6. mysql中的二进制数据类型

    2024-07-12 17:22:05       20 阅读
  7. mysql8遇到的报错Public Key Retrieval is not allowed

    2024-07-12 17:22:05       22 阅读
  8. MySQL事务

    2024-07-12 17:22:05       20 阅读
  9. C语言阶乘(只用逻辑运算中的短路效应判断)

    2024-07-12 17:22:05       21 阅读
  10. numpy 解释函数nanmax

    2024-07-12 17:22:05       22 阅读