??
字號:
例子13(效果如圖9.17所示)
提交小說內容的JSP頁面
story.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import ="java.io.*" %>
<HTML>
<BODY>
<H4>小說已有內容:</H4>
<Font size=1 Color=blue>
<% File f=new File("F:/2000","story.txt");
//列出小說的內容:
try{ RandomAccessFile file=
new RandomAccessFile(f,"r");
String temp=null;
while((temp=file.readUTF())!=null)
{ byte d[]=temp.getBytes("ISO-8859-1");
temp=new String(d);
out.print("<BR>"+temp);
}
file.close();
}
catch(IOException e){}
%>
<P>請輸入續寫的新內容:
<Form action="examples/servlet/Write" method=post name=form>
<TEXTAREA name="content" ROWs="12" COLS=80 WRAP="physical">
</TEXTAREA>
<BR>
<INPUT type="submit" value="提交內容" name="submit">
</FORM>
</BODY>
</HTML>
續寫文件的servlet源文件:
Write.java:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Write extends HttpServlet
{ //聲明一個共享的文件和共享字符串:
File f=null;
String use="yes" ;
public void init(ServletConfig config) throws ServletException
{super.init(config);
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException
{ //獲取提交的文件內容:
String content=request.getParameter("content");
//獲得一個向客戶發送數據的輸出流:
PrintWriter out=response.getWriter();
response.setContentType("text/html;charset=GB2312");//設置響應的MIME類型。
out.println("<HTML>");
out.println("<BODY>");
f=new File("F:/2000","story.txt");
//把對文件的操作放入一個同步塊中,并通知
//其它用戶該文件正在被操作中:
if(use.startsWith("yes"))
{ synchronized(f)
{ use="using";
try{
RandomAccessFile file=new RandomAccessFile(f,"rw");
file.seek(file.length()); //定位到文件的末尾。
file.writeUTF(content);
file.close();
use="yes";
out.print("<BR>"+"contents have been Write to file");
}
catch(IOException e){}
}
}
//如果該小說正在被續寫,就通知客戶等待:
else
{out.print("file is writing,wait please");
}
out.println("</BODY>");
out.println("</HTML>");
}
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException
{
doPost(request,response);
}
}
例子14(效果如圖9.18所示)
提交查詢條件的JSP頁面
condition.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<HTML>
<BODY bgcolor=cyan>
<Font size=1>
<FORM action="examples/servlet/Inquire" Method="post">
<P>成績查詢
<P>輸入姓名:
<Input type=text name="name">
<Input type=submit name="g" value="提交">
</Form>
<FORM action="examples/servlet/Inquire" Method="get" >
<P>根據分數查詢名單:<BR>
英語分數在
<Input type=text name="englishmin" value=1>
和
<Input type=text name="englishmax" value=100>
之間
<BR> 數學分數在
<Input type=text name="mathmin" value=1>
和
<Input type=text name="mathmax" value=100>
之間 <BR>
<Input type=submit value="提交">
</Form>
</BODY>
</HTML>
負責查詢的servlet源文件:
Inquire.java:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
public class Inquire extends HttpServlet
{ public void init(ServletConfig config) throws ServletException
{super.init(config);
}
//通過Post方法按名字查詢記錄:
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException
{ PrintWriter out=response.getWriter();
response.setContentType("text/html;charset=GB2312");//設置響應的MIME類型。
out.println("<HTML>");
out.println("<BODY>");
//獲取提交的姓名:
String name=request.getParameter("name");
String number,xingming;
Connection con=null;
Statement sql=null;
ResultSet rs=null;
int math,english,physics;
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){}
try
{ con=DriverManager.getConnection("jdbc:odbc:sun","sa","");
sql=con.createStatement();
String condition="SELECT * FROM students WHERE 姓名 = "+"'"+name+"'";
rs=sql.executeQuery(condition);
out.print("<Table Border>");
out.print("<TR>");
out.print("<TH width=100>"+"Number");
out.print("<TH width=100>"+"Name");
out.print("<TH width=50>"+"Math");
out.print("<TH width=50>"+"English");
out.print("<TH width=50>"+"Phsics");
out.print("</TR>");
while(rs.next())
{ out.print("<TR>");
number=rs.getString(1);
out.print("<TD >"+number+"</TD>");
xingming=rs.getString(2);
out.print("<TD >"+xingming+"</TD>");
math=rs.getInt("數學成績");
out.print("<TD >"+math+"</TD>");
english=rs.getInt("英語成績");
out.print("<TD >"+english+"</TD>");
physics=rs.getInt("物理成績");
out.print("<TD >"+physics+"</TD>");
out.print("</TR>") ;
}
out.print("</Table>");
con.close();
}
catch(SQLException e)
{
}
out.println("</BODY>");
out.println("</HTML>");
}
//通過Get方法按成績查詢記錄:
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException
{ PrintWriter out=response.getWriter();
response.setContentType("text/html;charset=GB2312");//設置響應的MIME類型。
out.println("<HTML>");
out.println("<BODY>");
//獲取提交的分數的最大值和最小值:
String englishmax=request.getParameter("englishmax");
String englishmin=request.getParameter("englishmin");
String mathmax=request.getParameter("mathmax");
String mathmin=request.getParameter("mathmin");
String number,xingming;
Connection con=null;
Statement sql=null;
ResultSet rs=null;
int math,english,physics;
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){}
try
{ con=DriverManager.getConnection("jdbc:odbc:sun","sa","");
sql=con.createStatement();
String eCondition="英語成績 <= "+englishmax+" AND "+"英語成績 >= "+englishmin;
String mCondition="數學成績 <= "+mathmax+" AND "+"數學成績 >= "+mathmin;
String condition="SELECT * FROM students WHERE "+mCondition+" and "+eCondition;
rs=sql.executeQuery(condition);
out.print("<Table Border>");
out.print("<TR>");
out.print("<TH width=100>"+"Number");
out.print("<TH width=100>"+"Name");
out.print("<TH width=50>"+"Math");
out.print("<TH width=50>"+"English");
out.print("<TH width=50>"+"Phsics");
out.print("</TR>");
while(rs.next())
{ out.print("<TR>");
number=rs.getString(1);
out.print("<TD >"+number+"</TD>");
xingming=rs.getString(2);
out.print("<TD >"+xingming+"</TD>");
math=rs.getInt("數學成績");
out.print("<TD >"+math+"</TD>");
english=rs.getInt("英語成績");
out.print("<TD >"+english+"</TD>");
physics=rs.getInt("物理成績");
out.print("<TD >"+physics+"</TD>");
out.print("</TR>") ;
}
out.print("</Table>");
con.close();
}
catch(SQLException e)
{
}
out.println("</BODY>");
out.println("</HTML>");
}
}
例子15
使用共享連接的servlet源文件
ShareInquire.java:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
public class ShareInquire extends HttpServlet
{ Connection con=null; //共享連接。
public void init(ServletConfig config) throws ServletException
{super.init(config);
//加載JDBC-ODBC橋接器:
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){}
}
//通過Post方法按名字查詢記錄:
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException
{ PrintWriter out=response.getWriter();
response.setContentType("text/html;charset=GB2312");//設置響應的MIME類型。
out.println("<HTML>");
out.println("<BODY>");
Statement sql=null;
ResultSet rs=null;
if(con==null)
{ try
{ //第一個用戶負責建立連接con。
con=DriverManager.getConnection("jdbc:odbc:sun","sa","");
sql=con.createStatement();
String condition="SELECT * FROM students";
rs=sql.executeQuery(condition);
out.print("<Table Border>");
out.print("<TR>");
out.print("<TH width=100>"+"Number");
out.print("<TH width=100>"+"Name");
out.print("<TH width=50>"+"Math");
out.print("<TH width=50>"+"English");
out.print("<TH width=50>"+"Phsics");
out.print("</TR>");
while(rs.next())
{ out.print("<TR>");
out.print("<TD >"+rs.getString(1)+"</TD>");
out.print("<TD >"+rs.getString(2)+"</TD>");
out.print("<TD >"+rs.getInt("數學成績")+"</TD>");
out.print("<TD >"+rs.getInt("英語成績")+"</TD>");
out.print("<TD >"+rs.getInt("物理成績")+"</TD>");
out.print("</TR>") ;
}
out.print("</Table>");
}
catch(SQLException e)
{
}
}
//其它客戶通過同步塊使用這個連接:
else
{ synchronized(con)
{try{ sql=con.createStatement();
String condition="SELECT * FROM students";
rs=sql.executeQuery(condition);
out.print("<Table Border>");
out.print("<TR>");
out.print("<TH width=100>"+"Number");
out.print("<TH width=100>"+"Name");
out.print("<TH width=50>"+"Math");
out.print("<TH width=50>"+"English");
out.print("<TH width=50>"+"Phsics");
out.print("</TR>");
while(rs.next())
{ out.print("<TR>");
out.print("<TD >"+rs.getString(1)+"</TD>");
out.print("<TD >"+rs.getString(2)+"</TD>");
out.print("<TD >"+rs.getInt("數學成績")+"</TD>");
out.print("<TD >"+rs.getInt("英語成績")+"</TD>");
out.print("<TD >"+rs.getInt("物理成績")+"</TD>");
out.print("</TR>") ;
}
out.print("</Table>");
}
catch(SQLException e)
{
}
}
}
out.println("</BODY>");
out.println("</HTML>");
}
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException
{ doPost(request,response);
}
}
例子16(效果如圖9.19所示)
Boy.java:
import java.io.*;
import javax.servlet.*;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -