欢迎光临散文网 会员登陆 & 注册

Serverlet

2022-06-27 11:44 作者:CAE虚拟与现实  | 我要投稿

一、Serverlet简单介绍:

Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的server端程序。其主要功能在于交互式地浏览和改动数据,生成动态Web内容。狭义的Servlet是指 Java语言实现的一个接口,广义的Servlet是指不论什么实现了这个Servlet接口的类,普通情况下,人们将Servlet理解为后者。

二、Serverlet的执行机制:

Servlet的主要功能在于交互式地浏览和改动数据,生成动态Web内容。这个过程为:
1、client发送请求至server端;
2、server将请求信息发送至Servlet;
3、Servlet生成响应内容并将其传给Server。响应内容动态生成,通常取决于client的请求;
4、server将响应返回给client ;

三、Serverlet的生命周期:

1、Server创建一个Servlet的实例,也就是调用了init();
2、一个client的请求到达Server;
3、Server将请求发送给Serverlet;

4、Serverlet生成对请求的响应;

5、Server激活Servlet的service()方法,传递请求和响应对象作为參数;

a、service()方法获得关于请求对象的信息,处理请求,訪问其它资源,获得须要的信息;
b、service()方法使用响应对象的方法,将响应传回Server,终于到达client。service()方法可能激活其它方法以处理请求,如doGet()或doPost()或程序猿自己开发的新的方法;
c、对于很多其它的client请求,Server创建新的请求和响应对象,仍然激活此Servlet的service()方法,将这两个对象作为參数传递给它。如此重 复以上的循环,但无需再次调用init()方法。一般Servlet仅仅初始化一次   ,当Server不再须要Servlet时(一般当Server关闭时),Server调用Servlet的Destroy()方法。

四、Serverlet调用JavaBean:

//通过Servlet调用JavaBean输出结果集,并打印

//JavaBean:TBean SourceCode

package Demo;

import java.io.*;

import java.sql.*;

/**

* 在此处插入类型说明。

* 创建日期:(00-7-10 8:30:32)

* @author:Administrator

*/

public class TBean implements Serializable {

protected Connection conn = null;

protected Statement stmt = null;

protected java.sql.ResultSet Result;

/**

* TBean 构造子注解。

*/

public TBean() {

super();

}

/**

* 在此处插入方法说明。

* 创建日期:(00-7-10 8:31:06)

*/

public void execute() {

try {

Class.forName("COM.ibm.db2.jdbc.App.DB2Driver").newInstance();

conn = DriverManager.getConnection("jdbc:db2:sample", "db2admin", "db2admin");

stmt = conn.createStatement();

String sql = "SELECT * FROM STAFF WHERE DEPT=20";

ResultSet rs = stmt.executeQuery(sql);

setResult(rs);


} catch (SQLException e) {

} catch (IllegalAccessException e2) {

} catch (ClassNotFoundException e3) {

} catch (InstantiationException e4) {

}

}

/**

* 在此处插入方法说明。

* 创建日期:(00-7-10 8:36:42)

* @return java.sql.ResultSet

*/

public java.sql.ResultSet getResult() {

return Result;

}

/**

* 在此处插入方法说明。

* 创建日期:(00-7-10 8:36:42)

* @param newResult java.sql.ResultSet

*/

public void setResult(java.sql.ResultSet newResult) {

Result = newResult;

}

/**

* 在此处插入方法说明。

* 创建日期:(00-7-10 8:35:54)

*/

public void Sqlclose() {

try {

conn.close();

stmt.close();

} catch (SQLException e) {

}

}

}


//Servlet:TServlet,调用JavaBean,并将结果集打印:

package Demo;


import java.io.*;

import java.sql.*;

import javax.servlet.*;

import javax.servlet.http.*;

/**

* 在此处插入类型说明。

* 创建日期:(00-7-10 8:37:57)

* @author:Administrator

*/

public class TServlet extends HttpServlet implements Serializable {

/**

* TServlet 构造子注解。

*/

public TServlet() {

super();

}

/**

* service 方法注解。

*/

public void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {

try {

Demo.TBean javabean = new Demo.TBean();

javabean.execute();

ResultSet rs1 = javabean.getResult();

PrintWriter out = res.getWriter();

res.setContentType("text/html");

out.println("<table border=1>");

out.println("<H1>Hello World</H1>");

out.println("<td>ID</td><td>NAME</td><td>DEPT</td><td>JOB</td><td>YEARS</td><td>SALARY</td><td>COMM</td>");

while (rs1.next()) {

out.println("<tr>");

for (int i = 1; i <= 7; i++)

out.println("<td>" + rs1.getString(i) + "</td>");

out.println("</tr>");

}

out.println("</table>");

javabean.Sqlclose();

} catch (SQLException e) {

}

}

}

//运行:在VisualAge for Java 的IBM Websphere Test Environment的环境下:

//http://localhost:8080/servlet/Demo.TServlet



Hello Print ID NAME DEPT JOB YEARS SALARY COMM

10 Sanders 20 Mgr 7 18357.50 null

20 Pernal 20 Sales 8 18171.25 612.45

80 James 20 Clerk null 13504.60 128.20

190 Sneider 20 Clerk 8 14252.75 126.50


实例原文链接:https://blog.csdn.net/fly29/article/details/215776


Serverlet的评论 (共 条)

分享到微博请遵守国家法律