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的对象。一旦完成执行其执行,将销毁上述两个对象。
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