当前位置: 首页> 娱乐> 影视 > 重庆制作网站培训_珠海软件开发公司_深圳优化公司排名_百度联盟广告点击一次收益

重庆制作网站培训_珠海软件开发公司_深圳优化公司排名_百度联盟广告点击一次收益

时间:2025/7/14 6:15:56来源:https://blog.csdn.net/nie6668888/article/details/144614782 浏览次数:0次
重庆制作网站培训_珠海软件开发公司_深圳优化公司排名_百度联盟广告点击一次收益

拦截器:

拦截不符合规则的,放行符合规则的。 等价于过滤器。

拦截器只拦截controller层API接口。

如何定义拦截器。

定义一个类并实现拦截器接口

public class MyInterceptor implements HandlerInterceptor {public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {//获取session对象HttpSession session=request.getSession();//获取session当前用户的信息Object userinfo = session.getAttribute("userinfo");if(userinfo==null){//没有登录,跳转到登录页面response.sendRedirect("/login.jsp");return false;}return true; //如果返回值为true,表示拦截器放行。否则,拦截器不放行}
}

注册拦截器并配置拦截规则--springmvc配置文件中

   <!--注册自定义拦截器以及拦截规则--><mvc:interceptors><mvc:interceptor><!--path:拦截的路径 /**表示拦截多层路径--><mvc:mapping path="/**"/><!--排除的路径。--><mvc:exclude-mapping path="/user/login"/><!--放置自定义的拦截器类--><bean class="com.aaa.interceptor.MyInterceptor"/></mvc:interceptor></mvc:interceptors>

全局异常处理

如果controller发生异常,我们需要对controller层中的所有方法都进行处理。这样比较麻烦。我们可以对所有controller中的接口提供一个统一的异常处理。

定义全局异常类

//全局异常处理类.
@ControllerAdvice
public class MyGlobalException {@ExceptionHandler(Exception.class) //当发生Exception类型的异常会执行该方法,并异常对象传递给该方法的参数。@ResponseBodypublic String handlerException(Exception e){System.out.println(e.getMessage());System.out.println("错误~~~~~~~~~~~~~~~~~~~~~~~~~");return "error2222222222222222222222";//经过视图解析器: /views/error.jsp}@ExceptionHandler(ArithmeticException.class)@ResponseBodypublic String handlerArithmeticException(Exception e){System.out.println("错误****************************");return "error2222222222222222222";}
​
}
​

注意:保证springmvc能够扫描到该异常处理类

function loadEmp(){$.ajax({url:"/emp/list",type:"get",dataType:"json",//服务器响应成功success:function(data){console.log(data)var str="";for(var i=0;i<data.length;i++){str+="<tr>"str+="<td>"+data[i].empId+"</td>"str+="<td>"+data[i].empName+"</td>"str+="<td>"+data[i].empJob+"</td>"str+="<td>"+data[i].empSalary+"</td>"str+="<td>"+data[i].dept.deptName+"</td>"str+="<td><a οnclick='deleteEmp("+data[i].empId+")'>删除</a><a οnclick='/views/update.jsp'>修改</a></td>"str+="</tr>"
​}document.getElementById("empBody").innerHTML=str;},//服务器响应故障error: function (data){console.log(data);}})}

文件上传

原理

完成文件上传--本地服务器保存

引入文件上传的依赖jar

    <!--文件上传依赖--><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.5</version></dependency>

配置文件上传解析器

 <!--文件上传解析器--><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><!--最大上传的大小。单位byte字节。5M=5*1024*1024--><property name="maxUploadSize" value="5242880"/><!--设置文件上传的编码--><property name="defaultEncoding" value="utf-8"/></bean>

编写文件上传的页面

   <%--文件上传的表单提交方式必须为post.而且需要设置表单提交的编码格式。enctype="multipart/form-data" 该类型表示既能上传文本又能上传文件。--%><form action="/upload" method="post" enctype="multipart/form-data">选择文件:<input type="file" name="myfile"/><br>姓名:<input type="text" name="username"/><br><input type="submit"/></form>

编写上传的api接口

  @RequestMapping("/upload")public String upload(MultipartFile myfile, HttpServletRequest request) throws IOException {//1.获取保存文件的路径String realPath = request.getSession().getServletContext().getRealPath("/images");//2.根据上面的路径创建文件对象File file=new File(realPath);//3.判断该文件夹是否存在if(!file.exists()){file.mkdirs();}//4.获取上传文件的名称. 获取登录者ip+登录者id+登录者的时间戳String filename = UUID.randomUUID().toString().replace("-","")+myfile.getOriginalFilename();//5.把上传的文件保存到指定服务器下的路径。File target=new File(realPath+"/"+filename);myfile.transferTo(target);System.out.println("上传成功");return "main";}

完成文件上传--文件保存到文件服务器

如果把文件存在本地服务器,服务器与服务器之间无法共享文件。我们需要一个专门存放文件的服务器。

可以自己搭建文件服务器[FastDFS Hadoop] 或者租第三方阿里云。

关键字:重庆制作网站培训_珠海软件开发公司_深圳优化公司排名_百度联盟广告点击一次收益

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: