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

南宁美丽南方官方网站建设意见网站开始怎么做的

南宁美丽南方官方网站建设意见,网站开始怎么做的,5网站开发,郑州企业建站网站【SpringMVC】拦截器JSR303的使用 1.1 什么是JSR3031.2 为什么使用JSR3031.3 常用注解1.4 Validated与Valid区别1.5 JSR快速入门1.5.2 配置校验规则# 1.5.3 入门案例二、拦截器2.1 什么是拦截器2.2 拦截器与过滤器2.3 应用场景2.4 拦截器快速入门2.5.拦截器链2.6登录案列权… 【SpringMVC】拦截器JSR303的使用 1.1 什么是JSR3031.2 为什么使用JSR3031.3 常用注解1.4 Validated与Valid区别1.5 JSR快速入门1.5.2 配置校验规则# 1.5.3 入门案例二、拦截器2.1 什么是拦截器2.2 拦截器与过滤器2.3 应用场景2.4 拦截器快速入门2.5.拦截器链2.6登录案列权限控制 1.1 什么是JSR303 JSR303是Java规范中定义的一套用于数据校验的标准也被称为Bean Validation。它提供了一组注解用于验证Java对象的属性值是否满足特定的约束条件。 1.2 为什么使用JSR303 使用JSR303可以在服务器端对用户提交的数据进行验证确保数据的合法性和有效性。它可以减少开发人员编写大量的校验逻辑代码提高开发效率并且可以在不同层次如控制器、服务层、DAO进行数据验证保证数据的一致性。 1.3 常用注解 常见的JSR303注解包括 NotNull验证对象不为null。 NotEmpty验证字符串、集合、数组不为空。 NotBlank验证字符串不为空并且长度必须大于0。 Size验证字符串、集合、数组的长度范围。 Min验证数字的最小值。 Max验证数字的最大值。 Pattern验证字符串是否匹配指定的正则表达式。 1.4 Validated与Valid区别 Valid是Java标准的注解用于触发对被注解对象的校验。它可以直接放在方法参数上或者作为Spring MVC中处理请求体参数校验的一部分。 Validated是Spring框架提供的注解与Valid类似但功能更加强大。它可以用于类、方法和方法参数级别的校验并且支持分组校验等高级特性。 1.5 JSR快速入门 1.5.1 导入依赖 在Maven项目中需要导入javax.validation相关的依赖。 !-- JSR303 -- hibernate.validator.version6.0.7.Final/hibernate.validator.version!-- JSR303 -- dependencygroupIdorg.hibernate/groupIdartifactIdhibernate-validator/artifactIdversion${hibernate.validator.version}/version /dependency1.5.2 配置校验规则 通过在实体类的字段上添加不同的JSR303注解定义校验规则。 在这里插入package com.niyin.biz.impl;import com.niyin.biz.tyBiz; import com.niyin.mapper.tyMapper; import com.niyin.model.ty; import com.niyin.utils.PageBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;import java.util.List; import java.util.Map;Service public class tyBizImpl implements tyBiz {Autowiredprivate tyMapper tyMapper;Overridepublic int deleteByPrimaryKey(Integer tid) {return tyMapper.deleteByPrimaryKey(tid);}Overridepublic int insert(ty record) {return tyMapper.insert(record);}Overridepublic int insertSelective(ty record) {return tyMapper.insertSelective(record);}Overridepublic ty selectByPrimaryKey(Integer tid) {return tyMapper.selectByPrimaryKey(tid);}Overridepublic int updateByPrimaryKeySelective(ty record) {return tyMapper.updateByPrimaryKeySelective(record);}Overridepublic int updateByPrimaryKey(ty record) {return tyMapper.updateByPrimaryKey(record);}Overridepublic Listty selectByPager(ty t, PageBean pageBean) {return tyMapper.selectByPager(t);} } # 1.5.3 入门案例 在控制器中接收用户提交的数据并使用Validated注解进行数据校验。如果校验失败则返回错误信息给客户端。 RequestMapping(/valiAdd)public String valiAdd(Validated ty t, BindingResult result, HttpServletRequest req){ // 如果服务端验证不通过有错误if(result.hasErrors()){ // 服务端验证了实体类的多个属性多个属性都没有验证通过ListFieldError fieldErrors result.getFieldErrors();MapString,Object map new HashMap();for (FieldError fieldError : fieldErrors) { // 将多个属性的验证失败信息输送到控制台System.out.println(fieldError.getField() : fieldError.getDefaultMessage());map.put(fieldError.getField(),fieldError.getDefaultMessage());}req.setAttribute(errorMap,map);}else {this.tyBiz.insertSelective(t);return redirect:list;}return edit;}% page languagejava contentTypetext/html; charsetUTF-8pageEncodingUTF-8% !DOCTYPE html PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN http://www.w3.org/TR/html4/loose.dtd html headmeta http-equivContent-Type contenttext/html; charsetUTF-8title博客的编辑界面/title /head body form action${pageContext.request.contextPath }/clz/${empty ts ? valiAdd : edit} methodpostid:input typetext nametid value${ts.tid }span stylecolor: red;${errorMap.tid}/spanbrbname:input typetext nametname value${ts.tname }span stylecolor: red;${errorMap.tname}/spanbrprice:input typetext nametprice value${ts.tprice }span stylecolor: red;${errorMap.tprice}/spanbrinput typesubmit /form /body /html 二、拦截器 2.1 什么是拦截器 拦截器Interceptor是在Web应用程序中常用的一种技术用于在请求被处理前后进行拦截和处理。它可以在控制器和处理器之间进行预处理和后处理操作。 2.2 拦截器与过滤器 拦截器和过滤器都可以用于对请求进行处理但它们在使用方式和功能上有一些区别。过滤器是基于Servlet规范的可以对所有请求进行处理而拦截器是基于Spring MVC框架的只能对包含了拦截器配置的请求进行处理。 2.3 应用场景 拦截器可以应用在各种场景下常见的使用场景包括权限验证、日志记录、异常处理、缓存处理等。它可以对请求进行统一处理简化开发流程并提高代码的可维护性和重用性。 2.4 拦截器快速入门 2.4.1 入门案例 package com.niyin.interceptor;import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;public class OneInterceptor implements HandlerInterceptor {Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println(【OneInterceptor】preHandle...);return true;}Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println(【OneInterceptor】postHandle...);}Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println(【OneInterceptor】afterCompletion...);} }spring_mvc配置拦截器器 mvc:interceptors--bean classcom.niyin.interceptor.OneInterceptor/bean/mvc:interceptors--结论拦截器会根据preHandle()方法返回值进行拦截判断返回了一个true值。这个返回值表示该拦截器已经处理了当前的请求并且可以继续向下传递请求。如果返回false则表示该拦截器不处理当前请求请求将被终止。 2.5.拦截器链 如果多个拦截器能够对相同的请求进行拦截则多个拦截器会形成一个拦截器链主要理解拦截器链中各个拦截器的执行顺序。拦截器链中多个拦截器的执行顺序根拦截器的配置顺序有关先配置的先执行。 案例 package com.niyin.interceptor;import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;public class TwoInterceptor implements HandlerInterceptor {Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println(【TwoInterceptor】preHandle...);return true;}Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println(【TwoInterceptor】postHandle...);}Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println(【TwoInterceptor】afterCompletion...);} }spring_mvc mvc:interceptors!--2) 多拦截器拦截器链--mvc:interceptormvc:mapping path/**/bean classcom.niyin.interceptor.OneInterceptor//mvc:interceptormvc:interceptormvc:mapping path/clz/**/bean classcom.niyin.interceptor.TwoInterceptor//mvc:interceptor/mvc:interceptors2.6登录案列权限控制 package com.niyin.web;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession;Controller public class LoginController {RequestMapping(/login)public String login(HttpServletRequest req){String uname req.getParameter(uname);HttpSession session req.getSession();if (zs.equals(uname)){session.setAttribute(uname,uname);}return redirect:/clz/list;}RequestMapping(/logout)public String logout(HttpServletRequest req){req.getSession().invalidate();return redirect:/clz/list;} }package com.niyin.interceptor;import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;public class LoginInterceptor implements HandlerInterceptor {Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println(【implements】preHandle...);StringBuffer url request.getRequestURL();if (url.indexOf(/login) 0 || url.indexOf(/logout) 0){// 如果是 登录、退出 中的一种return true;} // 代表不是登录也不是退出 // 除了登录、退出其他操作都需要判断是否 session 登录成功过String uname (String) request.getSession().getAttribute(uname);if (uname null || .equals(uname)){response.sendRedirect(/page/login);return false;}return true;}Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {}Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {} }Sping_mvc mvc:interceptorsbean classcom.niyin.interceptor.LoginInterceptor/bean/mvc:interceptorsjsp %--Created by IntelliJ IDEA.User: 林墨Date: 2023/9/12Time: 23:14To change this template use File | Settings | File Templates. --% % page contentTypetext/html;charsetUTF-8 languagejava % html headtitle登录界面/title /head body form action/login methodpost用户input nameunameinput typesubmit/form /body /html
http://www.w-s-a.com/news/28810/

