对于任何项目开发而言, CRUD(创建, 读取, 更新和删除)应用程序都是最重要的应用程序。在Servlet中, 我们可以轻松创建CRUD应用程序。
Servlet CRUD示例
使用序列使用自动递增的ID在Oracle数据库中创建”
user905″
表。其中有5个字段:ID, 名称, 密码, 电子邮件和国家。
文章图片
档案:index.html
<
!DOCTYPE html>
<
html>
<
head>
<
meta charset="ISO-8859-1">
<
title>
Insert title here<
/title>
<
/head>
<
body>
<
h1>
Add New Employee<
/h1>
<
form action="SaveServlet" method="post">
<
table>
<
tr>
<
td>
Name:<
/td>
<
td>
<
input type="text" name="name"/>
<
/td>
<
/tr>
<
tr>
<
td>
Password:<
/td>
<
td>
<
input type="password" name="password"/>
<
/td>
<
/tr>
<
tr>
<
td>
Email:<
/td>
<
td>
<
input type="email" name="email"/>
<
/td>
<
/tr>
<
tr>
<
td>
Country:<
/td>
<
td>
<
select name="country" style="width:150px">
<
option>
India<
/option>
<
option>
USA<
/option>
<
option>
UK<
/option>
<
option>
Other<
/option>
<
/select>
<
/td>
<
/tr>
<
tr>
<
td colspan="2">
<
input type="submit" value="http://www.srcmini.com/Save Employee"/>
<
/td>
<
/tr>
<
/table>
<
/form>
<
br/>
<
a href="http://www.srcmini.com/ViewServlet">
view employees<
/a>
<
/body>
<
/html>
档案:Emp.java
public class Emp {
private int id;
private String name, password, email, country;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}}
档案:EmpDao.java
import java.util.*;
import java.sql.*;
public class EmpDao { public static Connection getConnection(){
Connection con=null;
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "system", "oracle");
}catch(Exception e){System.out.println(e);
}
return con;
}
public static int save(Emp e){
int status=0;
try{
Connection con=EmpDao.getConnection();
PreparedStatement ps=con.prepareStatement(
"insert into user905(name, password, email, country) values (?, ?, ?, ?)");
ps.setString(1, e.getName());
ps.setString(2, e.getPassword());
ps.setString(3, e.getEmail());
ps.setString(4, e.getCountry());
status=ps.executeUpdate();
con.close();
}catch(Exception ex){ex.printStackTrace();
}return status;
}
public static int update(Emp e){
int status=0;
try{
Connection con=EmpDao.getConnection();
PreparedStatement ps=con.prepareStatement(
"update user905 set name=?, password=?, email=?, country=? where id=?");
ps.setString(1, e.getName());
ps.setString(2, e.getPassword());
ps.setString(3, e.getEmail());
ps.setString(4, e.getCountry());
ps.setInt(5, e.getId());
status=ps.executeUpdate();
con.close();
}catch(Exception ex){ex.printStackTrace();
}return status;
}
public static int delete(int id){
int status=0;
try{
Connection con=EmpDao.getConnection();
PreparedStatement ps=con.prepareStatement("delete from user905 where id=?");
ps.setInt(1, id);
status=ps.executeUpdate();
con.close();
}catch(Exception e){e.printStackTrace();
}return status;
}
public static Emp getEmployeeById(int id){
Emp e=new Emp();
try{
Connection con=EmpDao.getConnection();
PreparedStatement ps=con.prepareStatement("select * from user905 where id=?");
ps.setInt(1, id);
ResultSet rs=ps.executeQuery();
if(rs.next()){
e.setId(rs.getInt(1));
e.setName(rs.getString(2));
e.setPassword(rs.getString(3));
e.setEmail(rs.getString(4));
e.setCountry(rs.getString(5));
}
con.close();
}catch(Exception ex){ex.printStackTrace();
}return e;
}
public static List<
Emp>
getAllEmployees(){
List<
Emp>
list=new ArrayList<
Emp>
();
try{
Connection con=EmpDao.getConnection();
PreparedStatement ps=con.prepareStatement("select * from user905");
ResultSet rs=ps.executeQuery();
while(rs.next()){
Emp e=new Emp();
e.setId(rs.getInt(1));
e.setName(rs.getString(2));
e.setPassword(rs.getString(3));
e.setEmail(rs.getString(4));
e.setCountry(rs.getString(5));
list.add(e);
}
con.close();
}catch(Exception e){e.printStackTrace();
}return list;
}
}
文件:SaveServlet.java
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/SaveServlet")
public class SaveServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out=response.getWriter();
String name=request.getParameter("name");
String password=request.getParameter("password");
String email=request.getParameter("email");
String country=request.getParameter("country");
Emp e=new Emp();
e.setName(name);
e.setPassword(password);
e.setEmail(email);
e.setCountry(country);
int status=EmpDao.save(e);
if(status>
0){
out.print("<
p>
Record saved successfully!<
/p>
");
request.getRequestDispatcher("index.html").include(request, response);
}else{
out.println("Sorry! unable to save record");
}out.close();
}}
文件:EditServlet.java
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/EditServlet")
public class EditServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out=response.getWriter();
out.println("<
h1>
Update Employee<
/h1>
");
String sid=request.getParameter("id");
int id=Integer.parseInt(sid);
Emp e=EmpDao.getEmployeeById(id);
out.print("<
form action='EditServlet2' method='post'>
");
out.print("<
table>
");
out.print("<
tr>
<
td>
<
/td>
<
td>
<
input type='hidden' name='id' value='"+e.getId()+"'/>
<
/td>
<
/tr>
");
out.print("<
tr>
<
td>
Name:<
/td>
<
td>
<
input type='text' name='name' value='"+e.getName()+"'/>
<
/td>
<
/tr>
");
out.print("<
tr>
<
td>
Password:<
/td>
<
td>
<
input type='password' name='password' value='"+e.getPassword()+"'/>
<
/td>
<
/tr>
");
out.print("<
tr>
<
td>
Email:<
/td>
<
td>
<
input type='email' name='email' value='"+e.getEmail()+"'/>
<
/td>
<
/tr>
");
out.print("<
tr>
<
td>
Country:<
/td>
<
td>
");
out.print("<
select name='country' style='width:150px'>
");
out.print("<
option>
India<
/option>
");
out.print("<
option>
USA<
/option>
");
out.print("<
option>
UK<
/option>
");
out.print("<
option>
Other<
/option>
");
out.print("<
/select>
");
out.print("<
/td>
<
/tr>
");
out.print("<
tr>
<
td colspan='2'>
<
input type='submit' value='http://www.srcmini.com/Edit &
Save'/>
<
/td>
<
/tr>
");
out.print("<
/table>
");
out.print("<
/form>
");
out.close();
}
}
文件:EditServlet2.java
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/EditServlet2")
public class EditServlet2 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out=response.getWriter();
String sid=request.getParameter("id");
int id=Integer.parseInt(sid);
String name=request.getParameter("name");
String password=request.getParameter("password");
String email=request.getParameter("email");
String country=request.getParameter("country");
Emp e=new Emp();
e.setId(id);
e.setName(name);
e.setPassword(password);
e.setEmail(email);
e.setCountry(country);
int status=EmpDao.update(e);
if(status>
0){
response.sendRedirect("ViewServlet");
}else{
out.println("Sorry! unable to update record");
}out.close();
}}
文件:DeleteServlet.java
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/DeleteServlet")
public class DeleteServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String sid=request.getParameter("id");
int id=Integer.parseInt(sid);
EmpDao.delete(id);
response.sendRedirect("ViewServlet");
}
}
文件:ViewServlet.java
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/ViewServlet")
public class ViewServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out=response.getWriter();
out.println("<
a href='http://www.srcmini.com/index.html'>
Add New Employee<
/a>
");
out.println("<
h1>
Employees List<
/h1>
");
List<
Emp>
list=EmpDao.getAllEmployees();
out.print("<
table border='1' width='100%'");
out.print("<
tr>
<
th>
Id<
/th>
<
th>
Name<
/th>
<
th>
Password<
/th>
<
th>
Email<
/th>
<
th>
Country<
/th>
<
th>
Edit<
/th>
<
th>
Delete<
/th>
<
/tr>
");
for(Emp e:list){
out.print("<
tr>
<
td>
"+e.getId()+"<
/td>
<
td>
"+e.getName()+"<
/td>
<
td>
"+e.getPassword()+"<
/td>
<
td>
"+e.getEmail()+"<
/td>
<
td>
"+e.getCountry()+"<
/td>
<
td>
<
a href='http://www.srcmini.com/EditServlet?id="+e.getId()+"'>
edit<
/a>
<
/td>
<
td>
<
a href='http://www.srcmini.com/DeleteServlet?id="+e.getId()+"'>
delete<
/a>
<
/td>
<
/tr>
");
}
out.print("<
/table>
");
out.close();
}
}
下载 【Servlet中的CRUD操作示例图解】下载此示例(使用Eclipse开发)
输出 第一页将如下所示, 填写表格并提交。
文章图片
你将收到一条消息” 记录已成功保存!” 。
文章图片
单击查看员工链接以查看总员工列表。
文章图片
单击更新链接, 以更改数据。
文章图片
更改信息后, 提交按钮。你将看到信息已更改。
文章图片
现在, 单击删除链接以删除记录。
文章图片
推荐阅读
- Servlet中的事件和监听器
- 在myeclipse IDE中创建Servlet实例图解
- 创建servlet示例的详细步骤图解
- Servlet中的Cookie用法详解
- Win10无法安装Visual Studio 2017的处理办法
- Win10系统hosts保存时提示另存为该怎样办?
- Win10运行腾讯游戏taslogin application停止工作的处理办法
- Win10如何删除电脑上的java?
- Win10系统如何完全删除打印机驱动