当前位置: 首页 > news >正文

如何不花钱开发网站网页设计作业文件

如何不花钱开发网站,网页设计作业文件,不知此网站枉做男人的网站,wordpress禁止图压缩文章目录 1、基于session的认证2、Demosession实现认证session实现授权 1、基于session的认证 流程#xff1a; 用户认证成功后#xff0c;服务端生成用户数据保存在session中服务端返回给客户端session id (sid#xff09;#xff0c;被客户端存到自己的cookie中客户端下… 文章目录 1、基于session的认证2、Demosession实现认证session实现授权 1、基于session的认证 流程 用户认证成功后服务端生成用户数据保存在session中服务端返回给客户端session id (sid被客户端存到自己的cookie中客户端下次再请求就带上sid服务端校验是否存在对应的session存在则不要求用户再登录了 2、Demo 基于Session的认证机制由Servlet制定规范Serlvet容器以实现HttpSession相关方法 方法用途HttpSession getSession(Boolean create)获取当前HttpSession对象void setAttribute(String name,Object value)向session中存放对象object getAttribute(String name)从session中获取对象void removeAttribute(String name);移除session中对象void invalidate()使HttpSession失效 准备实体类 Data public class AuthenticationRequestDto {/*** 用户名*/private String username;/*** 密码*/private String password; } Data AllArgsConstructor public class UserVo {private String id;private String username;private String password;private String fullname;private String mobile; }session实现认证 用Map模拟查询数据库存储用户信息 Service public class AuthenticationServiceImpl implements AuthenticationService {private final MapString, UserVo userMap new HashMap();{userMap.put(zhangsan, new UserVo(1010, zhangsan, 123, zhangSan, 133443));userMap.put(lisi, new UserVo(1011, lisi, 456, liSi, 144553));}Overridepublic UserVo auth(AuthenticationRequestDto dto) {if (dto null|| StringUtils.isEmpty(dto.getUsername())|| StringUtils.isEmpty(dto.getPassword())) {throw new RuntimeException(账户或密码为空);}//模拟查询数据库UserVo vo getUserVo(dto.getUsername());if (null vo) {throw new RuntimeException(用户不存在);}if (!vo.getPassword().equals(dto.getPassword())) {throw new RuntimeException(密码错误);}return vo;}public UserVo getUserVo(String username) {return userMap.get(username);}} 定义三个接口登录服务端保存session登出让session失效。以及一个资源接口查看当前是登录访问资源还是未登录访问资源 RestController public class Controller {Resourceprivate AuthenticationService authenticationService;GetMapping(value /login)public String login(AuthenticationRequestDto dto, HttpSession session) {UserVo userVo authenticationService.auth(dto);//用户信息存入sessionsession.setAttribute(sid, userVo);return userVo.getFullname() success login;}GetMapping(/logout)public String logout(HttpSession session) {//让session失效session.invalidate();return success logout;}GetMapping(/r1)public String resource(HttpSession session) {String fullName null;Object result session.getAttribute(sid);if (result ! null) {fullName ((UserVo) result).getFullname();} else {fullName no login;}return fullName access resource ... ;}}测试 登录后访问资源接口 退出登录后再访问资源接口 session实现授权 修改实体类加个权限字段存储用户权限 Data AllArgsConstructor public class UserVo {private String id;private String username;private String password;private String fullname;private String mobile;/*** 用户权限*/private SetString authorities; } 实例代码块创建用户到map的代码做调整 {SetString auth1 new HashSet();auth1.add(p1); //对应/r1这个接口资源SetString auth2 new HashSet();auth2.add(p2); //对应/r2这个接口资源userMap.put(zhangsan, new UserVo(1010, zhangsan, 123, zhangSan, 133443, auth1));userMap.put(lisi, new UserVo(1011, lisi, 456, liSi, 144553, auth2));}加个测试资源接口/r2 GetMapping(/r2)public String resource2(HttpSession session) {String fullName null;Object result session.getAttribute(sid);if (result ! null) {fullName ((UserVo) result).getFullname();} else {fullName no login;}return fullName access resource ... ;} 写拦截器 ComponentScan public class SimpleAuthInterceptor implements HandlerInterceptor {/*** 校验用户请求的url是否在权限范围中*/Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {//从http请求中获取session对象再拿当前HttpSession对象Object object request.getSession().getAttribute(sid);//没有认证if (object null) {writeContent(response, 请登录);}UserVo userVo (UserVo) object;//请求的urlString requestURI request.getRequestURI();assert userVo ! null;if (userVo.getAuthorities().contains(p1) requestURI.contains(/r1)) {return true;}if (userVo.getAuthorities().contains(p2) requestURI.contains(/r2)) {return true;}//拒绝访问writeContent(response,没有权限拒绝访问);return false;}private void writeContent(HttpServletResponse response, String msg) throws IOException {response.setContentType(text/html;charsetutf-8);PrintWriter writer response.getWriter();writer.print(msg);writer.close();} }拦截器add并放行/login只测/r**接口 Configuration EnableWebMvc public class WebConfig implements WebMvcConfigurer {/*** 视图解析器*/Beanpublic InternalResourceViewResolver viewResolver(){InternalResourceViewResolver viewResolver new InternalResourceViewResolver();viewResolver.setPrefix(/static/); //前缀viewResolver.setSuffix(.jsp); //后缀return viewResolver;}Overridepublic void addViewControllers(ViewControllerRegistry registry) {registry.addViewController(/).setViewName(login);}Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new SimpleAuthInterceptor()).addPathPatterns(/r**); //新加进来的拦截器只针对r打头的接口否则login接口也会被拦截要求登录} }测试登录zhangsan其有r1权限访问r2接口
http://www.zqtcl.cn/news/478538/

相关文章:

  • 邢台营销型网站建设做网站的保证承诺
  • 关于茶叶的网站模板免费下载wordpress多边形按钮
  • 贵阳市网站建设手工制作花
  • 娄底哪里做网站免费永久不限空间
  • 网站标签怎么做wordpress 后台模板
  • 内江移动网站建设网站内部链接的作用有哪些
  • 阿里云的wordpress建站wordpress 批量定时发布
  • 网站院长信箱怎么做海报设计制作网站
  • 办网站如何备案怎么制作微信链接网页
  • 聊城门户网站建设怎样能有个人网站
  • 营销网站建设资料创意网站 模板
  • 免费的短网址生成器深圳外贸网站优化
  • 网站推广哪个平台最好图库
  • 在东莞做网站vue做网站好吗
  • 手机网站的页面大小郑州恩恩网站建设
  • 视频运营管理平台长沙网站seo技术
  • 网站建设有哪些规章制度网页版面
  • 海伦网站建设做网站建设的联系电话
  • 免费做字体的网站枣强网站建设代理
  • 建设网站素材海南百度推广公司电话
  • 温州企业网站建设费用培训行业门户网站建设方案
  • 口碑好的常州网站优化深圳市光明区实验学校
  • 网站怎么做微博认证网页设计代码html作品展示
  • 在线网站建设活动初创企业的建站流程
  • 汨罗哪里有网站开发的公司电话百度首页关键词推广
  • 天津百度整站优化服务政务网站模版
  • 推荐家居企业网站建设用什么工具修改wordpress
  • wix做的网站能扒下来哈尔滨做网站的oeminc
  • 做网站的网络公司门户网站介绍
  • 软件公司网站系统集成建设下拉关键词排名