自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Sun的个人博客

一个爱敲代码的大学生

  • 博客(120)
  • 收藏
  • 关注

原创 实现SpringMVC底层机制(一)

*** 用于标识一个Controller* @author 孙显圣*/ @Target(ElementType . TYPE) //作用于类型 @Retention(RetentionPolicy . RUNTIME) //作用范围 @Documented public @interface Controller {/*** 用于标识一个Controller* @author 孙显圣。

2024-04-26 21:42:09 603

原创 实现SpringMVC底层机制(二)

*** @author 孙显圣*/return id;return age;/*** 自定义注解,用于标识一个service* @author 孙显圣*/ @Target(ElementType . TYPE) //作用于目标是类 @Retention(RetentionPolicy . RUNTIME) //作用范围 @Documented public @interface Service {/**

2024-04-26 21:40:57 1204 6

原创 实现SpringMVC底层机制(一)

*** 用于标识一个Controller* @author 孙显圣*/ @Target(ElementType . TYPE) //作用于类型 @Retention(RetentionPolicy . RUNTIME) //作用范围 @Documented public @interface Controller {/*** 用于标识一个Controller* @author 孙显圣。

2024-04-26 21:39:55 630 1

原创 SpringMVC基础篇(四)

点击跳转到自定义视图解析器

2024-04-25 21:58:00 882 2

原创 SpringMVC基础篇(三)

【代码】SpringMVC基础篇(三)

2024-04-25 21:56:25 856

原创 SpringMVC基础篇(二)

-配置HiddenHttpMethodFilter--> <!--把post方式提交的delete和put请求进行转换--> < filter > < filter-name > HiddenHttpMethodFilter </ filter-name > < filter-class > org.springframework.web.filter.HiddenHttpMethodFilter </ filter-class > </ filter > <!

2024-04-24 22:41:00 1593 6

原创 SpringMVC基础篇(一)

服务器启动则自动装载这个servlet,实例化servlet,调用init方法,读取spring配置文件--配置中央控制器-->

2024-04-24 22:39:20 957

原创 实现Spring底层机制(三)

实现Spring底层机制(三)

2024-04-23 22:10:39 900

原创 实现Spring底层机制(二)

*** 记录bean定义的信息{1.scope 表示单例还是多例 2.clazz 表示bean的Class对象,方便多例的时候创建实例}* @author 孙显圣*///单例或多例//Class对象@Override'}';import com/*** 类似于Spring原生的ioc容器* @author 孙显圣//传进来一个配置类的Class对象 private Class configClass;

2024-04-23 22:07:16 355

原创 实现Spring底层机制(阶段1—编写自己的Spring容器,扫描包,得到bean的Class对象)

