﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-lyyb2001-文章分类-基本开发</title><link>http://www.blogjava.net/lyyb2001/category/20815.html</link><description>寸进</description><language>zh-cn</language><lastBuildDate>Fri, 06 Nov 2009 20:50:45 GMT</lastBuildDate><pubDate>Fri, 06 Nov 2009 20:50:45 GMT</pubDate><ttl>60</ttl><item><title>EL 表达式 访问集合和String的 的内置方法（比如：size ，contains， indexOf ，endWith...） </title><link>http://www.blogjava.net/lyyb2001/articles/301446.html</link><dc:creator>skycity</dc:creator><author>skycity</author><pubDate>Fri, 06 Nov 2009 07:12:00 GMT</pubDate><guid>http://www.blogjava.net/lyyb2001/articles/301446.html</guid><description><![CDATA[称呼 Functions 标签库为标签库，倒不如称呼其为函数库来得更容易理解些。因为 Functions 标签库并没有提供传统的标签来为 JSP 页面的工作服务，而是被用于 EL 表达式语句中。在 JSP2.0 规范下出现的 Functions 标签库为 EL 表达式语句提供了许多更为有用的功能。 Functions 标签库分为两大类，共 16 个函数。 
长度函数： fn:length 
字符串处理函数： fn:contains 、 fn:containsIgnoreCase 、 fn:endsWith 、 fn:escapeXml 、 fn:indexOf 、 fn:join 、 fn:replace 、 fn:split 、 fn:startsWith 、 fn:substring 、 fn:substringAfter 、 fn:substringBefore 、 fn:toLowerCase 、 fn:toUpperCase 、 fn:trim 
以下是各个函数的用途和属性以及简单示例。 
9.7.1  长度函数 fn:length 函数 
     长度函数 fn:length 的出现有重要的意义。在 JSTL1.0 中，有一个功能被忽略了，那就是对集合的长度取值。虽然 java.util.Collection 接口定义了 size 方法，但是该方法不是一个标准的 JavaBean 属性方法（没有 get,set 方法），因此，无法通过 EL 表达式“ ${collection.size} ”来轻松取得。 
fn:length 函数正是为了解决这个问题而被设计出来的。它的参数为 input ，将计算通过该属性传入的对象长度。该对象应该为集合类型或 String 类型。其返回结果是一个 int 类型的值。下面看一个示例。 
<%ArrayList arrayList1 = new ArrayList(); 
                            arrayList1.add("aa"); 
                            arrayList1.add("bb"); 
                            arrayList1.add("cc"); 
%> 
<%request.getSession().setAttribute("arrayList1", arrayList1);%> 
${fn:length(sessionScope.arrayList1)} 
假设一个 ArrayList 类型的实例“ arrayList1 ”，并为其添加三个字符串对象，使用 fn:length 函数后就可以取得返回结果为“ 3 ”。 
9.7.2  判断函数 fn:contains 函数 
fn:contains 函数用来判断源字符串是否包含子字符串。它包括 string 和 substring 两个参数，它们都是 String 类型，分布表示源字符串和子字符串。其返回结果为一个 boolean 类型的值。下面看一个示例。 
${fn:contains("ABC", "a")}<br> 
${fn:contains("ABC", "A")}<br> 
前者返回“ false ”，后者返回“ true ”。 
9.7.3 fn:containsIgnoreCase 函数 
fn:containsIgnoreCase 函数与 fn:contains 函数的功能差不多，唯一的区别是 fn:containsIgnoreCase 函数对于子字符串的包含比较将忽略大小写。它与 fn:contains 函数相同，包括 string 和 substring 两个参数，并返回一个 boolean 类型的值。下面看一个示例。 
${fn:containsIgnoreCase("ABC", "a")}<br> 
${fn:containsIgnoreCase("ABC", "A")}<br> 
前者和后者都会返回“ true ”。 
9.7.4  词头判断函数 fn:startsWith 函数 
fn:startsWith 函数用来判断源字符串是否符合一连串的特定词头。它除了包含一个 string 参数外，还包含一个 subffx 参数，表示词头字符串，同样是 String 类型。该函数返回一个 boolean 类型的值。下面看一个示例。 
${fn:startsWith ("ABC", "ab")}<br> 
${fn:startsWith ("ABC", "AB")}<br> 
前者返回“ false ”，后者返回“ true ”。 
9.7.5  词尾判断函数 fn:endsWith 函数 
fn:endsWith 函数用来判断源字符串是否符合一连串的特定词尾。它与 fn:startsWith 函数相同，包括 string 和 subffx 两个参数，并返回一个 boolean 类型的值。下面看一个示例。 
${fn:endsWith("ABC", "bc")}<br> 
${fn:endsWith("ABC", "BC")}<br> 
前者返回“ false ”，后者返回“ true ”。 
9.7.6  字符实体转换函数 fn:escapeXml 函数 
fn:escapeXml 函数用于将所有特殊字符转化为字符实体码。它只包含一个 string 参数，返回一个 String 类型的值。 
9.7.8  字符匹配函数 fn:indexOf 函数 
fn:indexOf 函数用于取得子字符串与源字符串匹配的开始位置，若子字符串与源字符串中的内容没有匹配成功将返回“ -1 ”。它包括 string 和 substring 两个参数，返回结果为 int 类型。下面看一个示例。 
${fn:indexOf("ABCD","aBC")}<br> 
${fn:indexOf("ABCD","BC")}<br> 
前者由于没有匹配成功，所以返回 -1 ，后者匹配成功将返回位置的下标，为 1 。

