示例 从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
