- 博客(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基础篇(二)
-配置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底层机制(二)
*** 记录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
原创 基于注解配置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
原创 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
原创 家居网购项目(订单功能)
文章目录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
原创 家居网购项目(三)
*** 添加家居并重新获取家居信息,请求转发到furn_manage.jsp*///使用BeanUtils工具类封装信息//使用工具类获取表单的输入信息,并使用反射将其封装到bean中,注意,name必须与bean的属性对应//插入到数据库//插入成功则重定向到家居显示的servlet} else {System.out.println("插入失败");
2024-04-13 00:01:52 634
原创 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关注的人