这个SmartDog在init之后变成了代理对象,原因是这个类的方法被切面切入了,所以会通过后置处理器返回代理对象/*** 容器扫描的注解:通过value可以指定要扫描的包/*** 容器扫描的注解:通过value可以指定要扫描的包/*** 容器扫描的注解:通过value可以指定要扫描的包/*** 容器扫描的注解:通过value可以指定要扫描的包Retention;/*** 容器扫描的注解:通过value可以指定要扫描的包。

2024-04-22 22:14:26 530 2

原创 声明式事务

可以理解为将方法1和方法2的事务功能去掉了,将方法1和方法2的代码合并交给Tx事务管理具体例子方法1出错:方法1和方法2和Tx事务全部回滚方法2出错:方法1和方法2和Tx事务全部回滚Tx事务出错(除了方法1和方法2的部分):方法1和方法2和Tx事务全部回滚@Transactional(timeout = 2) //设置超时回滚时间为2秒//查询两次商品的价格//减少用户的余额try {//设置4秒休眠时间。

2024-04-22 22:10:11 389

原创 JdbcTemplate

use spring;INSERT INTO monster VALUES(100, '青牛怪', '吐火');INSERT INTO monster VALUES(200, '黄袍怪', '吐烟');INSERT INTO monster VALUES(300, '蜘蛛怪', '吐丝');

2024-04-21 23:04:21 1673 5

原创 Spring-AOP

*** 计算数量的接口* @author 孙显圣*/*(访问修饰符(空格)返回类型)(空格)*(全类名/接口名/简单类名/简单接口名).*(方法名)(..)(参数类型)简称: 星 星点星(点点)访问修饰符和返回类型可以使用单个*****来表示任意的,必须满足中间有空格,比如 public * …使用简单类名/简单接口名则必须与切面类在同一个包下如果配置了接口类型,则包括接口对象的所有方法import org/*** @author 孙显圣。

2024-04-21 23:02:33 1159

原创 AOP基础-动态代理

【代码】AOP基础-动态代理。

2024-04-20 22:48:11 1242 8

原创 基于注解配置bean

import org/*** @Component 标识该类是一个组件,当不确定该类的层级的时候就使用这个注解* @author 孙显圣/*** @Component 标识该类是一个组件,当不确定该类的层级的时候就使用这个注解* @author 孙显圣/*** @Component 标识该类是一个组件,当不确定该类的层级的时候就使用这个注解* @author 孙显圣/*** 自定义注解:用于指定要扫描的包* @author 孙显圣。

2024-04-20 22:45:11 729

原创 基于XML配置bean(二)

-默认情况下是car5先创建,但是如果有depends-on绑定了car6,则在获取容器的时候是car6先创建--> < bean class = " com.sxs.spring.bean.Car " id = " car5 " depends-on = " car6 " /> < bean class = " com.sxs.spring.bean.Car " id = " car6 " />

2024-04-18 20:55:15 1395 3

原创 基于XML配置bean(一)

*** @author 孙显圣*/

2024-04-18 20:54:02 1643 2

原创 Spring容器结构

官网。

2024-04-17 22:28:16 1969 3

原创 Promise&模块化编程&ES6新特性