相关文章:

  • 企业网站推广方案在哪里智慧团建登录入口官网手机版
  • google网页版入口seo索引擎优化
  • 东乡做网站常州网络公司联系方式
  • 做网站激励语家居装饰网站设计论文
  • 镜像的网站怎么做排名无极网站建设质量
  • 奉贤集团公司网站建设小工具文本wordpress
  • 不用代码做网站网站建设和运行费用
  • 阜阳网站开发招聘网站建设合作协议申请
  • 电子配件 技术支持 东莞网站建设wordpress 生成html代码
  • 网站用免费空间好不好网站建设的视频
  • 网站开发项目职责门户资源分享网站模板
  • 建网站需要什么语言如何做二维码跳转到网站
  • 天津建设交培训中心网站做网站起名字
  • 黑河北京网站建设湛江市住房和城乡建设局网站
  • 网站建设拾金手指下拉十九企业查询官网
  • 邢台提供网站建设公司哪家好五合一建站
  • 京东网站设计代码驻马店做网站的公司
  • 织梦网站模板使用教程福州网站建设工作
  • 做网站要准备的需求asp 网站后台
  • 滨州网站开发公司中立建设集团有限公司网站
  • 泰安建设厅网站做网站为什么要建站点
  • 有什么好的手机推荐网站创建网站需要哪些工作
  • 网站能给企业带来什么上饶市网站建设公司
  • 学做网站卖东西去哪学南宁网站建设gxjzdrj
  • 欧美网站建设案例网站开发 男生
  • 网站正在开发中做电子元器件的网站
  • 做网站搭建的公司中国建设银行官网站u盾证书
  • 大连哪里有手机自适应网站建设公司网站介绍模板 html
  • 佛山模板建站宣传片制作公司电话
  • 文字网站居中能自己做网站接业务吗