摘要: 自定义标签库(taglib),将原本需要写在jsp中的java代码封装起来,成为可复用的组件。taglib的写法和jsp动作(action)很相似,是由taglib前缀,冒号,标签名三者的组合体。其中taglib前缀是用jsp指令(direction)定义的。1.第一步,让ForTag继承BodyTagSupport。BodyTagSupport专门用来制作带内容的taglib,它为我们提供了几个好用的方法来处理数据。2.第二步,为ForTag设置两个自定义参数:var和items。对应标签中的3.第三步,让ForTag处理标签内容。 public int doStartTag() th... 阅读全文
posted @ 2013-10-29 10:03 Mr.Ming2 阅读(487) 评论(0) 推荐(0) 编辑
摘要: 实现HttpSessionListener编写一个OnlineUserListener类package anni; import java.util.List; import javax.servlet.ServletContext; import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSessionListener; import javax.servlet.http.HttpSessionEvent; public class OnlineUserListener implements HttpSes.. 阅读全文
posted @ 2013-10-24 14:24 Mr.Ming2 阅读(376) 评论(0) 推荐(0) 编辑
摘要: Filter,它的名字是过滤器,可以批量拦截修改servlet的请求和响应。需要实现接口Filter配置 EncodingFilter anni.EncodingFilter EncodingFilter /* filter标签部分定义使用的过滤器,filter-mapping标签告诉服务器把哪些请求交给过滤器处理。这里的/*表示所有请求,/表示根路径,*(星号)代表所有请求,加在一起就变成了根路径下的所有请求。EncodingFilter.java,来批量设置请求编码。package anni; import java.io.IOException; ... 阅读全文
posted @ 2013-10-23 17:46 Mr.Ming2 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 需要继承类HttpServlet服务器在获得请求的时候会先根据jsp页面生成一个java文件,然后使用jdk的编译器将此文件编译,最后运行得到的class文件处理用户的请求返回响应。如果再有请求访问这jsp页面,服务器会先检查jsp文件是否被修改过,如果被修改过,则重新生成java重新编译,如果没有,就直接运行上次得到的class。因为jsp虽然比servlet灵活,却容易出错,你找不到良好的方式来测试jsp中代码,尤其在需要进行复杂的业务逻辑时,这一点儿很可能成为致命伤。所以一般都不允许在jsp里出现业务操作有关的代码servlet是一个java类,需要编译之后才能使用,虽然显示页面的时候会 阅读全文
posted @ 2013-10-23 15:46 Mr.Ming2 阅读(343) 评论(0) 推荐(0) 编辑
摘要: 1.CRUD是Create(创建)、Read(读取)、Update(更新)和Delete(删除)的缩写,一般应用有这四项也就足够了。我们这里的例子是对联系人信息进行CRUD操作。2.javabean是把一些操作集合在一起写成一个java类,想要进行什么操作直接调用这个类里的方法就行。咱们这里使用javabean的地方有两处,一个是链接数据库并进行CRUD操作,另一个把每条数据都写成一个类。对于CRUD应用,有一些大家默认的命名来表示不同的操作。1.list.jsp。读取所有信息并显示到页面上,这个是CRUD中Read(读取)。2.create.jsp。进入添加联系信息的页面,等待用户输入信息。 阅读全文
posted @ 2013-10-23 12:32 Mr.Ming2 阅读(244) 评论(0) 推荐(0) 编辑
摘要: request是请求,即客服端发来的请求、 response是响应,是服务器做出的响应redirect页面重定向forward页面跳转 不改变url四个作用域如果把变量放到pageContext里,就说明它的作用域是page,它的有效范围只在当前jsp页面里。如果把变量放到request里,就说明它的作用域是request,它的有效范围是当前请求周期。 所谓请求周期,就是指从http请求发起,到服务器处理结束,返回响应的整个过程。在这个过程中可能使用forward的方式跳转了多个jsp页面,在这些页面里你都可以使用这个变量。如果把变量放到session里,就说明它的作用域是session,它的 阅读全文
posted @ 2013-10-22 15:08 Mr.Ming2 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 每 一 个 MyBatis 的 应 用 程 序 都 以 一 个 SqlSessionFactory 对 象 的 实 例 为 核 心 。SqlSessionFactory本身是由SqlSessionFactoryBuilder创建的,一般而言,在一个应用中,一个数据库只会对应一个SqlSessionFactory,所以一般我们都把SqlSessionFactory定义成单例模式,或通过Spring等进行注入。SqlSessionFactoryBuilder创建SqlSessionFactory的方法有:SqlSessionFactory build(InputStream inputStream 阅读全文
posted @ 2013-10-18 10:07 Mr.Ming2 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 官网地址:http://code.google.com/p/mybatis/版本:mybatis 3.2.3生成工具:mybatis-generator-core-1.3.2-bundle.zipmysql jar包 : mysql-connector-java-5.1.6-bin.jar------------生成工具的使用:MBG有一个配置文件generatorConfig.xml。在里面设置连接数据库配置、javaModel、sqlMap、javaClient,table ... 阅读全文
posted @ 2013-10-17 15:45 Mr.Ming2 阅读(1235) 评论(0) 推荐(0) 编辑
摘要: 1.宣告使用的shell为何2.注明创建者 编写作用等3.注释每一个功能函数执行脚本1.修改可执行权限 chmod 755 file.sh2.sh file.sh 可以直接运行脚本#!/bin/bash 声明使用的shell#20130912 注释日期“”保留变量信息’‘只保留单纯的字符declare 声明变量a 数组 f函数 i整数 r只读 x通过环境输出变量交互式脚本read 等待读入指令定义脚本的参数代号:myscript opt1 opt2 opt3 opt4$0 $1 $2 $3 $4运行时可接参数 sh file opt1 ($0 代表文件名)逻辑判断式与表达式(1... 阅读全文
posted @ 2013-09-13 10:54 Mr.Ming2 阅读(322) 评论(0) 推荐(0) 编辑
摘要: compress filename 压缩 -d解压缩 *.Z bzip -d解压缩 -z压缩 *.bz2 bzcat filename .bz2 读取压缩文件内容 gzip -d解压缩 -#压缩 *.gz zcat filename.gz tar 压缩:tar -zcvf des.tar.gz ta 阅读全文
posted @ 2013-09-12 11:21 Mr.Ming2 阅读(231) 评论(0) 推荐(0) 编辑