Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2505757
  • 博文数量: 709
  • 博客积分: 12251
  • 博客等级: 上将
  • 技术积分: 7905
  • 用 户 组: 普通用户
  • 注册时间: 2005-07-17 00:00
个人简介

实现有价值的IT服务

文章存档

2012年(7)

2011年(147)

2009年(3)

2008年(5)

2007年(74)

2006年(431)

2005年(42)

分类: Java

2006-09-01 17:22:16

            JSP最常用的操作和newtiger包的最基本的四大操作
                                                2005-01-13

1. 获取由post(get)提交过来的值(如是多项值将得到第一个值):
   String doaction=request.getParameter("doaction")==null?"":request.getParameter("doaction");
   String ls_username=request.getParameter("username")==null?"":request.getParameter("username");

  <%
   Enumeration e = request.getParameterNames(); //要导java.util.* <%@ page import="java.util.*"%>
   while (e.hasMoreElements()) {
       String fieldName = (String) e.nextElement();
       String fieldValue = request.getParameter(fieldName);
       out.println(fieldName + "=" + fieldValue); //其它操作......
   }
  %>
 
2. 获取由post(get)提交过来的多项值:
 如:
  String[] chk_del=request.getParameterValues("del_id");
 if (chk_del!=null) {
     for(int i=0;i           out.println(chk_del[i]); //处理
      }
 }
 又如:(提交页+处理页)
 提交页:

 
 
 
 处理页:
 <%
 String[] arr_username = request.getParameterValues("username"); //得到username的多项值
 String username_All = "/";
 String rtnStr = "";
 if (arr_username!=null) {
  for(int i=0;i }
 if (!username_All.equals("/")) rtnStr = username_All;
 out.println(rtnStr);
 %>
 
3. 企图转String为int类(转换失败throw NumberFormatException错误)
 int cur_page = new Integer(request.getParameter("p")).intValue();
 int intPages = Integer.parseInt(strPage); //strPage为String类型
 long longPages = Long.parseLong(pages);  //转为long型
 int转String为:
 int iUserID = 1007;
 String strUserID = String.valueOf(iUserID);
 out.println(strUserID);
 

4. 包含页面
 <%@ page language="java" contentType="text/html" %>
 <%@ page import="newtiger.datastorage.*,newtiger.comm.*"%>
 <%@ page import="newtiger.webpaging.*"%>
 <%@ page import="java.util.*"%>
 <%@ page language="java" contentType="text/html;charset=gb2312"%>     //以防中文乱码
 <%@ include file="dblib.jsp"%>
 <%@ include file="banner.html"%>
  静态包含如下:<%@ include file="dblib.jsp" %> 调入dblib.jsp后才编译
  动态包含如下:  在程序运行中用到dblib.jsp才调入
 

5.Bean在web中生成实例
 
 说明:id的值为实例名称,
      scope为生存期,
      class为类名
 
6.String的常用操作
定义:
  String ls_user = new String();
  String ls_user = "";
  String ls_user;
  String ls_password = "00";
  String ls_testPassword = ls_password;
String的长度
  int iLen = ls_user.length(); //因String为对象故为length()方法,如果是数组则为length属性
String的截取
  String ls_user = "adieklasdlkf";
  String ls_subStr = "";
   if (ls_user.length() >=5) {
      ls_subStr = ls_user.substring(0,5);
   }
 或
  String ls_user = "adieklasdlkf";
  String ls_subStr = "";
   if (ls_user.indexOf("k")!=-1){
      ls_subStr = ls_user.substring(0,ls_user.indexOf("k"));
   }

String的替换
 String ls_user="dsafasddf";
 ls_user = ls_user.replaceAll("f","我");  //须jdk1.4以上才有此方法。
 out.println(ls_user); //替换后ls_user的值为"dsa我asdd我"

String的连结
 String ls_user1 = "abcd";
 String ls_user2 = "efgh";
 String ls_user = ls_user1 + ls_user2; //ls_user的结果为"abcdefgh"
 如果性能要求比较高请使用StringBuffer
 StringBuffer ls_sbUser = new StringBuffer();
 String ls_user1 = "abcd";
 String ls_user2 = "efgh";
 String ls_user = new String();
 ls_sbUser.append(ls_user1).append(ls_user2);
 ls_user = ls_sbUser.toString();
 或
 StringBuffer ls_sbUser = new StringBuffer();
 String ls_user1 = "abcd";
 String ls_user2 = "efgh";
 String ls_user = new String();
 ls_sbUser.append(ls_user1);
 ls_sbUser.append(ls_user2);
 ls_user = ls_sbUser.toString();
 或
 StringBuffer ls_sbUser = new StringBuffer();
 String ls_user1 = "abcd";
 String ls_user2 = "efgh";
 String ls_user = new String();
 ls_sbUser.append(ls_user1)
          .append(ls_user2);
 ls_user = ls_sbUser.toString();

String的其它处理
 如果String中包含有("),便使用(\")
 如果SQL语句中包含有('),要先替换为(''),如: sql = sql.replaceAll("'","''");
 

 7.数组
 数组的定义
  String colList [] = new String [4];
 colList[0] = "lid";
 colList[1] = "namec";
 colList[2] = "sex";
 colList[3] = "position";
  for (int i=0;i   out.println(colList[i]); //colList[i]   操作
 }
 
 8. 页面的转向
 方法一: (在客户端完成转向的请求)
   out.println("");
 方法二:(在服务器端完成转向)
    response.sendRedirect("prgm_user_list.jsp");
    也能物理地改变HTTP HEADER属性,如下:
    <%
       response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
       String newLocn="prgm_user_list.jsp";
       response.setHeader("Location",newLocn);
    %>

 9. 在需转向(停止JSP的执行)时可能用到return,注意:return要在if 操作内使用,
    在被include中sen用,一般在checkLogin的include中可使用,
    其它include文件中少用。
    if (checkLogin.checkLogin()){ //if (true){转向}
        response.sendRedirect("login.jsp");
        return;
    }
    运行return语句后,后面的代码不再运行。
  如:
  <%
      if (request.getParameter("wen") != null) {
           // do something
      } else {
          // do something
          return;
          out.println("aa"); //不再运行这一行
      }
  %>
 
 10.session的使用,可以是基本的数据类型如:int等,更可以是对象
   写入session:(多在login时用)
   //session.putValue("username", ls_username);
   session.setAttribute("username", ls_username);
   从session中注消(多在logout时用)
   if(session!=null){
       //session.removeValue("username");
       session.removeAttribute("username");
   }
   从session中读取数据,要使用强制类型转换
   String ls_username="";
  if (session!=null){
      //ls_username=(String)( session.getValue("username")==null?"":(String) session.getValue("username"));
      ls_username=(String)( session.getAttribute("username")==null?"":(String) session.getAttribute("username"));
   }
   或
   //String ls_username=(String)( session.getValue("username")==null?"":(String) session.getValue("username"));
   String ls_username=(String)( session.getAttribute("username")==null?"":(String) session.getAttribute("username"));
   在servlets中使用session,servlets与jsp的session将共享
   HttpSession session = request.getSession(true);
   //session.putValue("variable","value");//使用同jsp
   session.setAttribute("variable","value");//使用同jsp
 
 11.java(jsp)日期的格式
 //import java.util.*;
 //import java.text.*;
 java.util.Date toDate=new java.util.Date() ;
 String format1="yyyy-MM-dd HH:mm:ss" ;
 String str_toDate = "" ;
 try {
     java.text.DateFormat dateformat1 = new java.text.SimpleDateFormat(format1) ;
     str_toDate = dateformat1.format(toDate) ;
 } catch (Exception ex) { }
 out.println(str_toDate);
 
 
 12.Cookie的操作
 常用的方法:
 String getDomain() 返回cookie中Cookie适用的域名. 使用getDomain() 方法可以指示浏览器把Cookie返回给同 一域内的其他服务器,而通常Cookie只返回给与发送它的服务器名字完全相同的服务器。注意域名必须以点开始
 int getMaxAge() 返回Cookie过期之前的最大时间,以秒计算。
 String getName() 返回Cookie的名字
 String getPath() 返回Cookie适用的路径。如果不指定路径,Cookie将返回给当前页面所在目录及其子目录下 的所有页面。
 boolean getSecure() 如果浏览器通过安全协议发送cookies将返回true值,如果浏览器使用标准协议则返回false值。
 String getValue() 返回Cookie的值。
 int getVersion() 返回Cookie所遵从的协议版本。
 void setDomain(String pattern) 设置cookie中Cookie适用的域名
 void setMaxAge(int expiry) 以秒计算,设置Cookie过期时间。
 void setPath(String uri) 指定Cookie适用的路径。
 void setValue(String newValue) cookie创建后设置一个新的值。
 void setVersion(int v) 设置Cookie所遵从的协议版本

1. 写入Cookie --- writecookie.jsp
<%@ page import="newtiger.datastorage.*,newtiger.comm.*"%>
<%@ page import="java.util.*,java.io.*"%>
<%@ page language="java" contentType="text/html;charset=gb2312"%>
<%
  String ls_username = "jim";
  Cookie _cookie=new Cookie("ck_username", ls_username);
  _cookie.setMaxAge(30*60); // 设置Cookie的存活时间为30分钟
  response.addCookie(_cookie); // 写入客户端硬盘
  out.print("写Cookie完成
");
  ls_username = "jim2";
  _cookie=new Cookie("ck_username2", ls_username);
  _cookie.setMaxAge(24*60*60); // 设置Cookie的存活时间为1天(最好先算出值)
  response.addCookie(_cookie); // 写入客户端硬盘
  out.print("写Cookie完成");
%>

2. 读取Cookie.jsp --- readcookie.jsp
<%@ page language="java" contentType="text/html;charset=gb2312"%>
<%
  Cookie cookies[]=request.getCookies(); // 将适用目录下所有Cookie读入并存入cookies数组中
  Cookie sCookie=null;
  String ck_name=null;
  String ck_nameValue=null;
  if(cookies==null) // 如果没有任何cookie
      out.print("none any cookie");
  else
  {
      out.print("有" + cookies.length + "个cookies:

");
      for(int i=0;i      {
          sCookie=cookies[i];
          ck_name=sCookie.getName();
          ck_nameValue = sCookie.getValue();
          out.println(ck_name + "->" + ck_nameValue + "
");
      }
  }
%>

3.在JSP中如何删除一个COOKIE?
<%@ page language="java" contentType="text/html;charset=gb2312"%>
<%
  Cookie _cookie=new Cookie("ck_username", null);
  _cookie.setMaxAge(0); // 设置Cookie的存活时间为0秒
  response.addCookie(_cookie); // 写入客户端硬盘
  out.print("删除Cookie完成
");
%>
 

13.获得统计相关信息(如IP等)
 常用的:
 得到IP地址:
 String strIPaddress = request.getRemoteAddr();
 得到Session ID:如aaafX2ctDhMamC
 得到访问页是从那个网页连接或提交过来的:如:
 String strComeFrom = request.getHeader("Referer");
 当前页的地址:如:
 String strComeTo = HttpUtils.getRequestURL(request).toString();
 访问的参数字符串:p1=testP1&p2=testP2
 String strQueryString = request.getQueryString();
 得到当前文件路径:如/test/test.jsp
 request.getServletPath()

 其它:详见 的连接(点击"测试Http Request对象"的连接)

 14.如果在get提交表单中(或在链接中),参数的内容存在空格或"&"或"?"或有中文等的处理
 如链接:
   
 参数的意义是:
    p1的值为testP1
    p2的值为testP2
 但,如果要求 p1的值为testP1&p2=testP2 就要表达为:
   
 又假设P1的值本身就要求为 就要表达为:
 
 看起来比较复杂,
 对照表:
      ? : %3F
      & : %26
   空格 : +

 简单的可以用上面的对照表(如p1的值为testP1&p2=testP2),复杂的可以通过下面的函数来实现:
 java.net.URLEncoder.encode("连接的字符串");
 }catch (Exception e){
    out.println(e);
 }
%>
 
 
 
 
 
 
 
 

  newtiger包的最基本的三个操作:
  插入一条记录:
<%@ page import="newtiger.datastorage.*,newtiger.comm.*"%>
<%@ page import="java.util.*,java.io.*"%>
<%@ page language="java" contentType="text/html;charset=gb2312"%>
<%
  String sql = "";
  try {
      sql = "insert into  mytables (f_nid,f_vchdesc) values (108,'insert108')";
      if (DbCommand.dbUpdate(sql)>0){ // 返回实际影响的行数(0: 无更新记录,-1:执行错误)
          out.println("insert succeed!");
      }
  }catch (Exception e){
     //out.println(sql);
     //out.println(e);
 }
%>
  查询:
<%@ page import="newtiger.datastorage.*,newtiger.comm.*"%>
<%@ page import="java.util.*,java.io.*"%>
<%@ page language="java" contentType="text/html;charset=gb2312"%>
<%
  String sql = "";
  try {
      DbResultSet rst = null;
      sql = "select * from mytables";
      rst = DbCommand.dbQuery(sql);
      while (rst.moveNext()){
          out.println(rst.getField(1)+" ");                //三种get值方式
          out.println(rst.getField("f_nid")+" ");
          out.println(rst.getField("f_nid","")+"
");
      }
      rst = null;
  }catch (Exception e){
     //out.println(sql);
     //out.println(e);
 }
%>

  编辑一条记录:
<%@ page import="newtiger.datastorage.*,newtiger.comm.*"%>
<%@ page import="java.util.*,java.io.*"%>
<%@ page language="java" contentType="text/html;charset=gb2312"%>
<%
  String sql = "";
  try {
      sql = "update mytables set f_vchdesc ='new Desc!' where f_nid = 108)";
      if (DbCommand.dbUpdate(sql)>0){ // 返回实际影响的行数(0: 无更新记录,-1:执行错误)
          out.println("insert succeed!");
      }
  }catch (Exception e){
     //out.println(sql);
     //out.println(e);
 }
%>

  删除一条记录
<%@ page import="newtiger.datastorage.*,newtiger.comm.*"%>
<%@ page import="java.util.*,java.io.*"%>
<%@ page language="java" contentType="text/html;charset=gb2312"%>
<%
  String sql = "";
  try {
      sql = "delete from mytables where f_nid=108";
      if (DbCommand.dbUpdate(sql)>0){ // 返回实际影响的行数(0: 无更新记录,-1:执行错误)
          out.println("delete succeed!");
      }
  }catch (Exception e){
     //out.println(sql);
     //out.println(e);
 }
%>

  取得第一条记录的第一个字段值
<%@ page import="newtiger.datastorage.*,newtiger.comm.*"%>
<%@ page import="java.util.*,java.io.*"%>
<%@ page language="java" contentType="text/html;charset=gb2312"%>
<%
  String sql = "";
  try {
      sql = "select count(*) from mytables";
      String strLeng = DbCommand.getValue(sql);
      int iLeng = DbCommand.getIntValue(sql);
  }catch (Exception e){
     //out.println(sql);
     //out.println(e);
 }
%>

-------------------
JSP文件操作
    文件的建立与删除
    显示目录中的文件
    读取文件中的字符
    将数据写入文件
 
--------------------------------------------------------------------------------
文件的建立与删除
首先取得当前的磁盘路径,指定要建立的文件的路径,再进行检查,如果文件不存在,如果文件不存在,则建立这个文件,如果文件存在,则删除这个文件。
CreateDelete.jsp
<%@ page contentType="text/html; charset=GB2312"%>
<%@ page import="java.io.*" %>
<%@ page language="java" %>


文件的建立与删除



文件的建立与删除







<%
//建立代表目前目录位置中File.txt档的File变量, 并由fileName变量变数引用
String path = request.getRealPath("/jsphosting/wenjian");
File fileName = new File(path, "File.txt");
//检查File.txt是否存在
if(fileName.exists())
{
//删除File.txt档
fileName.delete();
//输出目前所在的目录路径
out.println(path + "");
%>
存在, 已完成
删除
<%
}
else
{
//在目前的目录下建立一个名为File.txt的文字档
fileName.createNewFile();
//输出目前所在的目录路径
out.println(path + "");
%>
不存在, 已完成
建立
<%
}
%>

 
 
显示目录中的文件
首先建立要显示的目录的FILE对象,然后调用LISTFILES方法,该方法返回一个FILE对象数组,显示数组中的所有元素即可。
ListFile.jsp
<%@ page contentType="text/html; charset=GB2312"%>
<%@ page language="java" %>
<%@ page import="java.io.*" %>


取得目录中的文件



取得目录中的文件







<%
//取得目前目录的磁盘目录
String path = request.getRealPath("/jsphosting/wenjian");
//建立代表目前目录位置的d变量
File d = new File(path);
//取得代表目录中所有文件
File list[] = d.listFiles();
%>
<%= path%>目录下的文件有(每个文件有其相应的功能)



    <%
    for(int i=0; i < list.length; i++)
    {
    %>
  • <%= list[i].getName() %>

    <%
    }
    %>



 

读取文件中的字符
直接调用FILEREADER对象的READ()方法读取所要显示的字符
ReadAll.jsp
<%@ page contentType="text/html; charset=GB2312" %>
<%@ page language="java" %>
<%@ page import="java.io.*" %>


读取文件内容



读取文件内容







<%
String path = request.getRealPath("/jsphosting/wenjian"); //取得目前目录在伺服端的实际位置
FileReader fr = new FileReader(path + ""); //建立FileReader变量,并设定由fr变量变数引用
int c = fr.read(); //从文件中读取一个字节
while(c != -1) //判断是否已读到文件的结尾
{
out.print((char)c); //输出读取到的数据
c = fr.read(); //从文件中读取数据
if(c == 13) //判断是否为断行字节
{
out.print("
"); //输出分行标签
fr.skip(1); //略过一个字节
c = fr.read(); //读取一个字节
}
}
//关闭文件
fr.close();
%>

 

将数据写入文件
通过调用FILEWRITER对象的WRITE()方法向文件中写入数据
Write.jsp
<%@ page contentType="text/html; charset=GB2312"%>
<%@ page language="java" %>
<%@ page import="java.io.*" %>


将数据写入文件



将数据写入文件







<%
String path = request.getRealPath("/jsphosting/wenjian"); //取得目前目录在伺服端的实际位置
FileWriter fw = new FileWriter(path + ""); //建立FileWrite对象,并设定由fw对象变量引用
//将字串写入文件
fw.write("大家好!");
fw.write("祝大家学习jsp愉快!");
fw.write("希望大家能够深入了解jsp技术!");
fw.close(); //关闭文件
%>

写入文件内容为



<%
FileReader fr = new FileReader(path + ""); //建立FileReader对象,并设定由fr对象变量引用
BufferedReader br = new BufferedReader(fr); //建立BufferedReader对象,并设定由br对象变量引用
String Line = br.readLine(); //读取一行数据
out.println(Line + "
"); //输出读取得的数据
br.close(); //关闭BufferedReader对象
fr.close(); //关闭文件
%>


 
------------------------------------
JSP中的Java文件操作
最近收集了一些JSP中关于操作JAVA文件的一些做法
文件的建立/检查与删除
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>


文件的建立、检查与删除


<%
String path=request.getRealPath("");
//out.println(path);
File f=new File(path,"File.txt");
//out.println(f);
//out.println(f.exists());
if(f.exists()){//检查File.txt是否存在
f.delete();//删除File.txt文件
out.println(path + "\File.txt 存在,已删除。");
}else{
f.createNewFile();//在当前目录下建立一个名为File.txt的文件
out.println(path + "\File.txt 不存在,已建立。");//输出目前所在的目录路径
}
%>
 
目录的建立/检查与删除
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>


目录的建立/检查与删除


<%
String path=request.getRealPath("");
path=path + "\Sub";//将要建立的目录路径
File d=new File(path);//建立代表Sub目录的File对象,并得到它的一个引用
if(d.exists()){//检查Sub目录是否存在
d.delete();
out.println("Sub目录存在,已删除");
}else{
d.mkdir();//建立Sub目录
out.println("Sub目录不存在,已建立");
}
%>

 
如何在JSP中处理虚拟目录
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>


JSP中如何处理虚拟目录


取得虚拟目录对应的磁盘路径

Web站点主目录的位置为<%=request.getRealPath("/")%>

JSP网页所在的目录位置<%=request.getRealPath("./")%>

JSP网页所在目录上一层目录的位置<%=request.getRealPath("../")%>


 
文件属性的取得
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.util.Date,java.io.*"%>


文件属性的取得


<%
String path=request.getRealPath("/");
File f=new File(path,"ReadData.txt");
if(f.exists()){
%>
<%=f.getName()%>的属性如下:


文件长度为:<%=f.length()%>
<%=f.isFile()?"是文件":"不是文件"%>

<%=f.isDirectory()?"是目录":"不是目录"%>

<%=f.canRead()?"可读取":"不可读取"%>

<%=f.canWrite()?"可写入":"不可写入"%>

<%=f.isHidden()?"是隐藏文件":"不是隐藏文件"%>

文件的最后修改日期为:<%=new Date(f.lastModified())%>

<%
}else{
f.createNewFile();//在当前目录下建立一个名为ReaData.txt的文件
%>
<%=f.getName()%>的属性如下:


文件长度为:<%=f.length()%>
<%=f.isFile()?"是文件":"不是文件"%>

<%=f.isDirectory()?"是目录":"不是目录"%>

<%=f.canRead()?"可读取":"不可读取"%>

<%=f.canWrite()?"可写入":"不可写入"%>

<%=f.isHidden()?"是隐藏文件":"不是隐藏文件"%>

文件的最后修改日期为:<%=new Date(f.lastModified())%>

<%
}
%>

取出目录中文件的方法
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>


取出目录中文件的方法--列出目录中的文件


<%
String path=request.getRealPath("/");
File d=new File(path);//建立当前目录中文件的File对象
File list[]=d.listFiles();//取得代表目录中所有文件的File对象数组
out.println("" + path + "目录下的文件:
");
for(int i=0;iif(list.isFile()){
out.println(list.getName() + "
");
}
}
out.println("
" + path + "目录下的目录:
");
for(int i=0;iif(list.isDirectory()){
out.println(list.getName() + "
");
}
}
%>

 
判断是否为空白文件
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>


判断是否为空白文件


<%
String path=request.getRealPath("/");
out.println(path);
FileReader fr=new FileReader(path + "\AtEnd.txt");//建立FileReader对象,并实例化为fr
//对FileReader类生成的对象使用read()方法,可以从字符流中读取下一个字符。
if(fr.read()==-1)//判断是否已读到文件的结尾
{
out.print("AtEnd.txt文件中没有数据
");
}else{
out.println("AtEnd.txt文件中有数据");
}
fr.close();
%>


    读取所有的文件数据

bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center">


 <%@ page contentType="text/html;charset=gb2312"%> 
<%@ page import="java.io.*,java.lang.*"%>


读取所有的文件数据


<%
String path=request.getRealPath(".");
FileReader fr=new FileReader(path + "\ReadData.txt");
//关键在于读取过程中,要判断所读取的字符是否已经到了文件的末尾,
并且这个字符是不是文件中的断行符,即判断该字符值是否为13。
int c=fr.read();//从文件中读取一个字符
//判断是否已读到文件结尾
while(c!=-1){
out.print((char)c);//输出读到的数据
c=fr.read();//从文件中继续读取数据
if(c==13){//判断是否为断行字符
out.print("
");//输出分行标签
fr.skip(1);//略过一个字符
//c=fr.read();//读取一个字符
}
}
fr.close();
%>

一行一行读取数据
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>


文件读取


<%
String path=request.getRealPath("");//取得当前目录的路径
FileReader fr=new FileReader(path + "\file\inc\t.txt");//建立FileReader对象,并实例化为fr
BufferedReader br=new BufferedReader(fr);//建立BufferedReader对象,并实例化为br
String Line=br.readLine();//从文件读取一行字符串
//判断读取到的字符串是否不为空
while(Line!=null){
out.println(Line + "
");//输出从文件中读取的数据
Line=br.readLine();//从文件中继续读取一行数据
}
br.close();//关闭BufferedReader对象
fr.close();//关闭文件
%>

 
略过文件中的字符不读取
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>


略过字节不读取


<%
String path=request.getRealPath(".");
FileReader fr=new FileReader(path + "\ReadData.txt");
fr.skip(2);//跳过2个字节
int c=fr.read();//读取一个字节
while(c!=-1){
out.print((char)c);
c=fr.read();
}
fr.close();
%>

 
将数据写入文件
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>


将数据写入文件


<%
String path=request.getRealPath(".");
FileWriter fw=new FileWriter(path + "\WriteData.txt");//建立FileWriter对象,并实例化fw
//将字符串写入文件
fw.write("大家好!");
fw.write("本书是《JSP编程技巧》");
fw.write("请多多指教!");
fw.write("email:stride@sina.com");
fw.close();
FileReader fr=new FileReader(path + "\WriteData.txt");
BufferedReader br=new BufferedReader(fr);//建立BufferedReader对象,并实例化为br
String Line=br.readLine();
//读取一行数据
out.println(Line + "
");
br.close();//关闭BufferedReader对象
fr.close();
%>

 
将写入文件的数据分行
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>


将写入文件的数据分行


<%
String path=request.getRealPath(".");
FileWriter fw=new FileWriter(path + "\WriteData.txt");
BufferedWriter bw=new BufferedWriter(fw);
bw.write("大家好!");
bw.write("本书是《JSP编程技巧》。");
bw.newLine();//断行
bw.write("请多多指教!");
bw.newLine();//断行
bw.write("email: ");
bw.flush();//将数据更新至文件
fw.close();//关闭文件流
out.println("写入文件内容为:
");
FileReader fr=new FileReader(path + "\WriteData.txt");
BufferedReader br=new BufferedReader(fr);
String Line=br.readLine();//读取一行数据
while(Line!=null){
out.println(Line + "
");
Line=br.readLine();
}
fr.close();
%>

 
如何将数据追加写入到文件
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>


将写入文件的数据分行


<%
String path=request.getRealPath(".");
RandomAccessFile rf=new RandomAccessFile(path + "\WriteData.txt","rw");
//定义一个类RandomAccessFile的对象,并实例化
rf.seek(rf.length());//将指针移动到文件末尾
rf.writeBytes("\nAppend a line to the file!");
rf.close();//关闭文件流
out.println("写入文件内容为:
");
FileReader fr=new FileReader(path + "\WriteData.txt");
BufferedReader br=new BufferedReader(fr);//读取文件的BufferedRead对象
String Line=br.readLine();
while(Line!=null){
out.println(Line + "
");
Line=br.readLine();
}
fr.close();//关闭文件
%>


 
----------------------------------------------
JSP内建对象的概念;这次主要讲一些内建对象的方法。
 1、   Request对象主要方法:
☉ getAttribute(String name)  返回name属性值。
☉ getAttributeNames()  返回request对象所有属性名字。
☉ getCookies()  返回客户端的cookies对象。
☉ getHeader(String name)  获得HTTP协议定义的文件头信息。
☉ getHeaders(String name)  返回指定名字的request Header的所有值。
☉ getMethod()  获得客户端向服务器端传送数据的方法。
☉ getParameter(String name)  获得客户端传送给服务器端的参数值。
☉ getParameterNames()  获得客户端传送给服务器端的所有参数的名字。
☉ getParameterValue(String name)  获得指定参数的所有值。
☉ getProtocol()  获取客户端向服务器端传送数据所依据的协议名称。
☉ getQueryString()  获得查询字符串。
☉ getRequestURI()  获取发出请求字符串的客户端地址。
☉ getRemoteAddr()  获取客户端的IP地址。
☉ getRemoteHost()  获取客户端的名字。
☉ getServerName()  获取服务器的名字。
☉ getServletPath()  获取客户端所请求的脚本文件的文件路径。
☉ getServerPort()  获取服务器的端口号。
☉ setAttribute(String name , java.lang.Object objt)  设置名字为name的request参数的值,该值是由java.lang.Object类型的objt指定。
实例:[Request.jsp]


Request Information




JSP Request Method:<%= request.getMethod() %>


Request URI:<%= request.getRequestURI() %>


Request Protocol:<%= request.getProtocol() %>


Servlet Path:<%= request.getServletPath() %>


Remote User:<%= request.getRemoteUser() %>


Remote Address:<%= request.getRemoteAddr() %>


Remote host:<%= request.getRemoteHost() %>


Path info:<%= request.getPathInfo() %>


Path translated:<%= request.getPathTranslated() %>


Query String:<%= request.getQueryString() %>


Content Length:<%= request.getContentLength() %>


Content Type:<%= request.getContentType() %>


Server Name:<%= request.getServerName() %>


Server Port:<%= request.getServerPort() %>


Authorization Scheme:<%= request.getAuthType() %>


The Browser you are using is <%= request.getHeader("User-Agent") %>




 
2、  Response对象主要方法:
☉ addCookie(Cookie cook)  添加一个cookie对象,用来保存客户端的用户信息。
☉ addHeader(String name , String value)  添加HTTP文件头信息。
☉ containsHeader(String name)  判断指定名字的HTTP文件头是否已经存在。
☉ sendError(int)  向客户端发送错误的信息。
☉ setHeader(String name , String value)  设置指定名字的HTTP文件头的值。
实例:定时刷新[refresh.jsp]
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.util.Date" %>


定时刷新页面


本页用来说明response对象


当前时间为:
<% response.setHeader("refresh","10"); %>
<%
out.println(new Date());
%>

3、  Out对象主要方法:
☉ out.print/println (Boolean | char | char[] | double | float | int | long | object | string |)  输出各种类型的数据。
☉ out.newLine()  输出一个换行字符。
☉ out.flush()  输出缓冲区里的数据。
☉ out.close()  关闭输出流。
☉ out.clearBuffer()  清除缓冲区里的是数据,并把数据输出到客户端。
☉ out.clear()  清除缓冲区里的是数据,但不会把数据输出到客户端。
☉ out.getBufferSize()  获得缓冲区的大小。
☉ out.getRemaining()  获取缓冲区中没有被占用的空间的大小。
☉ out.isAutoFlush()  返回布尔值。
4、  Session对象主要方法:
☉ getAttribute(String name)    获取与指定名字name相联系的信息。
☉ getAttributeNames()  返回session对象中存储的每一个属性对象。
☉ getCreationTime()    返回session被创建的时间。
☉ getId()  返回唯一的标识,为每一个session而产生。
☉ getLastAccessedTime()    返回当前session对象最后被客户发送的时间。
☉ getMaxInactiveInterval() 返回总时间(秒)。
☉ removeAttribute(String name) 删除与指定名字name的相联系的信息。
☉ setAttribute(String name , java.lang.object value)   设置指定名字name的属性值value,并存储在session对象中。
☉ isNew()
☉ setMaxInactiveInterval(int interval)



5、  PageContext对象主要方法:
☉ getAttribute scope() 检索一个特定的已经命名对象的范围。
☉ findAttribute()  用来按照页面请求、会话以及应用程序范围的顺序实现对某个已经命名属性的搜索。
☉ setAttribute()   用来设置默认页面的范围或特定范围之中的已命名对象。
☉ removeAttribute()    用来删除默认页面范围或特定范围之中已命名的对象。
6、  Application对象主要方法:
☉ getAttribute(String name)    返回由name指定的名字application对象的属性的值。
☉ getAttributeNames()  返回所有application对象的属性的名字。
☉ getInitParameter(String name)    返回由name指定的名字的application对象的某个属性的初始值。
☉ getServletInfo() 返回servlet编译器当前版本信息。
☉ setAttribute(String name , Object object)    设置指定名字name的application对象的属性值object.
 
实例:在线人数统计[online.jsp]
<%@ page contentType="text/html;charset=gb2312" %>

<%
Integer i = (Integer)application.getAttribute("counter");
String name = (String)application.getAttribute("onlineName");
//StringBuffer total = new StringBuffer(name);
%>

<% out.println((String)session.getAttribute("username")); %>您好:




当前在线人数: <%= i %>




在线人总名册: <% out.println(name); %>




阅读(1128) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~