JAVAWeb项目 微型商城项目-------(三)导包及工具类的准备
1.导包
数据库驱动包
c3p0数据库池包 --CRDU
Servlet核心包
日志记录包
2.工具类的准备
JDBCUtil 数据库连接类
public class JDBCUtil {static ComboPooledDataSource dataSource = null;static {dataSource = new ComboPooledDataSource();}/*** 获取连接对象* @return* @throws SQLException */public static Connection getConn() throws SQLException {System.out.println("数据库连接成功");Connection conn = dataSource.getConnection();System.out.println("取得conn对象");return conn;}/*** 释放资源* @param conn* @param st* @param rs*/public static void release(Connection conn, Statement st, ResultSet rs) {closeRs(rs);closeSt(st);closeConn(conn);}public static void release(Connection conn, Statement st) {closeSt(st);closeConn(conn);}private static void closeRs(ResultSet rs) {try {if (rs != null) {rs.close();}} catch (SQLException e) {e.printStackTrace();} finally {rs = null;}}private static void closeSt(Statement st) {try {if (st != null) {st.close();}} catch (SQLException e) {e.printStackTrace();} finally {st = null;}}private static void closeConn(Connection conn) {try {if (conn != null) {conn.close();}} catch (SQLException e) {e.printStackTrace();} finally {conn = null;}}
}
网址生成类
/*** * @ClassName: BasePath * @Description:TODO(返回输入的网址) * @author: kiko * @date: 2018年6月25日 上午9:36:55 * * @Copyright: 2018*/
public class BasePath {/*** * @Title: getBasePath * @Description: TODO(这里用一句话描述这个方法的作用) * @param: @param request* @param: @return * @return: String 返回类容 http://xxx/项目名称/* @throws*/public static String getBasePath(HttpServletRequest request) {String path = request.getContextPath();String basePath = request.getScheme() + "://" + request.getServerName() + ":"+ request.getServerPort() + path;return basePath;}
}
利用过滤器解决中文乱码
/*** * @ClassName: EncodingFilter* @Description:TODO(处理中文错误过滤器)* @author: kiko* @date: 2018年6月23日 下午10:45:15* * @Copyright: 2018*/
/** * 使用注解标注过滤器 (web.xml就无需配置)* @WebFilter将一个实现了javax.servlet.Filte接口的类定义为过滤器 * 属性filterName声明过滤器的名称,可选 * 属性urlPatterns指定要过滤 的URL模式,也可使用属性value来声明.(指定要过滤的URL模式是必选属性) */
@WebFilter(filterName = "EncodingFilter", urlPatterns = "/*") // 过滤设置
public class EncodingFilter implements Filter {@Overridepublic void init(FilterConfig FilterConfig) throws ServletException {System.out.println("过滤器开始工作");}@Overridepublic void doFilter(ServletRequest Request, ServletResponse Response, FilterChain Chain)throws IOException, ServletException {System.out.println("过滤器正在过滤");Request.setCharacterEncoding("utf-8");Chain.doFilter(Request, Response);Response.setCharacterEncoding("utf-8");}@Overridepublic void destroy() {System.out.println("过滤器结束工作");}}
验证工具类
/*** * @ClassName: VakidateUtil * @Description:TODO(验证工具类:数据是否为空,数据正则判断,两个数据是否相同) * @author: kiko * @date: 2018年6月24日 下午1:19:45 * * @Copyright: 2018*/
public class VakidateUtil {/*** * @Title: VakidateEmpty * @Description: TODO(验证输入数据是否为空) * @param: @param data 字符串* @param: @return * @return: boolean 如果不是null 返回true * @throws*/public static boolean VakidateNoEmpty(String data) {if (data == null || "".equals(data)) {return false;}return true;}/*** * @Title: VakidateRegex * @Description: TODO(验证正则) * @param: @param data 字符串* @param: @param regex 正则表达式* @param: @return * @return: boolean 符合正则返回true* @throws*/public static boolean VakidateRegex(String data, String regex) {if (VakidateNoEmpty(data)) {return data.matches(regex);}return false;}/*** * @Title: Vakidatesame * @Description: TODO(验证数据是否相同,不区分大小写) * @param: @param data1* @param: @param data2* @param: @return * @return: boolean 相同返回true * @throws*/public static boolean Vakidatesame(String data1, String data2) {if (VakidateNoEmpty(data1) && VakidateNoEmpty(data2)) {return data1.equalsIgnoreCase(data2);}return false;}
}
MD5生成工具类
/*** * @ClassName: MD5Code * @Description:TODO(MD5生成工具类) * @author: kiko * @date: 2018年6月23日 下午4:44:42 * * @Copyright: 2018* apache commones Codec包中有常用的一些加密算法实现*/
public class MD5Code {/** 16进制的字符数组 */private final static String[] hexDigits ={"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"};/*** * * @param source* 需要加密的字符串* @return result MD5加密后的字符串*/public static String MD5Encode(String source) {String result = null;try {result = source;// 获得MD5对象MessageDigest messageDigest = MessageDigest.getInstance("MD5");// 使用指定的字节数组更新摘要信息messageDigest.update(result.getBytes("UTF-8"));// messageDigest.digest()获得16位长度result = byteArrayToHexString(messageDigest.digest());} catch (Exception e) {e.printStackTrace();}return result;}/*** 转换字节数组为16进制字符串* * @param bytes 字节数组* * @return 16进制的字符串*/private static String byteArrayToHexString(byte[] bytes) {StringBuilder stringBuilder = new StringBuilder();for (byte tem : bytes) {stringBuilder.append(byteToHexString(tem));}return stringBuilder.toString();}/*** 将一个字节转换为16进制的字符串* * @param b 要转换的byte * * @return 16进制对应的字符*/private static String byteToHexString(byte b) {int n = b;if (n < 0) {n = 256 + n;}int d1 = n / 16;int d2 = n % 16;return hexDigits[d1] + hexDigits[d2];}
JAVAWeb项目 微型商城项目-------(三)导包及工具类的准备相关推荐
- Idea一键自动导包设置--导入类中所有包?教你自动更新类中包含的包
在日常的拷贝复用代码中,导包的重复性工作非常繁琐,在这里分享一个idea设置. 动态效果演示: Idea一键自动导包设置--导入类中所有包?教你自动更新类中包含的包 操作步骤: File-->S ...
- java.lang包有哪些类_Java中Lang包的工具类有哪些
Java中Lang包的工具类有哪些 发布时间:2020-12-08 16:15:36 来源:亿速云 阅读:76 作者:Leah 今天就跟大家聊聊有关Java中Lang包的工具类有哪些,可能很多人都不太 ...
- 「newbee-mall新蜂商城开源啦」SpringBoot+MyBatis开发JavaWeb线上商城项目
我的想法很简单,就是做一个大家都能运行的商城项目,而不是缺胳膊少腿的项目,不求有多么完善,也不求有多少技术栈,我目前的想法就是大家都可以运行它.使用它,至于完善它嘛,给我点时间哈. 本项目开源地址: ...
- 基于SpringBoot的项目:商城项目
1)该博客内容为B站UP主的免费课程,想直接学习该视频的可以点击:传送门.这位老师讲解得很细致. 2)该课程的文档和源码的下载链接为:传送门. 3)本文博客的markdown资源的下载链接为:传送门. ...
- java byte 拓展_Java项目中如何扩展第三方jar包中的类?
有些时候你对第三方得到jar包中的类并不是很满意,想根据实际情况做一些扩展.如果说第三方的jar包已经提供了一些可扩展的类,比如提供了Interceptor,Filter或者其他的类,那么使用原生的比 ...
- SpringBoot项目电脑商城项目实战(适合刚学完SpringBoot的初学者)
今天来分享一个SpringBoot项目,该项目是哔哩哔哩袁庭新老师讲的springboot电脑商城项目,里面的东西涉及到很多基础,统一异常处理,统一结果集返回,登录注册,上传文件等. 另外项目里使用的 ...
- 客快物流大数据项目(五十六): 编写SparkSession对象工具类
编写SparkSession对象工具类 后续业务开发过程中,每个子业务(kudu.es.clickhouse等等)都会创建SparkSession对象,以及初始化开发环境,因此将环境初始化操作封装成工 ...
- Apache Commons包 StringUtils工具类深入整理(转载)
[转载地址]:cnblogs.com/sealy321/p/10227131.html 字符串是在程序开发中最常见的,Apache Commons开源项目在org.apache.commons.lan ...
- collectionutils包_CollectionUtils工具类的常用方法
CollectionUtils在真实项目中,是一个非常好用的工具类,使用非常频繁.它可以使代码更加简洁和安全.刚好在工作中利用这个工具类重构代码,顺便总结下分享分享: 并集 @Test public ...
- java jdbc工具类抽取_JavaWeb入门(三):JDBC工具类的抽取
一.通过上篇文章,我们已经可以使用JDBC对数据库中的表进行增删改查啦(JDBC的基本使用:https://www.cnblogs.com/Infancy/p/12499806.html),我们对上篇 ...
最新文章
- fsum函数测试以及分析
- java服务端同时接收和发送_如何实现客户端接收数据和发送数据的同步?
- 网站优化之如何才能防止域名被恶意指向?
- Leetcode 189. 旋转数组 (每日一题 20210909)
- P4316 绿豆蛙的归宿 期望dp + DAG
- 《编程之美》1.9:高效率的安排见面会的一个解法
- python函数回顾:abs()
- qtcreator中常用快捷键总结
- 【论文解读】UniLM:一种既能阅读又能自动生成的预训练模型
- [RMQ] [线段树] POJ 3368 Frequent Values
- AutoCAD2020线型比例修改
- cvEqualizeHist() 直方图均衡化(单通道)
- java可以进行爬虫吗_java能写爬虫程序吗
- java设计文件查重,【java】查重类的实现
- 什么是d.ts文件,它是不是typescript文件?
- HDU-1567-A/B——算法笔记
- CC2530模块进行ZigBee实验小结
- 2021年南非经济发展研究报告
- S7-1200PLC 基于以太网的TCP通信
- iphonex正面图_iPhoneX高清全方位图赏
热门文章
- SCCM部署前的IIS、WSUS等准备
- hive Beeline plus HiveServer2简单使用
- Windows下Node.js安装Canvas插件
- matlab linux 中文显示问题解决办法
- 阻止系统自动睡眠的小软件,附C#制作过程
- 7.企业安全建设入门(基于开源软件打造企业网络安全) --- 蜜罐与攻击欺骗
- 7. PHP Xhprof
- 16.PHP脚本的执行
- php中的几个判断文件和目录的函数 is_file() is_dir() mkdir() file_exists()
- svn对项目权限进行管理