本文来自CSDN博客，转载请标明出处：http://blog.csdn.net/lpdx111/archive/2008/12/17/3543430.aspx<img src ="http://www.blogjava.net/lyyb2001/aggbug/301446.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lyyb2001/" target="_blank">skycity</a> 2009-11-06 15:12 <a href="http://www.blogjava.net/lyyb2001/articles/301446.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jsp实现文件上传</title><link>http://www.blogjava.net/lyyb2001/articles/107279.html</link><dc:creator>skycity</dc:creator><author>skycity</author><pubDate>Thu, 29 Mar 2007 09:22:00 GMT</pubDate><guid>http://www.blogjava.net/lyyb2001/articles/107279.html</guid><wfw:comment>http://www.blogjava.net/lyyb2001/comments/107279.html</wfw:comment><comments>http://www.blogjava.net/lyyb2001/articles/107279.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lyyb2001/comments/commentRss/107279.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lyyb2001/services/trackbacks/107279.html</trackback:ping><description><![CDATA[
		<p>
				<strong>cos.jar + uploadbean.jar + filemover.jar</strong>
				<br />index.jsp<br />&lt;%@ page contentType="text/html;charset=GBK" language="java" %&gt;</p>
		<p>&lt;html xmlns="<a href="http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</a>"&gt;<br />&lt;head&gt;<br />&lt;meta http-equiv="Content-Type" content="text/html; charset=GBK" /&gt;<br />&lt;title&gt;教育互动-升学考试&lt;/title&gt;<br />&lt;link href="css/default.css" rel="stylesheet" type="text/css"&gt;<br />&lt;/head&gt;</p>
		<p>&lt;body &gt;<br />&lt;form name="frm" method="post" action="upload.jsp" ENCTYPE="multipart/form-data"&gt;</p>
		<p>&lt;table width="665" border="0" align="center" cellpadding="0" cellspacing="0"&gt;<br />  &lt;tr&gt;<br />    &lt;td width="27" class="green"&gt;&amp;nbsp;&lt;/td&gt;<br />    &lt;td height="27" class="green"&gt;上传试题:&lt;/td&gt;<br />  &lt;/tr&gt;<br />&lt;/table&gt;<br />&lt;table width="99%" border="0" align="center" cellpadding="0" cellspacing="0"&gt;<br />  &lt;tr&gt;<br />    &lt;td width="132" &gt;&lt;img src="../image/form_cor1.gif" width="132" height="9"&gt;&lt;/td&gt;<br />    &lt;td &gt;&lt;img src="../image/form_top.gif" width="20" height="9"&gt;&lt;/td&gt;<br />    &lt;td width="20"&gt;&lt;img src="../image/form_cor3.gif" width="20" height="9"&gt;&lt;/td&gt;<br />  &lt;/tr&gt;<br />  &lt;tr&gt;<br />    &lt;td colspan="2" align="left" valign="top"&gt;&lt;table width="95%" border="0" cellpadding="0" cellspacing="0"&gt;<br />      &lt;tr&gt;<br />        &lt;td height="27" align="right"&gt;考试名称：&lt;/td&gt;<br />        &lt;td&gt;&amp;nbsp;&lt;/td&gt;<br />        &lt;td class="formline"&gt;&lt;span class="green"&gt;<br />          &lt;input name="examName" type="text" value="" maxlength="40"&gt;<br />          &amp;nbsp;&lt;span class="red"&gt;*&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;<br />      &lt;/tr&gt;<br />      &lt;tr&gt;<br />        &lt;td height="27" align="right"&gt;简介：&lt;/td&gt;<br />        &lt;td&gt;&lt;/td&gt;<br />        &lt;td height="60" class="formline"&gt;&lt;span class="green"&gt;<br />          &lt;textarea name="introduce" cols="50" rows="3"&gt;&lt;/textarea&gt;<br />          &lt;span class="red"&gt;*&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;<br />      &lt;/tr&gt;<br />      &lt;tr&gt;<br />        &lt;td height="27" align="right"&gt;附件：&lt;/td&gt;<br />        &lt;td&gt;&lt;/td&gt;<br />        &lt;td &gt;&lt;span class="green"&gt;<br />          &lt;input name="uploadfile" type="file"&gt;<br />        &lt;/span&gt;&lt;/td&gt;<br />      &lt;/tr&gt;<br />      <br />    &lt;/table&gt;&lt;/td&gt;<br />   &lt;/tr&gt;<br />  &lt;tr &gt;<br />    &lt;td width="132" background="../image/form_bmbg.gif"&gt;&lt;img src="../image/form_cor2.gif" width="132" height="9"&gt;&lt;/td&gt;<br />    &lt;td background="../image/form_bmbg.gif"&gt;&lt;img src="../image/form_bmbg.gif" width="20" height="9"&gt;&lt;/td&gt;<br />    &lt;td&gt;&lt;img src="../image/form_cor4.gif" width="20" height="9"&gt;&lt;/td&gt;<br />  &lt;/tr&gt;<br />&lt;/table&gt;<br />&lt;table width="665" height="40" border="0" align="center" cellpadding="0" cellspacing="0"&gt;<br />  &lt;tr&gt;<br />    &lt;td width="140"&gt;&amp;nbsp;&lt;/td&gt;<br />    &lt;td&gt;&lt;span class="green"&gt;<br />      &lt;input type="submit"  name="submit" value="上传文件" onclick="return uploadExcel()" &gt;<br />      &lt;input type="reset" name="reset" value="取 消"&gt;<br />    &lt;/span&gt;&lt;/td&gt;<br />  &lt;/tr&gt;<br />&lt;/table&gt;<br />&lt;/form&gt;<br />&lt;/body&gt;<br />&lt;/html&gt;</p>
		<p>&lt;script language="javascript"&gt;<br />function uploadExcel(){<br /> var upload=document.frm.uploadfile.value;<br /> var ext=upload.substring(upload.lastIndexOf(".")+1,upload.length);<br /> if(document.frm.examName.value==""){<br />  alert("考试名称为空或为空字符");<br />  document.frm.examName.focus();<br />  document.frm.examName.select();<br />  return false;<br /> }<br /> if(document.frm.introduce.value.replace(/\s/ig,'').length==0){<br />  alert("考试简介为空或为空字符");<br />  document.frm.introduce.focus();<br />  document.frm.introduce.select();<br />  return false;<br /> }<br /> if(document.frm.introduce.value.replace(/\s/ig,'').length &gt; 200 || document.frm.introduce.value.replace(/\s/ig,'').length &lt; 1){<br />  alert("考试简介在[1-200]之间");<br />  document.frm.introduce.focus();<br />  document.frm.introduce.select();<br />  return false;<br /> }<br /> if(upload==""){<br />  alert("请上传在线测试题目");<br />  document.frm.uploadfile.select();<br />  return false;<br /> }<br /> if(ext!="xls"){<br />  alert("你上传的文件不是excel文件");<br />  document.frm.uploadfile.select();<br />  return false;<br /> }else{<br />  if(confirm("确定提交在线测试吗?")){<br />   document.frm.submit();<br />  }<br /> }<br />}<br />&lt;/script&gt;<br />upload.jsp实现如下:<br />&lt;%@ page contentType="text/html;charset=GBK" %&gt;<br />&lt;%@ page import="java.io.*"%&gt;<br />&lt;%@ page import="java.util.*"%&gt;<br />&lt;%@ page import="javazoom.upload.*"%&gt;<br />&lt;%@ page import="uploadutilities.FileMover"%&gt;<br />&lt;%@ page import="java.text.SimpleDateFormat"%&gt;<br />&lt;%  <br /> request.setCharacterEncoding("GBK");//设置编码格式，就不用一个个转码了。<br />    FileMover fileMover = new FileMover();//你也可以使用自带的实例中jsp:useBean的形式。<br />    UploadBean upBean = new UploadBean();<br />    MultipartFormDataRequest mrequest = null;<br />    Hashtable files = null;<br />    if(MultipartFormDataRequest.isMultipartFormData(request)){<br />      try{<br />      mrequest = new MultipartFormDataRequest(request,null,10*1024*1024,MultipartFormDataRequest.COSPARSER,"GBK");//注意这里也要设置编码参数<br />      files = mrequest.getFiles();<br />      }catch(IOException e){<br />%&gt;<br />&lt;script language="javascript"&gt;<br />    alert("请上传小于10M的文件");<br />    history.back(-1);<br />&lt;/script&gt;<br />&lt;%<br />      }<br />   }<br /> String sServerFileName="";  //服务器文件名<br />  String sLocalFileName = ""; //本地文件名<br /> if(files!=null &amp;&amp; !files.isEmpty()){<br />  UploadFile file=null;<br />    String examName=mrequest.getParameter("examName");<br />   String introduce=mrequest.getParameter("introduce");<br />  <br />  OnlineTestServiceImpl epsi=new OnlineTestServiceImpl();</p>
		<p>  file = (UploadFile) files.get("uploadfile");<br />  sLocalFileName=file.getFileName();</p>
		<p>  int ii= sLocalFileName.indexOf("."); //取文件名的后缀<br />  String sExt = sLocalFileName.substring(ii,sLocalFileName.length());<br />      //得到不重复的文件名<br />  java.util.Date dt = new java.util.Date(System.currentTimeMillis());<br />  SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMddHHmmssSSS");<br />  sServerFileName= fmt.format(dt);<br />  sServerFileName =sServerFileName + sExt;</p>
		<p>  ExcelReader readExcel = new ExcelReader();<br />  File dir =new File("D:\\test1");<br />  if (!dir.exists()){<br />      dir.mkdirs();<br />  }<br />  upBean.setFolderstore("D:\\test1");//设置要上传的目录<br />  upBean.addUploadListener(fileMover);//增加filMover监听<br />  fileMover.setNewfilename(sServerFileName);//设置服务器上的文件名<br />  upBean.store(mrequest, "uploadfile");//上传</p>
		<p>  }<br /> }<br />%&gt;</p>
