Serverlet
一、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