java web
张纸
Android开发的狂热爱好者,欢迎一起交流学习
展开
-
【ssm入门#9-SpringMVC】IDEA专业版配置Tomcat+Tomcat控制台乱码+搭建javaweb项目+常用注解+请求参数绑定+过滤器防乱码+自定义格式转换+
本文基于下述教程编写:【B站】ssm教程持久层Mybatis以及服务层Spring5学习结束,今天开始正式进入表现层SpringMVC的学习。IDEA配置Tomcat原创 2020-09-18 21:03:08 · 358 阅读 · 0 评论 -
【ssm入门#8-Spring5】Spring的JdbcTemplate基本用法+抽取Dao中变量声明及set方法+IOC、AOP的CRUD应用+声明式事务(XML+注解配置)+JDK版本简单性能测试
本文基于下述教程编写:【B站】ssm教程在上一天只是实现了AOP的简单配置,模拟了业务逻辑,并没有真正操作数据库修改数据。也就是没有真正地把AOP用上场。Spring的JdbcTemplate基本用法先来学学简单使用Spring提供的简单数据库操作类:JdbcTemplate<dependencies> <dependency> <groupId>junit</groupId> <artifactId>jun原创 2020-08-19 21:53:43 · 224 阅读 · 0 评论 -
【ssm入门#7-Spring5】事务控制+动态代理增强事务控制方式+Spring AOP实现方法增强(切片表达式、通知类型)+纯注解配置AOP
本文基于下述教程编写:【B站】ssm教程事务控制事务要满足四大特性:原子性、一致性、隔离性、持久性。AB之间的转账操作一定要满足数据库金额总额不变的条件。因此,事务控制就很有必要。否则一整个转账操作只是多个Dao操作,遇到异常基本导致后续无法执行,并且数据库已经遭到修改,这时候整个操作的事务回滚特别重要。还有想要控制事务,只能够向当前线程提供一个连接Connection,我们应该准备一个事务控制类、一个获取连接工具类分离两个业务逻辑。事务控制类TransactionManager:/** *原创 2020-08-02 23:04:39 · 294 阅读 · 0 评论 -
【ssm入门#6-Spring5】注解方式实现IOC:注解XML交叉运用+纯注解+整合junit测试
本文基于下述教程编写:【B站】ssm教程@Component他们三个注解都是针对一个的衍生注解,他们的作用及属性都是一模一样的。 他们只不过是提供了更加明确的语义化。@Controller:一般用于表现层的注解。@Service:一般用于业务层的注解。@Repository:一般用于持久层的注解。@Autowired作用:自动按照类型注入。当使用注解注入属性时,set方法可以省略。它只能注入其他 bean 类型(非基本类型及String)。当有多个类型匹配时,使用要注入的对象变量名称作为 b原创 2020-07-26 00:33:00 · 212 阅读 · 0 评论 -
【ssm入门#5-Spring5】IOC控制反转降低耦合核心思想:工厂模式配置文件解耦+ApplicationContext找不到getBean()方法+bean标签和管理对象细节+依赖注入各数据类型
本文基于下述教程编写:【B站】ssm教程工厂模式解耦思想简单应用,实现业务层和持久层解耦:public class BeanFactory { //加载配置文件操作类 private static Properties props = null; //存放已经生成好的实例对象的容器 private static Map<String, Object> beans = null; static { try {原创 2020-07-21 18:31:58 · 220 阅读 · 0 评论 -
【ssm入门#4-MyBatis】延迟加载(一对一、一对多)+缓存机制(一级缓存、二级缓存)+注解开发(CRUD、属性映射、一对一、一对多、接口中注解开启二级缓存)+IDEA:找不到主类错误
延迟加载一对一:在MyBatis中,一对一的实现是靠<association>标签实现的,设置第二步查询的入口属性column赋予参数,传递给select此属性指向的从表实体类的操作方法,即可实现。还要注意延迟加载<configuration> 下<environments>标签前设置延迟加载开关:<settings> <setting name="lazyLoadingEnabled" value="true"/>原创 2020-07-17 20:33:01 · 178 阅读 · 0 评论 -
【ssm入门#3-MyBatis】动态SQL语句标签使用+多表查询(一对一、一对多、多对多)
本文基于下述教程编写:【B站】ssm教程动态标签语句MyBatis提供了动态拼接SQL语句的功能配置,根据传入对象信息有无,动态拼接SQL语句实现查询。<if>、<where>标签,另外<foreach>标签可实现集合中取值。<select id="findByCondition" resultType="com.ssmTest.domain.User" parameterType="com.ssmTest.domain.User"> sele原创 2020-07-15 19:21:11 · 493 阅读 · 0 评论 -
【ssm入门#2-MyBatis】基本CRUD操作(需要注意的小细节)+ resultMap修改映射+junit集成测试+主配置文件数据库配置信息解耦+主配置文件实体类起别名
本文基于下述教程编写:【B站】ssm教程MyBatis基本CRUD操作就常用的配置文件IUserDao.xml代理实现DAO实现类方法来讲:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapp原创 2020-07-12 03:38:23 · 195 阅读 · 0 评论 -
【ssm入门#1-MyBatis】新手IDEA创建Maven项目问题:Maven安装和配置+搭建依赖+Mybatis支持实现Dao实现类的三种方式
本文基于下述教程编写:【B站】ssm教程新手IDEA创建Maven项目问题关于P5的添加mybatis依赖一直爆红的原因,修改pom.xml后你都要到主界面最竖着写的右侧找到Maven,点击打开——刷新,IDEA才能下载依赖包。或者直接点击代码界面突然冒出来的悬浮按钮Load Maven Changes。但是我遇到一个问题,完全按照老师的操作,也是卡在Resolving dependencies of XXX......没法结束进度条。至于为什么会出现这种情况?希望有大佬能解答一下鄙人疑惑。(猜测墙子原创 2020-07-09 22:40:35 · 226 阅读 · 0 评论 -
【JAVA EE#6】【传智书城·源码阅读】后台管理模块:权限控制+页面分析+商品管理+销售榜单+订单管理+公告管理+项目结构思维导图
权限控制普通用户只能访问client文件夹下面的jsp文件,对于没有权限操作的admin文件夹就会提示错误,而超级用户同时可以访问两者,一直很好奇这个权限限制怎么实现的。原来在存在一个AdminPrivilegeFilter类继承自过滤器Fliter,获取Session的role属性对此进行的管制:// 1 强制转换 HttpServletRequest request = (HttpServletRequest) req; HttpServletResponse response = (H原创 2020-07-02 22:52:05 · 3994 阅读 · 2 评论 -
【JAVA EE#5】【传智书城·源码阅读】购物车模块:购书流程+分页显示+自定义jsp标签进行安全检查+js倒计时简单实现
购书流程本模块业务逻辑:jsp文件分析product_list.jsp是点击分类默认显示的布局,而product_search_list.jsp是搜索结果页面布局,是内容主要是以下红线框住部分,特点:分类条件显示(只有product_list.jsp是,product_search_list.jsp该处统一“全部商品”)、动态显示对应分类或者查询图书结果条数、动态显示书名售价及封面、分页显示的实现。product_list.jsp页面显示:product_search_list.jsp页面显示原创 2020-06-27 18:17:57 · 2770 阅读 · 0 评论 -
【JAVA EE#4】【传智书城·源码阅读】首页逻辑:页面头部登陆前后不同状态+分类显示图书+搜索查询图书+轮播图+本周热卖推荐+公告展示
主要逻辑:页面头部登陆前后不同状态登陆前后主要区别体现在首页的头部:登录前,右上角最后一个为新用户注册,下面并无登陆者信息:登陆后,右上角最后一个为退出登录,下面同时显示登陆者信息:jsp中实现原理:<% User user = (User) request.getSession().getAttribute("user");if(null == user){%>| <a href="${pageContext.request.contextPath}/clien原创 2020-06-25 03:18:25 · 2140 阅读 · 1 评论 -
【JAVA EE#3】【传智书城·源码阅读】注册模块:注册激活流程+javax.mail邮件发送+BeanUtils封装
注册激活流程:为了验证用户注册邮箱的真实性,在页面完成注册操作后账号默认未激活,需要在24小时内访问邮件内的地址激活该账号状态。上图描述了具体操作逻辑。讲一讲一些有意思的东西,那些奇怪有需要注意的地方:突如其来的jstl报错,其实在项目依赖里有这么一个依赖包jstl-1.2-sources.jar,虽然已经放进了项目Build path里面,但是tomcat服务器不能识别,只能再次把包复制到D:\Tomcat7.0\apache-tomcat-7.0.104\lib,问题解决,这种问题出现了不少次原创 2020-06-20 21:09:05 · 2551 阅读 · 5 评论 -
【JAVA EE#2】【传智书城·源码阅读】登录模块:c3p0连接数据库+DButils写Dao实现数据库存储+QueryRunner使用套路
本来想自己按着书本项目来做一遍的,在阅读代码时,无奈代码量实在太多而且没有详尽的指导,层次相当复杂,自己不清楚原理,不明白架构,对我自己来讲不会就不能硬着头皮上,所以做项目变成了源码阅读尴尬了。导包配置步骤:在画思维导图的时候,首要的就是数据库操作,源码利用了c3p0的连接方式,首先要明确用到的四个类--jdk自带的类javax.sql.DataSourcejava.lang.ThreadLocal<Connection>--apache dbutils工具类org.apache原创 2020-06-19 21:35:53 · 1233 阅读 · 0 评论 -
【JAVA EE#1】【传智书城·源码阅读】乱码+servlet生成web.xml问题+servlet获取同表单多按钮+结果集Result+Workbench无法修改+表单映射路径&重定向映射路径
1. servlet中解决的乱码问题。编码方式主要集中在jsp文件头编码和servlet的Respond编码的设置上,两次编码缺一不可,respond接收到消息体会进行一次编码,之后的内容会传递给浏览器,其再通过网页文件头指定的格式进行解码显示,如果Respond编码出错,内容就乱码了,无论浏览器是否解码正确都无法还原消息体内容。//设置httpServletResponse编码,特别在post请求中,传过来的数据非常必要进行编码response.setCharacterEncoding("utf-8原创 2020-06-08 14:45:24 · 525 阅读 · 0 评论