自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(107)
  • 收藏
  • 关注

原创 spring事务操作声明式事务管理参数配置)

1.propagationo 事务的传播行为2.事务隔离级别下面是代码示例:package cn.zsp.spring5.service;import cn.zsp.spring5.dao.UserDao;import cn.zsp.spring5.dao.UserDaoImpl;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Se.

2020-08-31 23:15:40 180

原创 Spring事务管理---声明式事务管理的使用

下面是步骤:图是引用的,侵删:接下去是我写的代码:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/sch.

2020-08-31 21:46:06 125

原创 spring之JdbcTemplate实现批量增删改操作

前面的配置文件一样,我这里只写批量增删改:实现增加删除修改功能只要理解下面这个方法就可以了:这是我service层添加的代码:batchAddBook batchUpdateBook batchDeleteBook package cn.zsp.spring5.service;import cn.zsp.spring5.dao.BookDao;import cn.zsp.spring5.entity.Book;import org.springframework.beans.factor

2020-08-31 17:07:18 383 1

原创 spring之JdbcTemplate实现查询值对象集合

前面的配置我就不写了,跟我这篇文章一样:实现增加删除修改功能代码如下:这是dao层接口:package cn.zsp.spring5.dao;import cn.zsp.spring5.entity.Book;import java.util.List;public interface BookDao { public void add(Book book); void update(Book book); void deleteById(Inte

2020-08-31 14:55:12 292

原创 spring之JdbcTemplate实现增加删除修改功能

说白了就是用spring操作数据库,要记得导入组件扫描:代码如下:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.o

2020-08-31 14:27:57 527

原创 AOP操作AspectJ注解实现增强功能---补充完全注解开发

原本在这,我这里不像写xml配置文件,所以这里我们用完全注解开发。https://blog.csdn.net/qq_42388853/article/details/108311490这里需要改的只有配置文件xml换成java文件:package cn.zsp.spring5.config;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotatio

2020-08-30 23:10:31 148

原创 AOP操作AspectJ注解实现增强功能

先在xml文件里配置上aop和context,用context来开启注解扫描,aop生成增强对象<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.spring

2020-08-30 21:41:04 253

原创 AOP底层代码---JDK动态代理有接口的类

其实这个没什么说的,因为在javase的时候就有学过,这是我当时学javase的时候学的proxy动态代理当时觉得很麻烦但是今天看下spring这个底层源码觉得莫名熟悉https://blog.csdn.net/qq_42388853/article/details/107775308编写JDK动态代理代码,有接口的动态代理:先写个接口:package cn.zsp.spring5;public interface UserDao { public int add(int a,int

2020-08-30 18:23:55 125

原创 spring完全注解开发

前面创造的类都一样除了不要xml配置文件一样的就不写了:这是代替xml的配置文件,用到了@Configuration还有@ComponentScan(basePackages = {“cn.zsp”})链接:https://blog.csdn.net/qq_42388853/article/details/108305350package cn.zsp.spring5.config;import org.springframework.context.annotation.ComponentSc

2020-08-30 14:51:59 538

原创 基于注解方式实现属性注入

先了解下四个属性@Autowired:根据属性类型进行自动装配@Qualifier:根据属性名称进行注入@Resource:可以根据类型注入,可以根据名称注入。@Value:注入普通类型属性这里的属性注入和xml配置注入不一样,可以不用写set方法。这是xml文件:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xm

2020-08-30 14:33:24 352

原创 spring基于注解方式实现对象的注入

1、什么是注解(1)注解是代码特殊标记,格式:@注解名称(属性名称=属性值,属性名称=属性值…)(2)使用注解,注解作用在类上面,方法上面,属性上面·(3)使用注解目的:简化xml配置2、Spring针对Bean管理中创建对象提供注解(1) @Component.(2)@Serviceu(3) @Controller(4)@Repository第一步引入依赖·第二步开启组件扫描·第三步创建类,在类上面添加创建对象注解<?xml version="1.0" encoding="U

2020-08-30 13:11:42 493

原创 在spring配置文件使用标签引入外部属性文件

在spring配置文件使用标签引入外部属性文件1先在外面写properties配置文件:prop.driverClassName=com.mysql.jdbc.Driverprop.url=jdbc:mysql://localhost:3306/bookprop.username=rootprop.password=1234562然后写xml配置文件,记得先写context名称空间:这是名称空间代码,接下去是xml全部代码: xmlns:context="http://www.s

2020-08-30 11:57:15 255

原创 spring的xml自动装配

IOC操作Bean管理(xml自动装配)最重要的配置文件:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org

2020-08-30 11:28:23 146

原创 bean的生命周期(含后置处理器)

bean的生命周期我们先讲不含后置处理器的:(1)通过构造器创建bean实例(无参数构造)(2)为bean的属性设置值和对其他bean引用(调用set方法)(3)调用bean的初始化的方法(需要进行配置初始化的方法)。(4) bean可以使用了对象获取到了).(5)当容器关闭时候,调用bean的销毁的方法(需要进行配置销毁的方法)先创建一个我们要调用的bean 然后我会在各个步骤上进行输出。package cn.zsp.spring5.bean;public class Order {

2020-08-30 01:47:58 249

原创 普通bean和工厂bean

普通bean:就是我们正常导入的那种方法。工厂bean:就定义的bean可以跟返回的bean不一样。1、Spring有两种类型bean,一种普通bean,另外一种工厂bean (EactoryBean)2、普通bean:在配置文件中定义bean类型就是返回类型。3、工厂bean:在配置文件定义bean类型可以和返回类型不一样。第一步创建类,让这个类作为工厂bean,实现接口FactoryBean-第二步实现接口里面的方法,在实现的方法中定义返回的bean类型。测试类: public voi

2020-08-29 20:35:12 1053

原创 springIOC操作xml注入集合

springIOC操作xml注入集合1、注入数组类型属性2、注入List集合类型属性工3、注入Map集合类型属性我们用到的要注入的类:package cn.zsp.spring5.collectiontype;import java.util.Arrays;import java.util.List;import java.util.Map;import java.util.Set;public class Stu { private String arr[]; pr

2020-08-29 12:57:25 119

原创 spring内部bean和级联注入属性

这里内部bean提供一种方法,级联注入提供两种方法:首先我们创建个员工类:package cn.zsp.spring5.bean;public class Emp { private String ename; private String gender; private Dept dept; public Dept getDept() { return dept; } public void setDept(Dept dept)

2020-08-29 12:02:18 271

原创 注入属性-外部beanu

注入属性-外部beanu(1)创建两个类service类和dao类,(2)在service 调用dao里面的方法s(3)在spring配置文件中进行配置这是我写的dao层接口:package cn.zsp.spring5.dao;public interface UserDao { public void update();}dao层的实现类:package cn.zsp.spring5.dao;public class UserDaoImpl implement

2020-08-28 17:47:53 219

原创 spring框架里的xml注解

一、基于xml配置文件方式实现:第一种注入万式:使用set万法进行注入(2)在spring配置文件配置对象创建,配置属性注入第二种注入方式:使用有参数构造进行注入使用xml注入特殊值 例如null或者大小尖括号这是今天的重点xml配置文件:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http:

2020-08-28 17:20:57 200

原创 初入spring框架

没什么说的,这个比较简单自己建个java然后导入spring的四个包还有commons-logging-1.1.1.jar然后在配置文件里写<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schema

2020-08-28 11:22:19 150

原创 学习博客:IOC如何降低了代码之间的耦合度

IOC如何降低了代码之间的耦合度从传统方式到IOC一步步解耦第一步转变 直接new对象---->面向接口编程最开始我们创建一个对象是采取new对象的方式,但这样不可以实现多态,比如我创建一个person对象,里面有一个eat(Apple apple)方法,那么调用这个eat方法的类,需要传入苹果(Apple)对象,之后我的这个方法改成吃梨子了,这个方法又改成eat(Pear pear)了,调用eat方法的类,又需要把之前的苹果改成梨子,扩展性差,于是出现了面向接口编程,我在eat方法里面传入水果

2020-08-28 11:20:21 474 1

原创 使用AJAX修改把商品添加到购物车

使用AJAX修改把商品添加到购物车protected void ajaxAddItem(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 获取请求的参数商品编号 int id = WebUtils.parseInt(req.getParameter("id"),0);// 调用bookService.queryBookById(

2020-08-26 18:14:28 596

原创 使用AJAX验证用户名是否可用

jsp里: <script type="text/javascript"> $(function () { $("#username").blur(function () { var username=this.value; $.getJSON("http://localhost:8080/book_03/userServlet", "action=ajaxUsernameExist&username="+username, function (m

2020-08-26 18:11:38 186

原创 Ajax表单序列化serialize

Ajax表单序列化serialize这里servlet先准备个方法: protected void jquerySerialize(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("UTF-8"); resp.setContentType("text/html; charset=UTF-8");

2020-08-26 16:31:55 162

原创 jQuery中的AJAX请求

jQuery中的AJAX请求S.ajax方法表示请求的地址url表示请求的类型GET或 POST请求type表示发送给服务器的数据data格式有两种:-: name=value&name=value二:{key: value}请求成功,响应的回调函数success响应的数据类型dataType常用的数据类型有:text表示纯文本xml表示xml数据json表示json对象.get方法和.get方法和.get方法和.post方法s.get方法和s.post方法

2020-08-26 16:15:53 113

原创 原生AJAX请求的示例

先准备一个servlet来接受ajax请求package cn.zsp.servlet;import cn.zsp.pojo.Person;import com.google.gson.Gson;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOExc

2020-08-25 22:33:43 334

原创 JSON在java 中的使用---Map和json的互转

这里用匿名内部类转换回来比较方便public void test3() { Map<Integer,Person> map=new HashMap<Integer, Person>(); map.put(1,new Person(1,"鹏哥")); map.put(2,new Person(2,"鹏哥哥")); Gson gson =new Gson(); String s = gson.toJson(map);// System.

2020-08-25 20:13:49 223

原创 JSON在java 中的使用---List和json的互转

转换过去没什么问题,转化回来需要去写个类继承token:public void test2() { List<Person> personList =new ArrayList<Person>(); personList.add(new Person(1,"鹏锅锅")); personList.add(new Person(2,"鹏哥")); Gson gson =new Gson(); String

2020-08-25 20:00:01 159

原创 JSON在java 中的使用---javaBean和json的互转

JSON在java 中的使用package cn.zsp.json;import cn.zsp.pojo.Person;import com.google.gson.Gson;import org.junit.Test;public class JsonTest { // 1javaBean和json的互转 @Test public void test1(){ Person person = new Person(1,"鹏哥");

2020-08-25 19:34:33 88

原创 学习博客:JSON在客户端中的使用

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html> <head> <meta http-equiv="pragma" content="no-cache" /> <meta http-equiv="cache-control" content="no-cache" />

2020-08-25 18:51:20 128

原创 使用Tomcat统—管理异常

使用Tomcat统—管理异常在这里插入代码片首先先写一个页面,然后到xml里面配置即可。<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.o

2020-08-25 17:43:25 150

原创 使用filter过滤器来处理事务安全问题

这里其实是对上一篇文章的改进:https://blog.csdn.net/qq_42388853/article/details/108219399这里的话我把写的filter贴出来,需要注意是因为我们这里用filter捕获所以其他地方自己捕获异常的,需要把异常抛出来,否则回滚可能捕获不到。这是TransactionFilter :package cn.zsp.filter;import cn.zsp.utils.JdbcUtils;import javax.servlet.*;import

2020-08-25 14:18:23 250

原创 使用ThreadLocal事务保证线程安全

使用ThreadLocal事务保证线程安全1.首先先把jdbcUtils的获取连接方法和关闭方法改成由ThreadLocal控制,2.然后再去dao层把BaseDao的关闭连接给去除,然后dao层的异常要往外抛,不然出错了也没办法rollback。3.去最高层的要用到事务判断功能的地方使用try 提交 catch回滚功能。这是jdbcUtils:package cn.zsp.utils;import com.alibaba.druid.pool.DruidDataSourceFactory;

2020-08-25 14:14:31 449

原创 线程安全问题举例学习Threadlocal

import java.util.HashMap;import java.util.Map;import java.util.Random;public class ThreadLocalTest { public static Map<String,Object> data = new HashMap<>(); private static Random random = new Random(); public static class Tas

2020-08-24 18:37:40 129

原创 学习博客:Filter过滤器的使用

Filter过滤器的使用步骤:1、编写一个类去实现Filter接口2、实现过滤方法doFilter()3、到web.xml中去配置Filter的拦截路径这是登陆页面:<%-- Created by IntelliJ IDEA. User: Administrator Date: 2020/8/23 Time: 21:10 To change this template use File | Settings | File Templates.--%><%@

2020-08-24 11:33:33 117

原创 学习博客:解决响应乱码

老忘记,所以发个博客来记录下在servlet里面使用resp.setContentType( “text/html; charset=UTF-8”)﹔

2020-08-24 11:25:15 60

原创 学习博客:实现修改购物车数量功能

首先在servlet里面增加方法updateItem: protected void updateItem(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { int id =WebUtils.parseInt(req.getParameter("id"),0); int count =WebUtils.parseInt(req.getParame

2020-08-23 12:36:21 354

原创 学习博客:使用session实现购物车功能

由于我们实现的方法是使用的session所以我们这里只需要 编写每一行的表单信息,还有总体的购物车信息:用来保存每一行表单信息的类:package cn.zsp.pojo;import java.math.BigDecimal;/** *购物车的商品项 */public class CartItem {// 购物车CartItem// 商品编号// id private Integer id;//

2020-08-22 22:15:27 1835

原创 学习博客:实现验证码刷新且不被浏览器内存阻止

这个东西本质上就是把每次请求验证码的名字稍微换一下,我这里采用的是加入时间让每次请求验证码的名字都不一样从而不会被浏览器缓存所阻止。$("#code_img").click(function () { // 在事件响应的function函数中有一个this对象。这个this对象,是当前正在响应事件的dom对象 // src属性表示验证码img标签的图片路径。它可读,可写 this.src="${basePath}kaptcha.jpg?d="+new Date(); });.

2020-08-22 16:46:29 112

原创 学习博客:实现验证码登陆防止表单重复提交问题

记得要先导入jar包,mykaptcha-2.3.2.jar,先写个随便点表单然后用img标签使用验证码:src=“http://localhost:8080/tmp_war_exploded/kaptcha.jpg” style=“width: 80px;height: 30px”><%-- Created by IntelliJ IDEA. User: Administrator Date: 2020/8/22 Time: 13:26 To change this

2020-08-22 16:23:53 144

空空如也

空空如也

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

TA关注的人

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