throws

SpringBoot2.0 整合 SpringSecurity 框架,实现用户权限安全管理

匿名 (未验证) 提交于 2019-12-02 23:57:01
本文源码: GitHub・点这里 || GitEE・点这里 一、Security简介 1、基础概念 Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring的IOC,DI,AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为安全控制编写大量重复代码的工作。 2、核心API解读 1)、SecurityContextHolder 最基本的对象,保存着当前会话用户认证,权限,鉴权等核心数据。SecurityContextHolder默认使用ThreadLocal策略来存储认证信息,与线程绑定的策略。用户退出时,自动清除当前线程的认证信息。 初始化源码:明显使用ThreadLocal线程。 private static void initialize() { if (!StringUtils.hasText(strategyName)) { strategyName = "MODE_THREADLOCAL"; } if (strategyName.equals("MODE_THREADLOCAL")) { strategy = new ThreadLocalSecurityContextHolderStrategy(); }

SpringMVC统一的异常处理

匿名 (未验证) 提交于 2019-12-02 23:43:01
统一的异常处理 在springmvc的开发中,肯定会遇到各种各样的异常需要处理,如果每个异常都单独处理,系统的代码耦合性高,工作量大,维护困难。 Luckly,SpringMVC能将所有类型的异常从各层提取出来保障了相关处理过程的功能单一。 对于实现这种功能,SpringMVC有三种方法: 简单异常处理器SimpleMappingExceptionResolver: 1.首先在exception包中创建自定义异常类MyException为后面抛出自定义异常作准备: @Repository ( "testExceptionDao" ) public class TestExceptionDao { public void daodb ( ) throws Exception { throw new SQLException ( "Dao中数据异常" ) ; } public void daomy ( ) throws Exception { throw new MyException ( "Dao中自定义异常" ) ; } public void daono ( ) throws Exception { throw new Exception ( "Dao中未知异常" ) ; } } 2.在service包中创建service的三种类型的异常,还有dao层的三种异常:

后台对Json数据加密、解密

匿名 (未验证) 提交于 2019-12-02 23:40:02
1、工具类 package com.abc.er.util; import org.apache.commons.codec.binary.Base64; import javax.crypto.*; import javax.crypto.spec.SecretKeySpec; import java.security.SecureRandom; public class AesUtil { public static void main(String[] args) throws Exception { // aes + base --> aes + base String content = "{\"mac\":\"123\",\"idfa\":\"123\",\"clientIp\":\"456\",insertTime\":\"test\"}"; System.out.println("加密内容:" + content); String key = "123abc"; System.out.println("加密密钥和解密密钥:" + key); String encrypt = aesEncrypt(content, key); System.out.println("加密后:" +encrypt); String decrypt = aesDecrypt

Inheritance , method signature , method overriding and throws clause

北慕城南 提交于 2019-12-02 21:58:13
My Parent class is : import java.io.IOException; public class Parent { int x = 0; public int getX() throws IOException{ if(x<=0){ throw new IOException(); } return x; } } I extend this class to write a subclass Child : public class Child1 extends Parent{ public int getX(){ return x+10; } } Notice while overriding the getX method in the Child class , I have removed the throws clause from the method definition .Now it results in an anomalous behavior by the compiler which is expected : new Parent().getX() ; does not compile without enclosing it in a try-catch block , as expected . new Child()

Jquery实现省市联动

匿名 (未验证) 提交于 2019-12-02 21:53:52
JqProvinceServlet: public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { response.setContentType( "text/html;charset=UTF-8" ); request.setCharacterEncoding( "UTF-8" ); JqProvinceCityService jqProvinceCityService = new JqProvinceCityService(); List<Province> list = jqProvinceCityService.findProvince(); request.setAttribute( "list" , list); request.getRequestDispatcher( "/JQ_province_city/JQ_province_city.jsp" ).forward(request, response); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }

Java学习---异常处理的学习

匿名 (未验证) 提交于 2019-12-02 21:53:52
基础知识 在Java语言中, 大部分错误和异常都可以被抛出. 异常情况被分为异常类Exception和错误类Error , 其中错误类表示严重的错误, 直接由Java系统处理.错误和异常分为3类: l 输入错误: 主要指用户输入的数据格式, 没有按规定的形式输入 l 设备错误是不可预知的, 且不可避免 l 程序代码出错是因为程序设计和编写时候出现的考虑不全面引起的 Java的异常处理是通过3个关键词来实现的:try-catch-finally 。用try来执行一段程序,如果出现异常,系统抛出(throws)一个异常,可以通过它的类型来捕捉(catch)并处理它,或最后(finally)由缺省处理器来处理。 1 Try{ 2 exception_method; 3 } catch (Exception1 e){ 4 dealWith1; 5 }[ catch (Exception2 e){ 6 dealWIth2; 7 }][ finally { 8 method; 9 }] 10 在异常对象抛出时,使用到两个关键字分别是:throws和throw,其中throw用于语句中抛出异常对象,例如: 11 Exception e = new Exception(“MyException”); 12 throw e; 13 或 14 throw new Exception(

JDBCUtils工具类(转)

匿名 (未验证) 提交于 2019-12-02 21:53:52
JdbcUtils.java import java.sql.Connection; import java.sql.SQLException; import javax.sql.DataSource; import com.mchange.v2.c3p0.ComboPooledDataSource; /** * 依赖: * + c3p0-config.xml * + c3p0-0.9.2-pre1.jar * + mchange-commons-0.2.jar * 版本1.3 * 更新日期:2018/07/03 * @author CeoBai * */ public class JdbcUtils { //ComboPooledDataSource(String configName)的参数configName指的是配置文件c3p0-config.xml中的 <named-config name="mysql">...</named-config> //如果没有输入configName参数,那么就采用默认的<default-config>...</defalut-config>,那么就可以为空不传参数 private static ComboPooledDataSource dataSource = new ComboPooledDataSource("mysql");

Java中BufferedWriter类的常用方法

匿名 (未验证) 提交于 2019-12-02 21:53:52
BufferedWriter:字符缓冲输出流 构造方法 BufferedWriter(Writer out) : 默认缓冲区大小构造字符缓冲输出流对象 BufferedWriter(Writer out,int size): 指定缓冲区大小 常用方法 public void write(int c) throws IOException 写入单个字符。 c - 指定要写入字符的 int。 public void write(String str) throws IOException 写入字符串。 str - 要写入的字符串 public void close() throws IOException 关闭此流,但要先刷新它。 特有方法 public void newLine() throws IOException 写入一个行分隔符。 程序示例 public static void main(String[] args) throws Exception { //创建一个字符缓冲输出流对象 BufferedWriter bw = new BufferedWriter(new FileWriter("bw.txt")) ; //写数据 bw.write("hello"); bw.write("world"); //刷新流 bw.flush(); //关闭资源 bw.close();

java文件调用读写

匿名 (未验证) 提交于 2019-12-02 21:53:52
FileInputStream 该流用于从文件读取数据,它的对象可以用关键字 new 来创建。 有多种构造方法可用来创建对象。 可以使用字符串类型的文件名来创建一个输入流对象来读取文件: InputStream f = new FileInputStream ( " C:/java/hello " ) ; 也可以使用一个文件对象来创建一个输入流对象来读取文件。我们首先得使用 File() 方法来创建一个文件对象: File f = new File ( " C:/java/hello " ) ; InputStream out = new FileInputStream ( f ) ; 创建了 InputStream 对象,就可以使用下面的方法来读取流或者进行其他的流操作。 序号 方法及描述 1 public void close() throws IOException{} 关闭此文件输入流并释放与此流有关的所有系统资源。抛出 IOException 异常。 2 protected void finalize() throws IOException {} 这个方法清除与该文件的连接。确保在不再引用文件输入流时调用其 close 方法。抛出 IOException 异常。 3 public int read (int r)throws IOException{} 这个方法从

Java异常处理总结

匿名 (未验证) 提交于 2019-12-02 21:53:32
异常 (Exception):发生于程序执行期间,表明出现了一个非法的运行状况。许多JDK中的方法在检测到非法情况时,都会抛出一个异常对象。 例如:数组越界和被0除 异常处理的目的是依据实际情况提供不同的错误应对策略与手段,使程序更稳定,更安全。 异常处理的主要用途是提供准确的错误消息,解释失败的原因、位置和错误类型等,同时提供一定的恢复能力,尽可能地保证数据完整性不被破坏,并让程序能继续运行。 Java中的异常捕获语句: Try{ } } finally{ } Java 中所有可捕获的异常都派生自 Exception 类。 使用Java异常处理机制: 1.把可能会发生错误的代码放进try语句块中。 2.当程序检测到出现了一个错误时会抛出一个异常对象。异常处理代码会捕获并处理这个错误。 catch语句块中的代码用于处理错误。 3.当异常发生时,程序控制流程由try语句块跳转到catch语句块。 4.不管是否有异常发生,finally语句块中的语句始终保证被执行。 5.如果没有提供合适的异常处理代码,JVM将会结束掉整个应用程序。 Java中的异常分类: 另一个著名的Error――OOM Error: 1.在Android应用(它也使用Java开发)中,我们会经常碰到另一个Error,是 “OutOfMemoryError”,表示系统内存不足,这个Error简写为“OOM Error