head><script>$.ajax({console.log("第一次请求得到的数据:", resultData);//如果成功获取数据则进行第二次请求$.ajax({${console . log("第一次请求得到的数据:" , resultData);//如果成功获取数据则进行第二次请求 $ . ajax({console . log("第二次请求得到的数据" , resultData);console . log("第一次请求得到的数据:" , resultData);

2024-04-17 22:26:46 800

原创 Vue(二)

点击次数={{count}}次</button><br><button v-on:click="add1">点击次数={{count1}}次

2024-04-16 21:38:18 777

原创 Vue(一)

-- 引入vue -->

2024-04-16 21:33:35 530

原创 家居网购项目(Ajax验证用户名+上传图片)

【代码】家居网购项目(Ajax验证用户名+上传图片)

2024-04-15 23:03:56 890

原创 家居网购项目(权限验证+事务管理)

【代码】家居网购项目(权限验证+事务管理)

2024-04-15 23:02:43 1062

原创 家居网购项目(订单功能)

文章目录1.生成订单1.需求分析2.程序框架图3.数据表设计1.订单表2.订单项表4.entity映射表1.Order.java2.OrderItem.java3.注意事项!!!mysql8中的datetime类型对应于java的LocalDateTime如果数据表使用的反引号声明,在操作的时候也要加上反引号5.编写dao层1.编写OrderDao2.编写OrderDaoImpl3.单元测试OrderDaoTest4.编写OrderIemDao5.编写OrderIemDaoImpl6.单元测试OrderIt

2024-04-14 23:16:44 746

原创 家居网购项目(购物车功能)

这个在其他情况下都适用,但是在模糊查询进入第一页时是不好使的,因为模糊查询,第一次查询到第一页的时候,有一个数据是post请求,也就是查到第一页的内容不仅仅需要url的部分,还需要这个name,所以只是向url发送请求是不足以返回这个第一页的。下面是我原来的逻辑,就是获取到请求方的url,然后再次向那个url发送请求即可返回原页面。这是我最后的解决方案,值得注意的是,在重定向的时候需要。

2024-04-14 23:15:24 8082 11

原创 家居网购项目(首页搜索+验证码)

【代码】家居网购项目(首页搜索+验证码)

2024-04-13 19:42:21 820

原创 家居网购项目(手写分页)

【代码】家居网购项目(手写分页)

2024-04-13 19:41:00 2180 6

原创 家居网购项目(三)

*** 添加家居并重新获取家居信息,请求转发到furn_manage.jsp*///使用BeanUtils工具类封装信息//使用工具类获取表单的输入信息,并使用反射将其封装到bean中,注意,name必须与bean的属性对应//插入到数据库//插入成功则重定向到家居显示的servlet} else {System.out.println("插入失败");

2024-04-13 00:01:52 634

原创 家居网购项目(二)

后端光获取了getRequestDispatcher,并没有使用forward转发。

2024-04-13 00:00:40 346

原创 家居网购项目(一)

没有在js中return false,阻止表单提交。

2024-04-11 22:52:47 1036

原创 Java-Web过滤器

/</</</</</</</</</</</</</</</</</</</</</</<//*** @author 孙显圣//通过filterConfig获取相关的参数 //1.获取filter的名字 String filterName = filterConfig . getFilterName();//2.获取filter配置参数 String ip = filterConfig . getInitParameter("ip");

2024-04-11 22:51:09 1095

原创 JavaWeb-监听器

/</</<//*** @author 孙显圣System . out . println("ServletContextAttributeListener监听到添加属性" + servletContextAttributeEvent . getName() + servletContextAttributeEvent . getValue());

2024-04-10 21:46:41 318

原创 Web路径专题

他们两个是互通的意思就是假如C类想要定位a.html,就可以使用相对路径这里的../虽然得到的是java目录下的资源,但是我说过了,他跟webapp是互通的,都称之为上下文路径。

2024-04-10 21:45:13 366

原创 Session

import sun/*** @author 孙显圣//获取session,并放值 HttpSession session = req . getSession();");writer . print("session设置成功");//关闭 writer . flush();} }/*** @author 孙显圣。

2024-04-09 22:31:19 657

原创 Cookie

*** @author 孙显圣//创建cookie,可以创建多个 Cookie cookie = new Cookie("sunxiansheng" , "18");//设置编码 resp . setContentType("text/html;writer . print("<h1>创建cookie成功</h1>");//关闭 writer . flush();//合二为一 } }/*** @author 孙显圣。

2024-04-09 22:30:28 929

原创 Servlet(二)

文章目录1.ServletConfig1.基本介绍2.应用实例1.DBServlet.java2.web.xml2.ServletContext1.为什么需要ServletContext2. 基本介绍3.ServletContext 可以做什么4.应用实例一_获取工程相关信息1.ServletContext.java2.web.xml3.结果5.应用实例二_完成简单网站访问计数器1.PayServlet.java2.OrderServlet.java3.WebUtils.java4.web.xml5.结果3

2024-04-08 21:49:24 664

原创 Servlet(一)

浏览器向Tomcat服务发送请求服务扫描所有类的全路径并且通过反射获取注解对象,从而得到urlPatterns(路由)将其与浏览器地址最后的/xxx比对,如果比对成功则调用init()方法和service()方法第二次就直接调用service()方法。

2024-04-08 21:48:38 1160

原创 手动实现Tomcat底层机制+自己设计Servlet

在Request.java中获取完参数顺便把inputStream关闭了,导致了Socket也一起关闭了,使得主线程在使用socket的时候出现了已经关闭的错误。

2024-04-06 22:19:43 1912 1

原创 ThreadLocal&上传下载文件

创建线程放入dog对象,调用T1Service的update()/*** @author 孙显圣*///创建ThreadLocal对象//静态内部类,也是一个线程类@Override//把dog放到当前线程里System.out.println("在run方法中线程=" + Thread.currentThread().getName());//主线程中启动一个线程简而言之,

2024-04-06 22:18:35 717

原创 JavaWeb-JSP一套打通

<head></head><body><%!//属性//方法//静态代码块static {company = "字节跳动";%></body>

2024-04-05 21:21:34 833

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除