??xml version="1.0" encoding="utf-8" standalone="yes"?>
?/STRONG> |
URI |
前缀 |
Core |
http://java.sun.com/jsp/jstl/core |
c |
XML processing |
http://java.sun.com/jsp/jstl/xml |
x |
I18N formatting |
http://java.sun.com/jsp/jstl/fmt |
fmt |
Database access |
http://java.sun.com/jsp/jstl/sql |
sql |
Functions |
http://java.sun.com/jsp/jstl/functions |
fn |
函数 |
描述 |
fn:contains(string, substring) |
如果参数string中包含参数substringQ返回true |
fn:containsIgnoreCase(string, substring) |
如果参数string中包含参数substringQ忽略大写Q,q回true |
fn:endsWith(string, suffix) |
如果参数 string 以参数suffixl尾Q返回true |
fn:escapeXml(string) |
有Ҏ意义的XML (和HTML)转换为对应的XML character entity codeQƈq回 |
fn:indexOf(string, substring) |
q回参数substring在参数string中第一ơ出现的位置 |
fn:join(array, separator) |
一个给定的数组array用给定的间隔Wseparator串在一Pl成一个新的字W串q返回?/P> |
fn:length(item) |
q回参数item中包含元素的数量。参数Itemcd是数l、collection或者String。如果是Stringcd,q回值是String中的字符数?/P> |
fn:replace(string, before, after) |
q回一个String对象。用参数after字符串替换参数string中所有出现参数before字符串的地方Qƈq回替换后的l果 |
fn:split(string, separator) |
q回一个数l,以参数separator 为分割符分割参数stringQ分割后的每一部分是数组的一个元?/P> |
fn:startsWith(string, prefix) |
如果参数string以参数prefix开_q回true |
fn:substring(string, begin, end) |
q回参数string部分字符? 从参数begin开始到参数end位置Q包括end位置的字W?/P> |
fn:substringAfter(string, substring) |
q回参数substring在参数string中后面的那一部分字符?/P> |
fn:substringBefore(string, substring) |
q回参数substring在参数string中前面的那一部分字符?/P> |
fn:toLowerCase(string) |
参数string所有的字符变ؓ写Qƈ其q回 |
fn:toUpperCase(string) |
参数string所有的字符变ؓ大写Qƈ其q回 |
fn:trim(string) |
去除参数string 首尾的空|q将其返?/P> |
<c:if test="${empty query.rows}">
<!--验证没有通过,q回d界面-->
<font color="red">用户名或密码错误</font>
<a href="index.jsp">重新d</a>
</c:if>
<c:if test="${!empty query.rows}">
<!--验证通过Q保存用户信息到session?->
<c:forEach var="row" items="${query.rows}">
<c:set var="userName" value="${row.userName}" scope="session" />
<c:set var="userLevel" value="${row.userLevel}" scope="session" />
</c:forEach>
<c:set var="isLog" value="1" scope="session" />
<!--面发送到主页?->
<c:redirect url="main.jsp" />
</c:if>
2.session控制
<c:if test="${empty sessionScope.isLog}">
你没有登录或d时
<a href="index.jsp">重新d</a>
</c:if>
数据库驱动程序和URL
数据库名 |
驱动E序 |
URL |
MS SQL Server2000 |
com.microsoft.jdbc.sqlserver.SQLServerDriver |
jdbc:microsoft:sqlserver://[ip]:[port];user=[user];passwoerd=[password] |
JDBC-ODBC |
sun.jdbc.odbc.JdbcOdbcDriver |
jdbc:odbc:[odbcsource] |
Oracle oci8 |
oracle.jdbc.driver.OracleDriver |
jdbc:oracle:oci8:@[sid] |
Oracle thin Driver |
oracle.jdbc.driver.OracleDriver |
jdbc:oracle:thin:@[ip]:[port]:[sid] |
Cloudscape |
COM.cloudscape.core.JDBCDriver |
Jdbc:cloudscape:database |
MySQL |
org.git.mm.mysql.Driver |
jdbc:mysql://ip/database?user=?&password=? |
相关链接Qjavaq接数据库方?A >http://blog.java-cn.com/more.asp?name=johnnyhg&id=341
文g的徏立与删除
昄目录中的文g
d文g中的字符
数据写入文?/A>
CreateDelete.jsp
<%@ page contentType="text/html; charset=GB2312"%> <%@ page import="java.io.*" %> <%@ page language="java" %> <HTML> <HEAD> <TITLE>文g的徏立与删除</TITLE> </HEAD> <BODY> <CENTER> <FONT SIZE = 5 COLOR = blue>文g的徏立与删除</FONT> </CENTER> <BR> <HR> <BR> <% //建立代表目前目录位置中File.txt档的File变量, q由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 + "\\File.txt"); %> <FONT SIZE = 4 COLOR = red>存在</FONT>, 已完? <FONT SIZE = 4 COLOR = red>删除</FONT> <% } else { //在目前的目录下徏立一个名为File.txt的文字 fileName.createNewFile(); //输出目前所在的目录路径 out.println(path + "\\File.txt"); %> <FONT SIZE = 4 COLOR = red>不存?lt;/FONT>, 已完? <FONT SIZE = 4 COLOR = red>建立</FONT> <% } %> </BODY> </HTML> |
昄目录中的文g
首先建立要显C的目录的FILE对象Q然后调用LISTFILESҎQ该Ҏq回一个FILE对象数组Q显C数l中的所有元素即可?
ListFile.jsp
<%@ page contentType="text/html; charset=GB2312"%> <%@ page language="java" %> <%@ page import="java.io.*" %> <HTML> <HEAD> <TITLE>取得目录中的文g</TITLE> </HEAD> <BODY> <CENTER> <FONT SIZE = 5 COLOR = blue>取得目录中的文g</FONT> </CENTER> <BR> <HR> <BR> <% //取得目前目录的磁盘目? String path = request.getRealPath("/jsphosting/wenjian"); //建立代表目前目录位置的d变量 File d = new File(path); //取得代表目录中所有文? File list[] = d.listFiles(); %> ?lt;Font color = red><%= path%></Font>目录下的文g有(每个文g有其相应的功能)<BR> <Font color = blue> <ul> <% for(int i=0; i < list.length; i++) { %> <li><%= list[i].getName() %><BR> <% } %> </ul> </Font> </BODY> </HTML> |
d?A name=3>件中的字W?/FONT>
直接调用FILEREADER对象的READQ)Ҏd所要显C的字符
ReadAll.jsp
<%@ page contentType="text/html; charset=GB2312" %> <%@ page language="java" %> <%@ page import="java.io.*" %> <HTML> <HEAD> <TITLE>d文g内容</TITLE> </HEAD> <BODY> <CENTER> <FONT SIZE = 5 COLOR = blue>d文g内容</FONT> </CENTER> <BR> <HR> <BR> <% String path = request.getRealPath("/jsphosting/wenjian"); //取得目前目录在伺服端的实际位|? FileReader fr = new FileReader(path + "\\File.txt"); //建立FileReader变量,q设定由fr变量变数引用 int c = fr.read(); //从文件中d一个字? while(c != -1) //判断是否已读到文件的l尾 { out.print((char)c); //输出d到的数据 c = fr.read(); //从文件中d数据 if(c == 13) //判断是否为断行字? { out.print("<BR>"); //输出分行标签 fr.skip(1); //略过一个字? c = fr.read(); //d一个字? } } //关闭文g fr.close(); %> </BODY> </HTML> |
数据写入文?/FONT>
通过调用FILEWRITER对象的WRITEQ)Ҏ向文件中写入数据
Write.jsp
<%@ page contentType="text/html; charset=GB2312"%> <%@ page language="java" %> <%@ page import="java.io.*" %> <HTML> <HEAD> <TITLE>数据写入文?lt;/TITLE> </HEAD> <BODY> <CENTER> <FONT SIZE = 5 COLOR = blue>数据写入文?lt;/FONT> </CENTER> <BR> <HR> <BR> <% String path = request.getRealPath("/jsphosting/wenjian"); //取得目前目录在伺服端的实际位|? FileWriter fw = new FileWriter(path + "\\File.txt"); //建立FileWrite对象,q设定由fw对象变量引用 //字串写入文? fw.write("大家?"); fw.write("大家学习jsp愉快Q?); fw.write("希望大家能够深入了解jsp技术!"); fw.close(); //关闭文g %> <P>写入文g内容?lt;/P> <FONT SIZE = 4 COLOR = red> <% FileReader fr = new FileReader(path + "\\File.txt"); //建立FileReader对象,q设定由fr对象变量引用 BufferedReader br = new BufferedReader(fr); //建立BufferedReader对象,q设定由br对象变量引用 String Line = br.readLine(); //d一行数? out.println(Line + "<BR>"); //输出d得的数据 br.close(); //关闭BufferedReader对象 fr.close(); //关闭文g %> </FONT> </BODY> </HTML> |
链接传递中文参C?/P>
jspsmartuploadlg下蝲中文例子Q?BR>
<TITLE>U联菜单</TITLE>
<LINK rel="stylesheet" type="text/css" href="style.css">
</HEAD>
<!--从数据库中得CU栏目信?->
<%String sql="select * from Nclass order by NclassId asc";
ResultSet rs=stmt.executeQuery(sql);
%>
<!--二U栏目信息保存到数组subcat?->
<script type="text/javascript">
var onecount;
onecount=0;
subcat = new Array();
<%
int count = 0;
while(rs.next()){
%>
subcat[<%=count%>] = new Array("<%=rs.getString("NclassName")%>","<%=rs.getString("NclassId")%>","<%=rs.getString("parentId")%>");
<%
count++;
}
rs.close();
%>
onecount=<%=count%>;
<!--军_select昄的函?->
function changelocation(locationid)
{
document.myform.NclassId.length = 0;
var locationid=locationid;
var i;
for (i=0;i < onecount; i++)
{
if (subcat[i][2] == locationid)
{
document.myform.NclassId.options[document.myform.NclassId.length] = new Option(subcat[i][0], subcat[i][1]);
}
}
}
</script>
<FORM method="POST" name="myform" action="adminsave.jsp?action=add">
<TABLE>
<TR>
<TD>一U分c?lt;/TD>
<TD>
<SELECT name="classId" onChange="changelocation(document.myform.classId.options[document.myform.classId.selectedIndex].value)" size="1">
<OPTION selected value>==请选一U分c?=</OPTION>
<sql:query var="query" dataSource="${bookdev}">
SELECT * FROM class
</sql:query>
<c:forEach var="row" items="${query.rows}">
<option value="${row.classId}">${row.className}</option>
</c:forEach>
</select>
</TD>
<TD>选择二分类</TD>
<TD>
<SELECT name="NclassId">
<OPTION selected value>==请选二U分c?=</OPTION>
</SELECT>
</TD>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>
在新?Tomcat 安裝Q預a目錄檢視是啟用的,這可以是一個很有用的測試工P如果像我一樣,您有時會忘記在某個網頁應用程式用了甚麼 servletsQ可以簡單地輸入E頁應用E式?URL Q就能取得完整的列表?
但在生產的用途上Q您可能惛_它關掉。如果沒有其他東西,它不鼓勵使用者在他們不應該逗留的地斚w逛。要關掉這個選項基本上兩個方法:
W一個選項頗為簡單,因此我們只研究W二個選項?
開啟 web.xml 檔案Q這檔案在 $CATALINA_HOME/conf/ 內,是整體的web.xml檔案Q即是這有Q何改變都會媄響該 Tomcat 所有網頁應用程式。如果您惌更精細的控制Q例如某些應用程式關掉,但某些則開啟Q就需要以W一個選項來做,建立 index.html檔案?
扑և以下部分Q?
<servlet> <servlet-name>default</servlet-name> <servlet-class> org.apache.catalina.servlets.DefaultServlet </servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>listings</param-name> <param-value>true</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> |
這是 web.xml 的第一部分Q我們關注的達R是:
<init-param> <param-name>listings</param-name> <param-value>true</param-value> </init-param> |
?nbsp; <param-value> 改為 falseQ便可關掉目錄檢視,是那麼單?
Tomcat使用的慣例與ApacheE頁伺服器相同,index.html 是Q何目錄的預設或首頁。有時您可能x變為 page1.html 或是 JSP 頁面Q如以下一?nbsp; now_see_this.jspQ?
要做到這樣Q只需開啟E頁E式?web.xml Q加上以下這些Q?
<welcome-file-list> <welcome-file>now_see_this.jsp</welcome-file> <welcome-file>page1.html</welcome-file> <welcome-file>index.htm</welcome-file> </welcome-file-list> |
要o整個系i改變,可在 $CATALINA_HOME/conf 下修Ҏ體的 web.xmlQ並?<welcome-file> 改變指向您所選的檔案?