第一范文网 - 专业文章范例文档资料分享平台

Java - Servlet入门教程 

来源:用户分享 时间:2025/7/13 22:22:00 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

String mathmin=request.getParameter(\ String number,xingming; Connection con=null; Statement sql=null; ResultSet rs=null; int math,english,physics;

try{Class.forName(\ }

catch(ClassNotFoundException e){} try

{ con=DriverManager.getConnection(\ sql=con.createStatement();

String eCondition=\\

String mCondition=\\

String condition=\\

rs=sql.executeQuery(condition); out.print(\ out.print(\

out.print(\ out.print(\ out.print(\ out.print(\ out.print(\ out.print(\ while(rs.next())

{ out.print(\ number=rs.getString(1);

out.print(\ xingming=rs.getString(2);

out.print(\ math=rs.getInt(\ out.print(\ english=rs.getInt(\ out.print(\

36

physics=rs.getInt(\ out.print(\ out.print(\ }

out.print(\ con.close(); }

catch(SQLException e) { }

out.println(\ out.println(\ } }

7.7.2 使用共享连接

数据库操作中,建立连接是耗时最大的操作之一。如果客户访问的是同一数据库,那么,为每个客户都建立一个连接是不合理的。我们已经知道,servlet的成员变量是被所有用户共享的。这样,我们可以把Connection对象作为一个成员变量被所有的客户共享,也就是说第一个访问数据库的客户负责建立连接,以后所有的客户共享这个连接,每个客户都不要关闭这个共享的连接。下面的servlet使用共享连接查询数据库的所有记录。

例子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(\ }

catch(ClassNotFoundException e){} }

//通过Post方法按名字查询记录:

37

public void doPost(HttpServletRequest request,HttpServletResponse response)

throws ServletException,IOException { PrintWriter out=response.getWriter();

response.setContentType(\MIME类型。

out.println(\ out.println(\ Statement sql=null; ResultSet rs=null; if(con==null) { try

{ //第一个用户负责建立连接con。

con=DriverManager.getConnection(\ sql=con.createStatement();

String condition=\ rs=sql.executeQuery(condition); out.print(\ out.print(\

out.print(\ out.print(\ out.print(\ out.print(\ out.print(\ out.print(\ while(rs.next())

{ out.print(\

out.print(\ out.print(\ out.print(\ out.print(\ out.print(\ out.print(\ }

out.print(\ }

catch(SQLException e) {

38

} }

//其它客户通过同步块使用这个连接: else

{ synchronized(con)

{try{ sql=con.createStatement();

String condition=\ rs=sql.executeQuery(condition); out.print(\ out.print(\

out.print(\ out.print(\ out.print(\ out.print(\ out.print(\ out.print(\ while(rs.next()) { out.print(\

out.print(\ out.print(\ out.print(\ out.print(\ out.print(\ out.print(\ }

out.print(\ }

catch(SQLException e) { } } }

out.println(\ out.println(\ }

public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { doPost(request,response);

39

} }

7.8会话管理

7.8.1 获取用户的会话

我们已经知道,HTTP协议是一种无状态协议。一个客户向服务器发出请求(request)然后服务器返回响应(respons),连接就被关闭了。在服务器端不保留连接的有关信息,因此当下一次连接时,服务器已没有以前的连接信息了,无法判断这一次连接和以前的连接是否属于同一客户。因此,必须使用客户的会话,记录有关连接的信息。

一个servlet使用HttpServletRequest 对象request调用getSession方法获取用户的会话对象:

HttpSession session=request.getSession(true);

一个用户在不同的servlet中获取的session对象是完全相同的,不同的用户的session对象互不相同。有关会话对象常用方法可参见第4章。

在下面的例子16中,有两个servlet,Boy和Girl。客户访问Boy时,将一个字符串对象,存入自己的会话中,然后访问Girl,在Girl中再输出自己的session对象中的字符串对象。

例子16(效果如图7.19所示) Boy.java: import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Boy extends HttpServlet

{ public void init(ServletConfig config) throws ServletException {super.init(config); }

public void doPost(HttpServletRequest request,HttpServletResponse response)

throws ServletException,IOException { //获得一个向客户发送数据的输出流: PrintWriter out=response.getWriter();

response.setContentType(\MIME类型。

out.println(\ out.println(\

HttpSession session=request.getSession(true); //获取客户的会话对象

40

搜索更多关于: Java - Servlet入门教程  的文档
Java - Servlet入门教程 .doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c3hele9681999g5n14byc_8.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top