📄
字号:
例子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 + -