<img src ="http://www.blogjava.net/lyyb2001/aggbug/107279.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lyyb2001/" target="_blank">skycity</a> 2007-03-29 17:22 <a href="http://www.blogjava.net/lyyb2001/articles/107279.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts-config.xml下连接sqlserver数据库</title><link>http://www.blogjava.net/lyyb2001/articles/105045.html</link><dc:creator>skycity</dc:creator><author>skycity</author><pubDate>Tue, 20 Mar 2007 09:20:00 GMT</pubDate><guid>http://www.blogjava.net/lyyb2001/articles/105045.html</guid><wfw:comment>http://www.blogjava.net/lyyb2001/comments/105045.html</wfw:comment><comments>http://www.blogjava.net/lyyb2001/articles/105045.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lyyb2001/comments/commentRss/105045.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lyyb2001/services/trackbacks/105045.html</trackback:ping><description><![CDATA[  &lt;data-sources&gt;<br />    &lt;data-source key="login" type="org.apache.commons.dbcp.BasicDataSource"&gt;<br />      &lt;set-property property="driverClassName" value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/&gt;<br />      &lt;set-property property="url" value="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=blog"/&gt;<br />      &lt;set-property property="username" value="sa"/&gt;<br />      &lt;set-property property="password" value="root"/&gt;<br />      &lt;set-property property="maxActive" value="20"/&gt;<br />      &lt;set-property property="maxWait" value="10000"/&gt;<br />      &lt;set-property property="autoCommit" value="false"/&gt;<br />      &lt;set-property property="defaultReadOnly" value="false"/&gt;<br />    &lt;/data-source&gt;<br />  &lt;/data-sources&gt;<br />从<a href="http://jakarta.apache.org/commons/dbcp/">http://jakarta.apache.org/commons/dbcp/</a>下载org.apache.commons.dbcp包<br />从<a href="http://jakarta.apache.org/commons/pool/">http://jakarta.apache.org/commons/pool/</a>下载org.apache.commons.pool.impl包<br />安装好sqlserver2000,如果是2003的操作系统还需要安装sp2以上的补丁.<br />另外还需要安装sqlserver2000的驱动,将msbase.jar,mssqlserver.jar,msutil.jar拷贝至lib目录下。<br />然后在servlet可以使用:<br />ServletContext context=servlet.getServletContext();<br />DataSource dataSource=(DataSource)context.getAttribute("login");<br />然后调用form的方法<br />DBUser dbuser=new DBUser(dataSource); //得到一个datasource值<br />Connection conn=dataSource.getConnection();<br />Statement stmt=connect.createStatement();<br />ResultSet rs=stmt.executeQuery("sql语句");<img src ="http://www.blogjava.net/lyyb2001/aggbug/105045.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lyyb2001/" target="_blank">skycity</a> 2007-03-20 17:20 <a href="http://www.blogjava.net/lyyb2001/articles/105045.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>利用datasource进行数据库连接</title><link>http://www.blogjava.net/lyyb2001/articles/104972.html</link><dc:creator>skycity</dc:creator><author>skycity</author><pubDate>Tue, 20 Mar 2007 06:47:00 GMT</pubDate><guid>http://www.blogjava.net/lyyb2001/articles/104972.html</guid><wfw:comment>http://www.blogjava.net/lyyb2001/comments/104972.html</wfw:comment><comments>http://www.blogjava.net/lyyb2001/articles/104972.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lyyb2001/comments/commentRss/104972.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lyyb2001/services/trackbacks/104972.html</trackback:ping><description><![CDATA[
		<p>请在你的tomcat安装目录中找到conf\Catalina\localhost子目录. 新建 mystruts.xml<br />加入以下代码<br />&lt;Context path="/mystruts" docBase="mystruts" debug="0" privileged="true"&gt;<br />  &lt;Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"/&gt;<br />  &lt;ResourceParams name="jdbc/TestDB"&gt;<br /> &lt;parameter&gt;<br /> &lt;name&gt;factory&lt;/name&gt;<br /> &lt;value&gt;org.apache.commons.dbcp.BasicDataSourceFactory&lt;/value&gt;<br /> &lt;/parameter&gt;<br /> &lt;parameter&gt;<br /> &lt;name&gt;maxActive&lt;/name&gt;<br /> &lt;value&gt;10&lt;/value&gt;<br /> &lt;/parameter&gt;</p>
		<p> &lt;parameter&gt;<br /> &lt;name&gt;maxIdle&lt;/name&gt;<br /> &lt;value&gt;10&lt;/value&gt;<br /> &lt;/parameter&gt;<br /> <br /> &lt;parameter&gt;<br /> &lt;name&gt;maxWait&lt;/name&gt;<br /> &lt;value&gt;10000&lt;/value&gt;<br /> &lt;/parameter&gt;<br /> <br /> &lt;parameter&gt;<br /> &lt;name&gt;username&lt;/name&gt;<br /> &lt;value&gt;root&lt;/value&gt;<br /> &lt;/parameter&gt;<br /> &lt;parameter&gt;<br /> &lt;name&gt;password&lt;/name&gt;<br /> &lt;value&gt;root&lt;/value&gt;<br /> &lt;/parameter&gt;<br /> <br /> &lt;parameter&gt;<br /> &lt;name&gt;driverClassName&lt;/name&gt;<br /> &lt;value&gt;org.gjt.mm.mysql.Driver&lt;/value&gt;<br /> &lt;/parameter&gt;<br /> <br /> &lt;parameter&gt;<br /> &lt;name&gt;url&lt;/name&gt;<br /> &lt;value&gt;jdbc:mysql://localhost:3306/sjsn?autoReconnect=true&lt;/value&gt;<br /> &lt;/parameter&gt;<br /> &lt;/ResourceParams&gt;<br />  &lt;Logger className="org.apache.catalina.logger.FileLogger"<br />             prefix="localhost_admin_log." suffix=".txt"<br />          timestamp="true"/&gt;</p>
		<p>&lt;/Context&gt;<br />再在jsp中输入<br />&lt;%@ page import="java.sql.*"%&gt;<br />&lt;%@ page import="java.io.*"%&gt;<br />&lt;%@ page import="java.util.*"%&gt;<br />&lt;%@ page import="javax.sql.*"%&gt;<br />&lt;%@ page import="javax.naming.*"%&gt;<br />&lt;%<br />Connection conn;<br />Statement stmt;<br />ResultSet rs;<br />Context ctx=new InitialContext();<br />DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/TestDB");<br />conn=ds.getConnection();<br />stmt=conn.createStatement();<br />rs=stmt.executeQuery("select * from user");<br />while(rs.next()){<br /> out.println(rs.getString(2)+"&lt;br&gt;");<br />}<br />%&gt;即可进行数据库查询</p>
<img src ="http://www.blogjava.net/lyyb2001/aggbug/104972.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lyyb2001/" target="_blank">skycity</a> 2007-03-20 14:47 <a href="http://www.blogjava.net/lyyb2001/articles/104972.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>