文章目录
1. JavaWeb学习笔记五:商品增删改查操作
1.1. 查询商品
1.2. 添加商品
1.3. 删除商品
1.4. 修改商品属性
修改总结
1. JavaWeb学习笔记五:商品增删改查操作
1.1. 查询商品
查询商品是最简单的操作,因为没有对数据进行修改,因此也不需要进行事务操作。
web层主要接收命令请求,调用service业务逻辑层,将后台获得的数据存储到request域中,然后转发到相应的jsp页面。
List< Product> productList= null;
AdminProductService service= new AdminProductService ( ) ;
try {
productList= service. findAllproduct ( ) ;
} catch ( SQLException e) {
e. printStackTrace ( ) ;
}
request. setAttribute ( "productList" , productList) ;
service层是业务层,由于没有什么业务直接调用dao层就行了。
public List< Product> findAllproduct ( ) throws SQLException {
AdminProductDao dao= new AdminProductDao ( ) ;
return dao. findAllproduct ( ) ;
}
dao层是持久层,用来操作数据库,封装返回的数据。
public List< Product> findAllproduct ( ) throws SQLException {
QueryRunner runner= new QueryRunner ( DataSourceUtils. getDataSource ( ) ) ;
String sql= "select * from product" ;
List< Product> productList = runner. query ( sql, new BeanListHandler < Product> ( Product. class ) ) ;
return productList;
}
前端通过JSTL和EL表达式获取request的信息。**注意:**获取图片的地址一定要绝对路径,还是动态的获取。
${vs.count}
1.2. 添加商品
由于用户填写的内容是通过ISO8859-1传递过来的,因此需要转码。
request. setCharacterEncoding ( "UTF-8" ) ;
添加商品,首先要获取用户填写的数据,这里用Map的方法
Map< String, String[ ] > properties= request. getParameterMap ( ) ;
然后封装数据到bean中,这里使用了工具类BeanUtils,可以说这个是一键封装,非常好。
Product product= new Product ( ) ;
try {
BeanUtils. populate ( product, properties) ;
} catch ( IllegalAccessException e) {
e. printStackTrace ( ) ;
} catch ( InvocationTargetException e) {
e. printStackTrace ( ) ;
}
封装完数据后,仍然有一些数据没有进行封装,因为添加数据时不能都添加,这时需要手动添加
product. setPid ( UUID. randomUUID ( ) . toString ( ) ) ;
product. setPimage ( "products/1/c_003.jpg" ) ;
SimpleDateFormat format= new SimpleDateFormat ( "yyyy-MM-dd" ) ;
String pdate= format. format ( new Date ( ) ) ;
product. setPdate ( pdate) ;
product. setPflag ( 0 ) ;
注意:setPid()的方式,是通过UUID的方式设置的。
封装完成后要将数据传递给Service层
AdminProductService service= new AdminProductService ( ) ;
try {
service. addProduct ( product) ;
} catch ( SQLException e) {
e. printStackTrace ( ) ;
}
response. sendRedirect ( request. getContextPath ( ) + "/adminProdutList" ) ;
public void addProduct ( Product product) throws SQLException {
QueryRunner runner= new QueryRunner ( DataSourceUtils. getDataSource ( ) ) ;
String sql= "insert into product values(?,?,?,?,?,?,?,?,?,?)" ;
runner. update ( sql, product. getPid ( ) , product. getPname ( ) , product. getMarket_price ( ) ,
product. getShop_price ( ) , product. getPimage ( ) , product. getPdate ( ) , product. getIs_hot ( ) ,
product. getPdesc ( ) , product. getPflag ( ) , product. getCid ( ) ) ;
}
1.3. 删除商品
首先要思考业务流程,点击删除按钮,就会执行删除操作,因此需要对jsp页面进行处理。例如当前有一条数据需要删除。当点击删除后,就执行删除,并且不会重新刷新页面,还要有提示要删除的信息。这就需要一些js代码了
**注意:**获取pro.pid时,是在循环里面获取的,一定要加上单引号,这是必须的否则会报错,被当做参数传递给js.这就变成了get提交。
function delProduction ( pid) {
var isDel= confirm ( "您确认要删除吗?" ) ;
if ( isDel) { location. href= "${pageContext.request.contextPath}/adminDelProduct?pid=" + pid;
}
}
剩下的就是处理web层、service层、dao层了。
String pid= request. getParameter ( "pid" ) ;
AdminProductService service= new AdminProductService ( ) ;
try {
service. delProductByPid ( pid) ;
} catch ( SQLException e) {
e. printStackTrace ( ) ;
}
response. sendRedirect ( request. getContextPath ( ) + "/adminProductList" ) ;
QueryRunner runner= new QueryRunner ( DataSourceUtils. getDataSource ( ) ) ;
String sql= "delete from product where pid=?" ;
runner. update ( sql, pid) ;
1.4. 修改商品属性
这个按说是最难的。当点击修改按钮时,要跳转到修改页面,在此修改页面上所有的内容都是可以修改的,那么这就要在修改页面上自动填写要修改物品的各个属性了,这是个难点,修改后再存储到数据库中。
从图中可以看出首先要获取要修改商品的pid,然后根据pid再从数据库中找该物品的所有属性,然后封装到Product对象中即Bean对象。然后将Bean对象封装到request域中,再回显到修改的jsp页面,就可以修改了。下面是获取pid:
web层先查找该商品对象,将获取的对象封存到Bean对象,然后再存储到request域对象中供前端页面从request域对象中获取。
String pid= request. getParameter ( "pid" ) ;
AdminProductService service= new AdminProductService ( ) ;
Product product= null;
try {
product= service. findProductByPid ( pid) ;
} catch ( SQLException e) {
e. printStackTrace ( ) ;
}
List< Category> categoryList= null;
try {
categoryList= service. findAllCategory ( ) ;
} catch ( SQLException e) {
e. printStackTrace ( ) ;
}
request. setAttribute ( "categoryList" , categoryList) ;
request. setAttribute ( "product" , product) ;
request. getRequestDispatcher ( "/admin/product/edit.jsp" ) . forward ( request, response) ;
存储到request域对象后难点是如何在前端修改页面中回显。通过EL表达式和JSTL循环的方式
给value赋值,用EL表达式获取request域中的对象属性
对于分类属性获取需要用到JST中的forEach和js函数获取,因为在回显到修改页面时,要自动填写完毕所属属性。
${category.cname }
< script type= "text/javascript" >
$ ( function ( ) {
$ ( "#cid option[value='${product.cid}']" ) . prop ( "selected" , true ) ;
$ ( "#is_hot option[value='${product.is_hot}']" ) . prop ( "selected" , true ) ;
} ) ;
< / script>
回显完成后,就剩下修改值,然后保存到数据库了,这样就和添加差不多了,因此修改的问题主要就是解决回显的问题。
request. setCharacterEncoding ( "UTF-8" ) ;
Map< String, String[ ] > properties = request. getParameterMap ( ) ;
Product product = new Product ( ) ;
try {
BeanUtils. populate ( product, properties) ;
} catch ( IllegalAccessException | InvocationTargetException e) {
e. printStackTrace ( ) ;
}
product. setPimage ( "products/1/c_0033.jpg" ) ;
SimpleDateFormat format = new SimpleDateFormat ( "yyyy-MM-dd" ) ;
String pdate = format. format ( new Date ( ) ) ;
product. setPdate ( pdate) ;
product. setPflag ( 0 ) ;
AdminProductService service = new AdminProductService ( ) ;
try {
service. updateProduct ( product) ;
} catch ( SQLException e) {
e. printStackTrace ( ) ;
}
response. sendRedirect ( request. getContextPath ( ) + "/adminProductList" ) ;
QueryRunner runner = new QueryRunner ( DataSourceUtils. getDataSource ( ) ) ;
String sql = "update product set pname=?,market_price=?,shop_price=?,pimage=?,pdate=?,is_hot=?,pdesc=?,pflag=?,cid=? where pid=?" ;
runner. update ( sql, product. getPname ( ) , product. getMarket_price ( ) , product. getShop_price ( ) , product. getPimage ( ) , product. getPdate ( ) , product. getIs_hot ( ) , product. getPdesc ( ) , product. getPflag ( ) , product. getCid ( ) , product. getPid ( ) ) ;
修改总结
解决回显的问题,也就是说点击修改时进入修改页面,该商品当前的属性都要显示在当前页面上。
首先: 在页面上获取该商品的pid。
第二步: 通过pid获取该商品的所有属性
第三步: 将获得的属性封装到request的域对象,用来给修改页面的回显。
第四步: 修改页面,确定后保存到数据库。完成修改。
第三步最困难,因为第三步进行回显需要回显一般的值,还要回显具有选择性的值,这个比较麻烦。
你可能感兴趣的:(javaWeb笔记)
JavaWeb笔记整理14——公共字段自动填充技术实现
mikey棒棒棒
笔记 反射 Spring AOP 公共字段自动填充 JavaWeb 面向切面编程 Aspect
目录为什么需要公共字段自动填充?步骤1自定义注解AutoFill步骤2自定义切面AutoFillAspect步骤3在Mapper接口的方法上加入AutoFill注解@Before("autoFillPointCut()")JoinPoint你能通过JoinPoint获取哪些信息?例子中的JoinPoint获取方法签名和注解获取被拦截方法的参数反射什么是反射获取Class对象获取Method对象动态
Web+Tomcat+Servlet+MySQL实现登录页面【JavaWeb笔记一】
YuBooy
JavaWeb学习笔记 java jdbc javaweb
目录功能描述:实现框图:具体实现过程一、环境搭建服务器环境搭建:页面部分环境搭建:数据库部分环境搭建:二、代码实现过程1、创建一个带表单提交的html页面(login.html)2、在web.xml文件下绑定Servlet的对象类3、创建java(LoginServer.java)类来执行Servlet操作4、jdbc完成数据库部分操作(Demo.java)5、通过测试@Test完成数据库的连接测
JavaWeb笔记整理11——Nginx反向代理Tomcat
mikey棒棒棒
笔记 nginx tomcat
Nginx反向代理Tomcat服务器的实现原理:Nginx就像一个中间人,它站在你的客户端(比如浏览器)和后端服务器(比如Tomcat)之间。它的主要任务是接收来自客户端的请求,然后将这些请求转发给实际处理请求的服务器(比如Tomcat),最后再把服务器的响应结果返回给客户端。实现原理:客户端发起请求:当用户在浏览器中访问网站时,发出的请求会首先到达Nginx服务器。Nginx接收请求:Nginx
JavaWeb笔记
XHgroup
笔记
一.Mavenmaven是apache旗下的一个开源项目,是一款用于管理和构建java项目的工具Apache软件基金会,成立于1999年7月,是目前世界上最大的最受欢迎的开源软件基金会,也是一个专门为支持开源项目而生的非盈利性组织。开源项目:https://www.apache.org/index.html#projects-list1.作用依赖管理:方便快捷的管理项目依赖的资源(jar包),避免
Javaweb笔记(十一):mysql数据库批处理
睿丶清
针对mysql进行数据库操作我们使用statement及其子类prepreparedStatement来进行,但是涉及到sql攻击的威胁,我们经常使用prepreparedStatement,就针对此我们进行数据库数据的插入:使用批处理插入5000条数据@TestpublicvoidbatchDealByMySql(){Stringsql="INSERTINTOtb_stuvalues(?,?,?
JavaWeb笔记续集配置tomcat和servlet
Capricornus Gold Snake
笔记 tomcat servlet
pom配置文件4.0.0org.exampleServletDemo1war1.0-SNAPSHOTServletDemo1MavenWebapphttp://maven.apache.orgjunitjunit3.8.1testjavax.servletjavax.servlet-api3.1.0providedServletDemo1org.apache.tomcat.maventomcat7
Javaweb笔记(十四):MySql数据库连接池
睿丶清
使用DBCP连接池连接数据库在使用dbcp连接池是需要下载相关的jar包进行配置072001.png使用DBCP常用方法说明:方法说明setUsername(StringuserName)设置建立连接数据库的用户名setPassword(Stringpassword)设置建立连接数据库的密码setUrl(Stringurl)设置连接数据库的地址setDriverClassName(Stringdr
Javaweb 笔记
默羊的笔记本
Javaweb笔记一、HTTP协议HTTP(超文本传输协议),它是一种主流B/S架构中应用的通信协议。具有以下特点:1、无状态服务端不会记录客户端每次提交的请求,服务器一旦相应客户端之后,就会结束本次的通信过程。客户端下一次的请求是一个新的连接,和上一次通信没有任何关系。2、简单灵活HTTP是基于请求(request)和响应(response)的模型3、支持客户端与服务端支持主流的B/S架构的通信
JavaWeb笔记整理+SSM+SpringBoot(基础)
weixin_53031149
JavaWeb java spring boot servlet 开发语言 1024程序员节
1.C/S与2.B/SC/S结构应用程序(Client/Server):客户端----服务器结构。凡是需要在客户的机器上安装客户端软件的应用程序都是CS架构的应用程序。优点:响应速度快,安全性强,一般应用于局域网中。缺点:需要经常更新客户端,开发维护成本高。B/S结构应用程序(Browser/Server):浏览器----服务器结构。凡是使用浏览器运行的应用程序都是BS架构的应用程序。优点:跨平台
JavaWeb笔记-20-客户管理案例知识点
一万年行不行
未解决疑问: 含义???学习笔记://1)框架标签,将页面分开为若干个独立界面//2)为页面上的所有链接或表单指定内容显示的位置(框架)//3)jQuery是一个JavaScript库。极大地简化了JavaScript编程。//4)UUID是jdk1.5中新增的一个类。在java.util下,可以产生一个号称全球唯一的ID.UUID是由一个十六位的数字组成,格式:550E8400-E29
JavaWeb笔记——JSP&&Thymeleaf
小曹爱编程!
JavaWeb java javaweb jsp Thymeleaf
JSP今日目标:理解JSP及JSP原理能在JSP中使用EL表达式和JSTL标签理解MVC模式和三层架构能完成品牌数据的增删改查功能1、JSP概述JSP(全称:JavaServerPages):Java服务端页面。==是一种动态的网页技术,其中既可以定义HTML、JS、CSS等静态内容,还可以定义Java代码的动态内容,也就是JSP=HTML+Java。如下就是jsp代码 Title
JavaWeb笔记:第06章 Tomcat |Servlet |HTTP协议 |request |response |ServletContext |Cookie |Session |JSP
准图灵奖得主
Java web笔记 servlet tomcat HTTP request response
JavaWeb笔记:第06章Tomcat|Servlet|HTTP协议|request|response|ServletContext|Cookie|Session|JSP1.web相关概念回顾2.Tomcat——web服务器软件2.1Tomcat安装&卸载&使用&配置2.2IDEA与tomcat的相关配置3.Servlet——serverapplet3.1Servlet概念3.2Servlet快
JavaWeb笔记之SVN
覔不散(每天发博客版)
Java Web开发从入门到实践 svn
一、版本控制软件开发过程中变更的管理;每天的新内容;需要记录一下;版本分支;整合到一起;主要的功能对于文件变更的追踪;多人协同开发的情况下,更好的管理我们的软件。大型的项目;一个团队来进行开发;1:代码的整合2:代码的冲突3:项目的整体版本控制;发布一个版本一定是我们团队开发会碰到的问题;目前来说;主流的版本控制软件;SVN集中式的版本控制工具Git分布式的版本控制工具二、SVN2.1服务器安装软
JavaWeb笔记之WEB项目
覔不散(每天发博客版)
Java Web开发从入门到实践 web app
一.版本控制版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。版本控制最主要的功能就是追踪文件的变更。它将什么时候、什么人更改了文件的什么内容等信息忠实地了记录下来。每一次文件的改变,文件的版本号都将增加。除了记录版本变更外,版本控制的另一个重要功能是并行开发。软件开发往往是多人协同作业,版本控制可以有效地解决版本的同步以及不同开发者之间的
JavaWeb笔记之前端开发JavaScript
覔不散(每天发博客版)
Java Web开发从入门到实践 开发语言 javascript
一、引言1.1简介JavaScript一种解释性脚本语言,是一种动态类型、弱类型、基于原型继承的语言,内置支持类型。它的解释器被称为JavaScript引擎,作为浏览器的一部分,广泛用于客户端的脚本语言,用来给HTML网页增加动态功能。1.2组成部分ECMAScript语法。文档对象模型(DOMDocumentObjectModel)。浏览器对象模型(BOMBrowserObjectModel)。
JavaWeb笔记之JSP
覔不散(每天发博客版)
Java Web开发从入门到实践 java jsp 前端
一、引言现有问题在之前学习Servlet时,服务端通过Servlet响应客户端页面,有什么不足之处?开发方式麻烦:继承父类、覆盖方法、配置Web.xml或注解。代码修改麻烦:重新编译、部署、重启服务。显示方式麻烦:获取流、使用println("");逐行打印。协同开发麻烦:UI负责美化页面,程序员负责编写代码。UI不懂Java,程序员又不能将所有前端页面的内容通过流输出。二、JSP2.1概念简化的
Javaweb笔记(六):mysql之创建数据库,创建表
睿丶清
之前进行了数据库的连接,查看数据库,创建数据库,删除数据库的操作,这一笔记则进行数据库中表的创建;创建数据库创建数据库名为"dbstudent";创建成功且进行查看创建好的数据库,并切换到新建数据库;showdatabases;createdatabsedbstudent;//创建数据库showdatabases;命令执行结果:070300.png表的创建数据库创建完成,则进行该数据库中表的创建,
JavaWeb笔记之前端开发CSS
覔不散(每天发博客版)
JavaWeb css 前端
一、引言1.1CSS概念层叠样式表(英文全称:CascadingStyleSheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。二、CSS简介2.1介绍CSS:全称:CascadingStyleSheets层叠样式表,定义如何显示HTML元素。
Javaweb笔记(2)cookie
BadRosoul
http是无状态的,如下图创建并添加cookie在这里new了两个cookie,一个name值为Neo,一个password值为123,然后通过response.addcookie方法将cookie给加入到Response使之生效。这里需要注意的是:http是无状态的,因此此时存入的两个cookie只是存入用户浏览器里,而服务器端并没有存入,因此在判定url中输入的name和password时,需
JavaWeb笔记之前端开发HTML
覔不散(每天发博客版)
JavaWeb html 前端
一、引言1.1HTML概念网页,是网站中的一个页面,通常是网页是构成网站的基本元素,是承载各种网站应用的平台。通俗的说,网站就是由网页组成的。通常我们看到的网页都是以htm或html后缀结尾的文件,俗称HTML文件。二、HTML简介2.1简介HTML全称:HyperTextMarkupLanguage(超文本标记语言)。超文本:页面内可以包含图片、链接,甚至音乐、程序等非文字元素。标记:标签,不同
JavaWeb笔记之JavaWeb JDBC
覔不散(每天发博客版)
JavaWeb 数据库
//Author流云//Version1.0一.引言1.1如何操作数据库使用客户端工具访问数据库,需要手工建立连接,输入用户名和密码登录,编写SQL语句,点击执行,查看操作结果(结果集或受影响行数)。1.2实际开发中,不会采用数据库客户端操作在实际开发中,当用户的数据发生改变时,不可能通过客户端操作执行SQL语句,因为操作量过大,无法保证效率和正确性。二.JDBC2.1介绍JDBC(JavaDat
JavaWeb笔记之MySQL数据库
覔不散(每天发博客版)
JavaWeb mysql 数据库
#Author流云#Version1.0一、引言1.1现有的数据存储方式有哪些?Java程序存储数据(变量、对象、数组、集合),数据保存在内存中,属于瞬时状态存储。文件(File)存储数据,保存在硬盘上,属于持久状态存储。1.2以上存储方式存在哪些缺点?没有数据类型的区分。存储数据量级较小。没有访问安全限制。没有备份、恢复机制。没有快速查找特定文件内容的手段。1.3没有使用数据库,你将会变成这样1
【JavaWeb笔记】单选框,结合Servlet
Urf_read
Java笔记 html 笔记 servlet html5 java-ee
各个部分的作用jsp部分formaction="...":表单标签,供用户提交数据。内部的submit点击之后相当于是点action的URLinputtype="radio":输入类型为单选框。把name设置为一样的,这样效果上就是单选,也可以自己修改,让它实现多选、互斥选等功能。如果三个单选的name都是queryType,我们在servlet中写起来会方便很多,通过request.getPar
Javaweb笔记(二)-jsp三大指令
睿丶清
jsp有三大指令,分别为:page,include,taglibpage:pageEncoding-->当前页面编码格式在服务器将jsp编译成.java文件时使用的编码格式;contentType:表示一个响应头。类似于response.setContentType("text/html;charset=utf-8");注意: 1.如果两个属性中出现一个属性,则另一了未出现的属性设置的值与已经设
JavaWEB笔记15 Vue入门+Vue常用操作(上)+案例
RainOnTheMoon
笔记 vue.js html javascript
JavaWEB笔记15Vue入门+Vue常用操作(上)+案例文章目录JavaWEB笔记15Vue入门+Vue常用操作(上)+案例一.Vue简介:二.Vue插值表达式:三.Vue指令:四.Vue简单事件的绑定:五.v-model指令:六.v-pre指令和v-clock指令:七.计算属性:八.侦听器:九.Vue实例属性:十.class属性的绑定:十一.style属性的绑定:十二.Vue设计网页案例:案
JavaWeb笔记——Filter&Listener&Ajax
小曹爱编程!
JavaWeb javaweb filter Listener Ajax
Filter&Listener&Ajax今日目标:能够使用Filter完成登陆状态校验功能能够使用axios发送ajax请求熟悉json格式,并能使用Fastjson完成java对象和json串的相互转换使用axios+json完成综合案例1、Filter1.1Filter概述Filter表示过滤器,是JavaWeb三大组件(Servlet、Filter、Listener)之一。Servlet我们
JavaWeb笔记——三层架构、IOC、DI
半斤烧白_liquor
java笔记 笔记 架构
JavaWeb笔记——三层架构、IOC、DI一、三层架构:Dao->Service->Controller1.1理论1.2idea实例二、分层解耦2.1概念2.2入门的IOC和DI方法——控制反转@Component和依赖注入@Autowired三、进阶IOC——@Repository&&@Service&&@Controller&&@ComponentScan四、进阶DI——@Primary&&
JavaWeb笔记: 第01章_JavaSE回顾——Junit单元测试&反射&注解
准图灵奖得主
Java web笔记 java java web
JavaSE回顾——Junit单元测试&反射&注解1.JavaWeb课程介绍一、为什么要学习JavaWeb?二、适用人群三、课程安排四、后期学习路径2.JavaSE内容补充2.1Junit单元测试测试分类∶Junit使用∶在main方法里的测试Junit单元测试(白盒测试)2.2反射获取class对象的方式class对象功能∶获取成员变量获取构造方法获取成员方法&获取类名反射案例2.3注解注解概述
JavaWEB笔记08 Javascript中的内置对象(上)
RainOnTheMoon
笔记 java javascript js javaweb
JavaWEB笔记08Javascript中的内置对象(上)文章目录JavaWEB笔记08Javascript中的内置对象(上)JS中的三大对象:一.JS中的对象--String:1.String对象的创建:2.String对象的方法:3.字符串的反转:二.JS中的对象--Math:三.JS中的对象--Date:1.Date对象的创建以及基本方法:2.其他多种形式的格式返回:四.JS中的对象--B
JavaWEB笔记07 Javascript中的函数
RainOnTheMoon
笔记 javascript js
JavaWEB笔记07Javascript中的函数文章目录JavaWEB笔记07Javascript中的函数一.JS中常量的定义:二.JS中函数的定义:1.函数定义方法:2.自调用函数:3.函数中的变量:三.void运算符:四.JS中作用域的说明以及变量访问原则:五.JS中的全局函数:六.URL编解码:七.预解析:八.基于预解析的练习:一.JS中常量的定义:Javascript遵循ECMAscri
java数字签名三种方式
知了ing
java jdk
以下3钟数字签名都是基于jdk7的
1,RSA
String password="test";
// 1.初始化密钥
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
keyPairGenerator.initialize(51
Hibernate学习笔记
caoyong
Hibernate
1>、Hibernate是数据访问层框架,是一个ORM(Object Relation Mapping)框架,作者为:Gavin King
2>、搭建Hibernate的开发环境
a>、添加jar包:
aa>、hibernatte开发包中/lib/required/所
设计模式之装饰器模式Decorator(结构型)
漂泊一剑客
Decorator
1. 概述
若你从事过面向对象开发,实现给一个类或对象增加行为,使用继承机制,这是所有面向对象语言的一个基本特性。如果已经存在的一个类缺少某些方法,或者须要给方法添加更多的功能(魅力),你也许会仅仅继承这个类来产生一个新类—这建立在额外的代码上。
读取磁盘文件txt,并输入String
一炮送你回车库
String
public static void main(String[] args) throws IOException {
String fileContent = readFileContent("d:/aaa.txt");
System.out.println(fileContent);
js三级联动下拉框
3213213333332132
三级联动
//三级联动
省/直辖市<select id="province"></select>
市/省直辖<select id="city"></select>
县/区 <select id="area"></select>
erlang之parse_transform编译选项的应用
616050468
parse_transform 游戏服务器 属性同步 abstract_code
最近使用erlang重构了游戏服务器的所有代码,之前看过C++/lua写的服务器引擎代码,引擎实现了玩家属性自动同步给前端和增量更新玩家数据到数据库的功能,这也是现在很多游戏服务器的优化方向,在引擎层面去解决数据同步和数据持久化,数据发生变化了业务层不需要关心怎么去同步给前端。由于游戏过程中玩家每个业务中玩家数据更改的量其实是很少
JAVA JSON的解析
darkranger
java
// {
// “Total”:“条数”,
// Code: 1,
//
// “PaymentItems”:[
// {
// “PaymentItemID”:”支款单ID”,
// “PaymentCode”:”支款单编号”,
// “PaymentTime”:”支款日期”,
// ”ContractNo”:”合同号”,
//
POJ-1273-Drainage Ditches
aijuans
ACM_POJ
POJ-1273-Drainage Ditches
http://poj.org/problem?id=1273
基本的最大流,按LRJ的白书写的
#include<iostream>
#include<cstring>
#include<queue>
using namespace std;
#define INF 0x7fffffff
int ma
工作流Activiti5表的命名及含义
atongyeye
工作流 Activiti
activiti5 - http://activiti.org/designer/update在线插件安装
activiti5一共23张表
Activiti的表都以ACT_开头。 第二部分是表示表的用途的两个字母标识。 用途也和服务的API对应。
ACT_RE_*: 'RE'表示repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。
A
android的广播机制和广播的简单使用
百合不是茶
android 广播机制 广播的注册
Android广播机制简介 在Android中,有一些操作完成以后,会发送广播,比如说发出一条短信,或打出一个电话,如果某个程序接收了这个广播,就会做相应的处理。这个广播跟我们传统意义中的电台广播有些相似之处。之所以叫做广播,就是因为它只负责“说”而不管你“听不听”,也就是不管你接收方如何处理。另外,广播可以被不只一个应用程序所接收,当然也可能不被任何应
Spring事务传播行为详解
bijian1013
java spring 事务传播行为
在service类前加上@Transactional,声明这个service所有方法需要事务管理。每一个业务方法开始时都会打开一个事务。
Spring默认情况下会对运行期例外(RunTimeException)进行事务回滚。这
eidtplus operate
征客丶
eidtplus
开启列模式: Alt+C 鼠标选择 OR Alt+鼠标左键拖动
列模式替换或复制内容(多行):
右键-->格式-->填充所选内容-->选择相应操作
OR
Ctrl+Shift+V(复制多行数据,必须行数一致)
-------------------------------------------------------
【Kafka一】Kafka入门
bit1129
kafka
这篇文章来自Spark集成Kafka(http://bit1129.iteye.com/blog/2174765),这里把它单独取出来,作为Kafka的入门吧
下载Kafka
http://mirror.bit.edu.cn/apache/kafka/0.8.1.1/kafka_2.10-0.8.1.1.tgz
2.10表示Scala的版本,而0.8.1.1表示Kafka
Spring 事务实现机制
BlueSkator
spring 代理 事务
Spring是以代理的方式实现对事务的管理。我们在Action中所使用的Service对象,其实是代理对象的实例,并不是我们所写的Service对象实例。既然是两个不同的对象,那为什么我们在Action中可以象使用Service对象一样的使用代理对象呢?为了说明问题,假设有个Service类叫AService,它的Spring事务代理类为AProxyService,AService实现了一个接口
bootstrap源码学习与示例:bootstrap-dropdown(转帖)
BreakingBad
bootstrap dropdown
bootstrap-dropdown组件是个烂东西,我读后的整体感觉。
一个下拉开菜单的设计:
<ul class="nav pull-right">
<li id="fat-menu" class="dropdown">
读《研磨设计模式》-代码笔记-中介者模式-Mediator
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
/*
* 中介者模式(Mediator):用一个中介对象来封装一系列的对象交互。
* 中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
*
* 在我看来,Mediator模式是把多个对象(
常用代码记录
chenjunt3
UI Excel J#
1、单据设置某行或某字段不能修改
//i是行号,"cash"是字段名称
getBillCardPanelWrapper().getBillCardPanel().getBillModel().setCellEditable(i, "cash", false);
//取得单据表体所有项用以上语句做循环就能设置整行了
getBillC
搜索引擎与工作流引擎
comsci
算法 工作 搜索引擎 网络应用
最近在公司做和搜索有关的工作,(只是简单的应用开源工具集成到自己的产品中)工作流系统的进一步设计暂时放在一边了,偶然看到谷歌的研究员吴军写的数学之美系列中的搜索引擎与图论这篇文章中的介绍,我发现这样一个关系(仅仅是猜想)
-----搜索引擎和流程引擎的基础--都是图论,至少像在我在JWFD中引擎算法中用到的是自定义的广度优先
oracle Health Monitor
daizj
oracle Health Monitor
About Health Monitor
Beginning with Release 11g, Oracle Database includes a framework called Health Monitor for running diagnostic checks on the database.
About Health Monitor Checks
Health M
JSON字符串转换为对象
dieslrae
java json
作为前言,首先是要吐槽一下公司的脑残编译部署方式,web和core分开部署本来没什么问题,但是这丫居然不把json的包作为基础包而作为web的包,导致了core端不能使用,而且我们的core是可以当web来用的(不要在意这些细节),所以在core中处理json串就是个问题.没办法,跟编译那帮人也扯不清楚,只有自己写json的解析了.
C语言学习八结构体,综合应用,学生管理系统
dcj3sjt126com
C语言
实现功能的代码:
# include <stdio.h>
# include <malloc.h>
struct Student
{
int age;
float score;
char name[100];
};
int main(void)
{
int len;
struct Student * pArr;
int i,
vagrant学习笔记
dcj3sjt126com
vagrant
想了解多主机是如何定义和使用的, 所以又学习了一遍vagrant
1. vagrant virtualbox 下载安装
https://www.vagrantup.com/downloads.html
https://www.virtualbox.org/wiki/Downloads
查看安装在命令行输入vagrant
2.
14.性能优化-优化-软件配置优化
frank1234
软件配置 性能优化
1.Tomcat线程池
修改tomcat的server.xml文件:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxThreads="1200" m
一个不错的shell 脚本教程 入门级
HarborChung
linux shell
一个不错的shell 脚本教程 入门级
建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用。所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在 bash的大姐,bourne shell中运行)。 如同其他语言一样
Spring4新特性——核心容器的其他改进
jinnianshilongnian
spring 动态代理 spring4 依赖注入
Spring4新特性——泛型限定式依赖注入
Spring4新特性——核心容器的其他改进
Spring4新特性——Web开发的增强
Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC
Spring4新特性——Groovy Bean定义DSL
Spring4新特性——更好的Java泛型操作API
Spring4新
Linux设置tomcat开机启动
liuxingguome
tomcat linux 开机自启动
执行命令sudo gedit /etc/init.d/tomcat6
然后把以下英文部分复制过去。(注意第一句#!/bin/sh如果不写,就不是一个shell文件。然后将对应的jdk和tomcat换成你自己的目录就行了。
#!/bin/bash
#
# /etc/rc.d/init.d/tomcat
# init script for tomcat precesses
第13章 Ajax进阶(下)
onestopweb
Ajax
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
Troubleshooting Crystal Reports off BW
blueoxygen
BO
http://wiki.sdn.sap.com/wiki/display/BOBJ/Troubleshooting+Crystal+Reports+off+BW#TroubleshootingCrystalReportsoffBW-TracingBOE
Quite useful, especially this part:
SAP BW connectivity
For t
Java开发熟手该当心的11个错误
tomcat_oracle
java jvm 多线程 单元测试
#1、不在属性文件或XML文件中外化配置属性。比如,没有把批处理使用的线程数设置成可在属性文件中配置。你的批处理程序无论在DEV环境中,还是UAT(用户验收
测试)环境中,都可以顺畅无阻地运行,但是一旦部署在PROD 上,把它作为多线程程序处理更大的数据集时,就会抛出IOException,原因可能是JDBC驱动版本不同,也可能是#2中讨论的问题。如果线程数目 可以在属性文件中配置,那么使它成为
正则表达式大全
yang852220741
html 编程 正则表达式
今天向大家分享正则表达式大全,它可以大提高你的工作效率
正则表达式也可以被当作是一门语言,当你学习一门新的编程语言的时候,他们是一个小的子语言。初看时觉得它没有任何的意义,但是很多时候,你不得不阅读一些教程,或文章来理解这些简单的描述模式。
一、校验数字的表达式
数字:^[0-9]*$
n位的数字:^\d{n}$
至少n位的数字:^\d{n,}$
m-n位的数字:^\d{m,n}$