示例 从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表示一个上下文路径,可以是文档根或者战争文件。
日期:2020-04-11 23:04:23 来源:oir作者:oir