Java

 2017-03-02 11:42:10 |  2 Comments  |  servlet&jsp

Servlet状态管理

    Servlet状态管理:将客户端(浏览器)与服务器之间多次交互(一次请求,一次响应)当做一个整体来看待,并且将多次交互所涉及的数据(即状态)保存下来。

    如何进行状态管理?

  • 1. 客户端状态管理技术:即将状态保存在客户端,有代表性的是cookie技术。
  • 2. 服务器端状态管理技术:即将状态保存在服务器端,有代表性的是session技术。
 2016-11-17 20:36:04 |  1 Comments  |  servlet&jsp

JSP 标签文件

    定制JSP标签可以实现一些JSTL和EL没有提供的功能,基本步骤就是编写标签处理器然后注册标签。从JSP2.0以后,可以直接编写标签文件(.tag)来代替定制JSP标签。        

    相比定制JSP标签,标签文件无需编写Java代码,无需注册标签,只需要在tag文件中写代码逻辑即可。

    一个简单的例子:

    在WEB-INF下创建tags文件夹,然后在里面新建一个firstTag.tag文件:

<%@tag import="java.util.Date"%>
<%@tag import="java.text.SimpleDateFormat"%>
<%
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    out.print(sdf.format(new Date()));
%>    

 

 2016-11-16 21:17:43 |  0 Comments  |  Java

IO Stream

  • 文件流

    1. FileOutputStream    

    java.io.FileOutputStream:文件字节输出流,用于将数据写入到文件中的流,该流是一个低级流。低级流特点:

     数据的来源和去向是明确的,真实负责“搬运”数据的流。

public class FOSDemo {
    public static void main(String[] args) throws IOException {
        /*
         * 向文件中写出数据
         * 一个参数的构造方法:
         * FileOutputStream(String path)
         * FileOutputStream(File file)
         * 创建出来的文件输出流是覆盖写操作,若操作的
         * 文件中有数据,会先将数据清除,重写本次写出的数据。
 2016-11-15 20:09:16 |  1 Comments  |  Java

Java文件操作

  • 文件操作    

    java.io.FileFile的每一个实例用来表示硬盘上的一个文件或目录,我们通过File可以:

   □ 访问一个文件或目录的属性信息,文件名,大小,修改日期,访问权限等。

   □  可以创建文件,删除文件,创建目录,删除目录。

   □ 可以访问目录中的所有子项

   但是不能访问文件数据。

 1. 基本操作

    在项目根目录新建test.txt文件,内容为hello world。以下为基本操作。

public class FileDemo1 {
    public static void main(String[] args) {
        /*
         * 在eclipse中,"."当前目录,指的是项目的根目录
         * separator相当于”/”
         */
        File file = new File("."+File.separator+"test.txt");
        //获取文件名
        String name = file.getName();
        
        /*
         * 获取文件大小。返回值为一个long值,表示占用的字节量
         * 中文以及中文状态下的标点符号都占用两个字节
         * 英文及英文状态下的标点符号占用一个字节
         */
        long length = file.length();
        
        // 获取文件最后修改时间
        long time = file.lastModified();
        

        // 查看文件是否具有可运行,可读,可写的权限
        file.canExecute();
        file.canRead();
        file.canWrite();
        
        // 判断当前File对象表示的是否为一个文件
        boolean isFile = file.isFile();
        
        // 判断当前File对象表示的是否为一个目录
        boolean isDir = fil
 2016-11-15 10:28:32 |  0 Comments  |  servlet&jsp

定制JSP标签

    当JSTL自带标签无法满足我们的开发需求的时候,我们可以自定义标签。定制标签可以通过实现SimpleTag接口或者继承SimpleTagSupport类(SimpleTagSupport提供了SimpleTag接口默认实现)。

    标签的具体实现功能逻辑写在doTag()方法中,定制JSP标签的大致步骤分为两步:

    □ 编写标签处理器

    □ 注册标签

  • SimpleTag

    1. 标签处理器

    编写一个Java类,实现SimpleTag接口:

 public class MyFirstTag implements SimpleTag{
    JspContext jspContext;
    @Override
    public void doTag() throws JspException, IOException {
         System.out.println("doTag");
         jspContext.getOut().print("This is my first tag.");
    }
    
    @Override
    public JspTag getParent() {
        return null;
    }
    
    @Override
    public void setJspBody(JspFragment body) {
        System.out.println(body);
    }
    
    @Override
    public void setJspContext(JspContext jspContext) {
        this.jspContext=jspContext;
    }
    
    @Override
    public void setParent(JspTag parent) {
    	
    }
}          

    doTag方法中编写了定制标签要实现的功能。

    getParent,setParent方法只有标签嵌套在另一个标签的时候才被调用。

    setJspContext方法传递了一个JspContext对象,JspContext对象的getOut方法返回