post方法的优点:

  • 客户数据实现了安全性。
  • 我们可以将来自客户端的大量数据发送到服务器。
  • httpservletrequest扩展了servletrequest和httpservletresponse扩展了servletResponse。
  • httpservlet,httpservletrequest和httpservletresponse属于一个名为javax.servlet.http的包。
  • 我们从客户端做出的请求,该请求被称为HTTP请求,其中作为Servlet给出的响应被称为HTTP响应。

注意:所有真实世界应用程序始终仅扩展HttpServlet,并且始终建议覆盖doget()方法或者dopost()方法。

与servlet相关联我们有三个在web.xml中指定的名称,它们是公共URL名称(对每个人都知道),部署URL名称或者虚拟名称(已在部署该人员)和秘密或者内部URL名称(已知) servlet容器或者服务器)。

  • <servlet-mapping>的目的是它将公共URL名称映射到部署URL名称。
  • <servlet>的目的是它将Deployer URL名称映射到实际servlet类名称。

HTTP Servlet:

  • httpservlet是GenericServlet的子类。
  • httpservlet包含所有生命周期方法的所有生命周期方法,并且ereforicservlet的service()方法进一步分为以下两种方法,它们是
public void doGet (HttpServletRequest, HttpServletResponse) throws ServletException, IOException 
public void doPost (HttpServletRequest, HttpServletResponse) throws ServletException, IOException
  • 每当客户端都提出请求时,servlet容器(服务器)将调用service()方法,service()方法取决于客户端应用程序使用的方法的类型。
  • 如果客户端方法被置于service()方法,则调用doget()方法,doget()方法在内部创建httpservletRequest和httpservletResponse的对象。一旦完成执行其执行,将销毁上述两个对象。
http servlet.

Java servlet示例-从数据库中检索数据

servlet程序:

package ddrs;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import java.io.*;
public class RetrieveDataBaseServ extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse res) {
        res.setContentType("text/html");
        PrintWriter pw = res.getWriter();
        try {
            DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
            Connection con = DriverManager.getConnection("oracle:jdbc:thin:@localhost:1521:Hanuman", "scott", "tiger");
            Statement st = con.createStatement();
            ResultSet rs = st.executeQuery("select * from emp");
            while (rs.next()) {
                pw.println(rs.getString(1) + " " + rs.getString(2));
            }
        } catch (Exception e) {
            res.sendError(504, "PROBLEM IN SERVLET...");
        }
    }
};

web.xml:

<web-app>
    <servlet>
        <servlet-name>onitroad</servlet-name>
        <serclet-class>ddrs.RetrieveDataBaseServ</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>onitroad</servlet-name>
        <url-pattern>psurl</url-pattern>
    </servlet-mapping>
</web-app>

在上面的程序中,我们正在使用'n'servlet类,oracledriver类;需要设置servlet-api.jar和classes111.jar的classpath

对于WebLogic:

set	classpath=F:\bea\weblogic81\server\lib\weblogic.jar;F:\oracle\ora92\jdbc\ lib\classes111.jar;

对于Tomcat:

set classpath=F:\Program Files\Apache Software Foundation\Tomcat 5.5\common\ lib\servlet-api.jar;F:\oracle\ora92\jdbc\lib\classes111.jar;

当我们在WebLogic上运行上述程序时,无需将ClassEs111.jar复制到文档根的Lib文件夹中。
由于WebLogic Server本身包含一个名为OJDBC14.jar的现有JAR文件,以处理Oracledriver。

get方法的限制:

  • 无论使用Get方法从客户端发送的数据,客户端数据将被填充或者添加为URL的一部分。例如:http://localhost:7001/servlet/ddservlet?uname = scott&pwwd = tiger
  • 无法从客户端传输大量数据到服务器端。
  • 当我们使用POST方法发送客户端数据时,该数据将作为方法主体的一部分发送,并且通过创建httpservletRequest和httpservletResponse的对象来发送Dopost()方法。
日期:2020-04-11 23:04:22 来源:oir作者:oir