示例 从HTML表单中获取数据并保存到数据库中

产品数据库:

create table Product (
pid number (4),
pname varchar2 (15),
price number (6, 2)
);

web.xml:

<web-app>
    <servlet>
        <servlet-name>abc</servlet-name>
        <servlet-class>DatabaServ</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>abc</servlet-name>
        <url-pattern>/getdata</url-pattern>
    </servlet-mapping>
</web-app>

prodata.html:

<html>
    <title>Product Data</title>
    <head><center><h2>Product Information</h2></center></head>
    <body bgcolor="#BDB76B">
    <center>
        <form name="prodata" action="./getdata" method="post">
            <table border="1" bgcolor="#E9967A">
                <tr>
                    <th>Enter product id : </th>
                    <td><input type="text" name="prodata_pid" value=""></td>
                </tr>
                <tr>
                    <th>Enter product name : </th>
                    <td><input type="text" name="prodata_name" value=""></td>
                </tr>
                <tr>
                    <th>Enter product price : </th>
                    <td><input type="text" name="prodata_price" value=""></td>
                </tr>
                <tr>
                <table>
                    <tr>
                        <td align="center"><input type="submit" name="prodata_insert" value="Insert"></td>
                        <td align="center"><input type="reset" name="prodata_reset" value="Clear"></td>
                    </tr>
                </table>
                </tr>
            </table>
        </form>
    </center>
    </body>
</html>

darabaserv.java:

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
public class DatabaServ extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
        res.setContentType("text/html");
        PrintWriter pw = res.getWriter();
        String pid1 = req.getParameter("prodata_pid");
        String pname = req.getParameter("prodata_pname");
        String price1 = req.getParameter("prodata_price");
        int pid = Integer.parseInt(pid1);
        float price = Float.parseFloat(price1);
        try {
            DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
            Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:Hanuman", "scott", "tiger");
            PreparedStatement ps = con.prepareStatement("insert into Product values (?,?,?)");
            ps.setInt(1, pid);
            ps.setString(2, pname);
            ps.setFloat(3, price);
            int i = ps.executeUpdate();
            pw.println("<h4>" + i + " ROWS INSERTED...");
            con.close();
        } catch (Exception e) {
            res.sendError(503, "PROBLEM IN DATABASE...");
        }
    }
    public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
        doGet(req, res);
    }
};

servlet处理HTML数据:

为了在Servlet中处理或者获取数据HTML表单,我们具有以下方法,该方法存在于httpservletRequest中。

例如:

String sno1=req.getParameter ("sno"); 
String sname1=req.getParameter ("sname"); 
String cname1=req.getParameter ("cname");

req是httpservletRequest的一个对象。

注意:HttpServletRequest的对象将由servlet容器自动创建,它包含客户端请求的数据。

示例在浏览器上显示客户端请求的数据

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class DataServ extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
        res.setContentType("text/html");
        PrintWriter pw = res.getWriter();
        String name = req.getParameter("persdata_eurn");
        String cname = req.getParameter("persdata_eurc");
        pw.println("<center><h3>HELLO..! Mr/Mrs. " + name + "</h3></center>");
        pw.println("<center><h3>Your COURSE is  " + cname + "</h3></center>");
    }
    public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
        doGet(req, res);
    }
};

web.xml:

<web-app>
    <servlet>
        <servlet-name>abc</servlet-name>
        <servlet-class>DataServ</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>abc</servlet-name>
        <url-pattern>/getdata</url-pattern>
    </servlet-mapping>
</web-app>

说明:

  • 每当我们未以HTML形式输入数据时,数据将被视为空白区域。
  • 查询字符串表示客户端通过HTML表单传递给servlet的数据。 URI代表统一资源指示灯,它给出了可用的servlet位置。 URL代表统一资源定位器,它给出了哪个端口号,其中服务器特定JSP或者Servlet正在运行。 HT表示一个上下文路径,可以是文档根或者战争文件。
如何在servlet中处理HTML数据
日期:2020-04-11 23:04:23 来源:oir作者:oir