servlet的增刪改查
阿新 • • 發佈:2018-12-26
這是一個簡單的servlet增刪改查介面
t3.sql資料庫:
/*
SQLyog 企業版 - MySQL GUI v8.14
MySQL - 5.5.25a : Database - test
*********************************************************************
*/
/*!40101 SET NAMES utf8 */;
/*!40101 SET SQL_MODE=''*/;
/*!40014 SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @ [email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @[email protected]@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @[email protected]@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`test` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `test`;
/*Table structure for table `t3` */
DROP TABLE IF EXISTS `t3`;
CREATE TABLE `t3` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`password` varchar(32) DEFAULT NULL,
`userName` varchar(32) DEFAULT NULL,
`sex` varchar(5) DEFAULT NULL,
`age` int(2) DEFAULT NULL,
`address` varchar(1024) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=50 DEFAULT CHARSET=utf8;
/*Data for the table `t3` */
insert into `t3`(`id`,`password`,`userName`,`sex`,`age`,`address`) values (1,'23','123','女',12,' '),(36,'5345423','李四','男',12,'沙河'),(37,'654321','admin','男',30,'中國北京'),(38,'123456','admin2','女',28,'中國北京'),(39,'654321','admin','男',29,'中國河北'),(40,'123456','admin3','男',29,'中國河北'),(41,'12345678','admin4','男',29,'中國河北'),(42,'123','張三','男',22,'中國'),(43,'12345','王五','男',32,'山東濟南'),(44,'123456','老劉','男',33,'中國河南'),(45,'654321','老劉','男',33,'中國河南'),(46,'123','老王','男',33,'中國河南'),(48,'12345678','老八','男',21,'234'),(49,'456123','admin','女',21,'123456');
/*!40101 SET [email protected]_SQL_MODE */;
/*!40014 SET [email protected]_FOREIGN_KEY_CHECKS */;
/*!40014 SET [email protected]_UNIQUE_CHECKS */;
/*!40111 SET [email protected]_SQL_NOTES */;
servletAction.java原始碼:
package com.action; import java.io.IOException; import java.io.PrintWriter; import java.io.UnsupportedEncodingException; import java.util.List; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.service.stuInfoService; @SuppressWarnings("serial") public class servletAction extends HttpServlet { //匯入service服務包 stuInfoService stuinfoService=new stuInfoService(); //影響行數預設為-1,因為資料操作後的返回結果不為-1 private int i=-1; //建立list陣列 private List list=null; //設定初始狀態 private boolean state=false; /* * servlet action * */ public servletAction() { super(); } /* * servlet銷燬方法 * */ public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } /* * doGet方法 * */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //如果是get方法,自動帶引數跳轉到post()方法 doPost(request, response); } /* * doPost()方法 * */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //設定頁面編碼格式為utf-8 request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); //獲取頁面路徑請求引數action String action=request.getParameter("action"); //根據頁面路徑請求引數判斷應該跳轉的頁面 if(action.equals("insert")){ //跳轉到插入頁面 insert(request,response); }else if(action.equals("delete")){ //跳轉到刪除頁面 delete(request,response); }else if(action.equals("update")){ //跳轉到修改頁面 update(request,response); }else if(action.equals("select")){ //跳轉到查詢頁面 select(request,response); } } /* * 查詢方法 * */ private void select(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException,ServletException, IOException { // TODO Auto-generated method stub //設定頁面編碼格式為utf-8 request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); System.out.println("這裡是查詢方法!"); //獲取頁面請求引數 String userName=request.getParameter("userName"); String password=request.getParameter("password"); String sex=request.getParameter("sex"); String age=request.getParameter("age"); String address=request.getParameter("address"); //判斷性別是否則”請選擇“,如果是則置空,因為性別中只有”男“,”女“,沒有”請選擇“ if("請選擇".equals(sex)){ sex=""; System.out.println("sex:"+sex); } //在控制檯打印出來頁面傳遞過來的引數 System.out.println("userName:"+userName+" password:"+password+" sex:"+sex+" age:"+age+" address:"+address); //穿點String陣列,方便引數呼叫 String[] keyOption=new String[]{"userName","password","sex","age","address"}; String[] valOption=new String[]{userName,password,sex,age,address}; //迴圈遍歷頁面引數 for(int i=0;i<valOption.length;i++){ //判斷頁面傳遞來的引數是否存在,如果不存在則置空 if(null==valOption[i]){ valOption[i]=""; } } //查詢方法,獲取mysql資料庫的返回結果陣列 list=stuinfoService.select(keyOption,valOption); //將servlet獲取的查詢結果列印到控制檯 System.out.println("姓名"+" 密碼"+" 性別"+" 年齡"+" 地址"); //判斷獲取的來自mysql資料庫的陣列是否存在 if(list!=null){ //判斷list陣列是否為空 if(list.size()>0){ //迴圈遍歷list陣列 for(int i=0;i<list.size();i++){ //建立Map陣列接受list傳遞來的每一行引數 Map<String,String> map=(Map<String, String>) list.get(i); //在控制檯打印出每一行陣列 System.out.println(map.get("userName")+" "+map.get("password")+" "+map.get("sex")+" "+map.get("age")+" "+map.get("address")); } }else{ System.out.println("這裡是select()方法,list陣列為空!"); } }else{ System.out.println("這裡是select()方法,list陣列不存在!"); } //將查詢結果列印到前臺介面 response.setContentType("text/html"); PrintWriter out = response.getWriter(); out .println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); out.println("<HTML>"); out.println(" <HEAD><TITLE>Select Servlet</TITLE></HEAD>"); out.println(" <BODY>"); out.println("<table>"); //在servlet頁面打印出每一行的航標題 out.println("<tr> <th>姓名</th> <th>密碼</th> <th>性別</th> <th>年齡</th> <th>地址</th> </tr>"); //判斷list陣列是否存在 if(list!=null){ //判斷list陣列是否為空 if(list.size()>0){ //迴圈遍歷list陣列 for(int i=0;i<list.size();i++){ //建立Map容器接收list傳遞來的每一行引數 Map<String,String> map=(Map<String, String>) list.get(i); //打印出每一行的結果 out.println("<tr>"); out.println("<th>"); out.println(map.get("userName")); out.println("</th>"); out.println("<th>"); out.println(map.get("password")); out.println("</th>"); out.println("<th>"); out.println(map.get("sex")); out.println("</th>"); out.println("<th>"); out.println(map.get("age")); out.println("</th>"); out.println("<th>"); out.println(map.get("address")); out.println("</th>"); out.println("</tr>"); } }else{ System.out.println("這裡是select()方法,list陣列為空!"); } }else{ System.out.println("這裡是select()方法,list陣列不存在!"); } out.println("</table>"); out.println(" </BODY>"); out.println("</HTML>"); out.flush(); out.close(); } /* * 修改方法 * */ private void update(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException,ServletException, IOException { // TODO Auto-generated method stub //設定頁面編碼格式為utf-8 request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); System.out.println("這裡是update方法"); //獲取頁面請求引數 String userName=request.getParameter("userName"); String upOption=request.getParameter("upOption"); String upValue=request.getParameter("upValue"); //在控制檯打印出獲取的頁面引數 System.out.println("userName:"+userName+" upOption:"+upOption+" upValue:"+upValue); //判斷upOption是否為”請選擇“ if("請選擇".equals(upOption)){ //如果引數是”請選擇“,則認為沒有任何引數,所以說不進行任何操作,自動返回原始頁面 response.sendRedirect("index.jsp"); }else{ //判斷upValue引數是否存在 if(upValue!=null){ //判斷upValue引數是否為空 if("".equals(upValue)){ //如果為空,不進行任何操作,直接返回原始頁面 response.sendRedirect("index.jsp"); System.out.println("upValue引數為空!"); }else{ //將獲取的下拉列表漢語資訊轉換成對應的字串 if("姓名".equals(upOption)){ upOption="userName"; }else if("密碼".equals(upOption)){ upOption="password"; }else if("性別".equals(upOption)){ upOption="sex"; }else if("年齡".equals(upOption)){ upOption="age"; }else if("地址".equals(upOption)){ upOption="address"; } //在控制檯打印出轉換引數後的結果 System.out.println("userName:"+userName+" upOption:"+upOption+" upValue:"+upValue); //執行修改資料庫操作,返回影響行數 i=stuinfoService.update(userName,upOption,upValue); //根據返回的影響行數判斷資料是否插入成功 if(i!=-1){ System.out.println("這裡是update()方法,資料修改成功!"); }else{ System.out.println("這裡是update()方法,資料修改失敗!"); } //修改後自動跳轉到查詢方法,方便自己檢視修改的引數結果 response.sendRedirect("servletAction?action=select"); } }else{ //如果不存在,不進行任何操作,直接返回原始頁面 response.sendRedirect("index.jsp"); System.out.println("upValue引數並不存在!"); } } } /* * 資料刪除方法 * */ private void delete(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException,ServletException, IOException { // TODO Auto-generated method stub System.out.println("這裡是刪除方法!"); //這隻頁面編碼格式 request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); //獲取頁面請求引數 String delOption=request.getParameter("delOption"); String delValue=request.getParameter("delValue"); //列印獲取的頁面請求引數 System.out.println("delOption:"+delOption+" delValue:"+delValue); //將jsp頁面傳來的引數轉換成與資料庫對應的引數 if("id".equals(delOption)){ delOption="id"; }else if("姓名".equals(delOption)){ delOption="userName"; }else if("密碼".equals(delOption)){ delOption="password"; }else if("性別".equals(delOption)){ delOption="sex"; }else if("年齡".equals(delOption)){ delOption="age"; }else if("地址".equals(delOption)){ delOption="address"; } //其實以前我建立的是Object,但是後來為了方便對sql語句的拼接,所以就改成了String型別,所以說這裡用哪種都是一樣能用的 String deleteOption=delOption; String deleteValue=delValue; //列印對應的Object或者是String System.out.println("deleteOption:"+deleteOption+" deleteValue:"+deleteValue); //執行刪除方法,獲取影響行數 i=stuinfoService.delete(deleteOption,deleteValue); //判斷資料是否刪除成功 if(i!=-1){ System.out.println("這裡是delete()方法,資料刪除成功!"); }else{ System.out.println("這裡是delete()方法,資料刪除失敗!"); } //刪除後自動跳轉到查詢方法,方便對於刪除結果的檢視 response.sendRedirect("servletAction?action=select"); } /* * 插入方法 * */ private void insert(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException,ServletException, IOException,NullPointerException { // TODO Auto-generated method stub //設定頁面編碼格式為utf-8 request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); System.out.println("這裡是插入介面!"); //獲取頁面請求引數 String userName=request.getParameter("userName"); String password=request.getParameter("password"); String sex=request.getParameter("sex"); String age=request.getParameter("age"); String address=request.getParameter("address"); //判斷userName是否存在 if(userName!=null){ //判斷userName是否為空 if("".equals(userName)){ state=true; } }else{ state=true; } //判斷password是否存在 if(password!=null){ //判斷password是否為空 if("".equals(password)){ state=true; } }else{ state=true; } //判斷sex是否存在 if(sex!=null){ //判斷sex是否為空 if("".equals(sex)){ state=true; } }else{ state=true; } //判斷age是否存在 if(age!=null){ //判斷age是否為空 if("".equals(age)){ state=true; } }else{ state=true; } //判斷address是否存在 if(address!=null){ //判斷address是否為空 if("".equals(address)){ state=true; } }else{ state=true; } /*//判斷插入的資料是否存在 if((userName!=null)&&(password!=null)&&(sex!=null)&&(age!=null)&&(address!=null)){ //判斷插入的資料是否為空 if(("".equals(userName))&&("".equals(password))&&("".equals(sex))&&("".equals(age))&&("".equals(address))){ //改變狀態 state=true; } }else{ //改變狀態 state=true; }*/ if("true".equals(state)){ response.sendRedirect("index.jsp"); }else{ //在控制檯列印頁面請求引數 System.out.println("userName:"+userName+" password:"+password+" sex:"+sex+" age:"+age+" address:"+address); } //在控制檯列印頁面請求引數 System.out.println("userName:"+userName+" password:"+password+" sex:"+sex+" age:"+age+" address:"+address); //建立String[]陣列,接受頁面傳遞的引數 String[] object=new String[]{userName,password,sex,age,address}; //判斷引數是否存在 if(object!=null){ //判斷引數是否為空 if(object.length>0){ /*//迴圈遍歷object中的每一個元素 //目的就是將插入的不完善資訊篩選出來 for(int i=0;i<object.length;i++){ //判斷每一個元素是否存在 if(object[i]!=null){ //判斷每一個元素是否為空 if("".equals(object[i])){ //改變state狀態為true state=true; } }else{ //改變state狀態為true state=true; } }*/ if("true".equals(state)){ //說明插入資訊不全,不進行任何操作,直接返回原始頁面 response.sendRedirect("index.jsp"); }else{ //執行插入方法,返回影響行數 i=stuinfoService.insert(object); //根據影響行數判斷資料是否插入成功 if(i!=-1){ System.out.println("這裡是insert()方法,資料插入成功!"); }else{ System.out.println("這裡是insert()方法,資料插入失敗!"); } //刪除後自動跳轉到查詢方法,方便檢視刪除結果 response.sendRedirect("servletAction?action=select"); } }else{ //不進行任何操作,直接返回原始頁面 response.sendRedirect("index.jsp"); System.out.println("這裡是insert()方法,object為空陣列!"); } }else{ //不進行任何操作,直接返回原始頁面 response.sendRedirect("index.jsp"); System.out.println("這裡是insert()方法,object陣列不存在!"); } } //servlet的初始化 public void init() throws ServletException { // Put your code here } }
mySqlConnection.java原始碼:
package com.dbdao.mysql;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.junit.Test;
public class mySqlConnection {
//建立資料庫驅動名稱
private static String Driver_class="com.mysql.jdbc.Driver";
//資料庫連結地址
private String url="jdbc:mysql://localhost:3306/test";
//資料庫使用者名稱
private String user="root";
//資料庫密碼
private String password="11";
//資料庫連結
private Connection con=null;
//準備宣告sql語句
private PreparedStatement pstmt=null;
//結果集
private ResultSet rs=null;
//影響行數
private int i;
/*
* 建立驅動
* */
static{
try {
Class.forName(Driver_class);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/*
* 載入驅動
* */
@Test
public void getConnect() {
// TODO Auto-generated method stub
try {
con=DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//判斷資料庫是否載入成功
if(con!=null){
System.out.println("資料庫載入成功!");
}else{
System.out.println("資料庫載入失敗!");
}
}
/*
* 執行sql語句
* */
public void doSql(String sql,Object[] object) {
// TODO Auto-generated method stub
//判斷sql語句是否存在
if(sql!=null){
//載入驅動
getConnect();
//判斷object陣列是否存在
if(object==null){
//如果不存在,建立一個,防止出現空指標異常
object=new Object[0];
}
try {
//宣告一條準備的sql語句
pstmt=con.prepareStatement(sql);
//為Object物件一一賦值
for(int i=0;i<object.length;i++){
pstmt.setObject(i+1, object[i]);
}
//執行宣告的sql語句
pstmt.execute();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else{
System.out.println("sql語句並不存在!");
}
}
/*
* 獲取結果集
* */
public ResultSet getRS(){
try {
//獲取結果集方法
rs=pstmt.getResultSet();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//返回結果集
return rs;
}
/*
* 獲取影響行數
* */
public int getUpdateCount() {
// TODO Auto-generated method stub
try {
//獲取影響行數方法
i=pstmt.getUpdateCount();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//返回影響行數
return i;
}
/*
* 關閉方法
* */
public void getClose() {
// TODO Auto-generated method stub
//關閉結果集
try {
//結果集關閉方法
if(rs!=null){
rs.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
//關閉宣告的sql語句
try {
//關閉宣告的sql語句方法
if(pstmt!=null){
pstmt.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
//解除安裝驅動
try {
//驅動解除安裝方法
if(con!=null){
con.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
stuInfoService.java原始碼:
package com.service;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.junit.Test;
import com.dbdao.mysql.mySqlConnection;
public class stuInfoService {
//匯入mySqlConnection類
mySqlConnection mysqlCon=new mySqlConnection();
//準備sql語句
private String sql;
//影響行數(資料變更後,影響行數都是大於0,等於0時沒變更,所以說如果變更失敗,那麼影響行數必定為負)
private int i=-1;
//結果集
private ResultSet rs;
//建立list陣列
private List list=null;
//判斷狀態
private boolean state=false;
/*
* 插入方法
* */
@Test
public int insert(String[] object) {
// TODO Auto-generated method stub
//建立sql語句
sql="insert into t3 (userName,password,sex,age,address) values(?,?,?,?,?) ";
//判斷Object陣列是否存在
if(object!=null){
//判斷Object陣列是否為空
if(object.length>0){
//執行插入方法
mysqlCon.doSql(sql, object);
}else{
System.out.println("object是空陣列!");
}
}else{
System.out.println("object陣列不存在!");
}
//獲取影響行數
i=mysqlCon.getUpdateCount();
//判斷是否插入成功
if(i!=-1){
System.out.println("資料插入成功!");
}else{
System.out.println("資料插入失敗!");
}
//關閉連結
mysqlCon.getClose();
//返回影響行數
return i;
}
/*
* 刪除資料
* */
public int delete(String deleteOption, String deleteValue) {
// TODO Auto-generated method stub
//建立sql語句
sql="delete from t3 where "+deleteOption+"="+"'"+deleteValue+"' ";
//在控制檯列印拼接的sql語句
System.out.println("sql語句為:"+sql);
//執行sql語句
mysqlCon.doSql(sql, null);
//獲取影響行數
i=mysqlCon.getUpdateCount();
//判斷資料是否插入成功
if(i!=-1){
System.out.println("資料刪除成功!");
}else{
System.out.println("資料刪除失敗!");
}
//關閉連結
mysqlCon.getClose();
//返回影響行數
return i;
}
/*
* 更新資料
* */
@Test
public int update(String userName, String upOption, String upValue) {
// TODO Auto-generated method stub
//建立sql語句
sql="update t3 set "+upOption+"="+"'"+upValue+"'"+" where userName="+"'"+userName+"'";
//在控制檯列印拼接的sql語句
System.out.println("sql語句為:"+sql);
//執行sql語句
mysqlCon.doSql(sql, null);
//獲取影響行數
i=mysqlCon.getUpdateCount();
//判斷資料是否更新成功
if(i!=-1){
System.out.println("資料更新成功!");
}else{
System.out.println("資料更新失敗!");
}
//關閉連結
mysqlCon.getClose();
//返回影響行數
return i;
}
/*
* 遍歷資料
* */
@SuppressWarnings("unchecked")
@Test
public List select(String[] keyOption, String[] valOption) {
// TODO Auto-generated method stub
//建立String字串,用於拼接sql的條件語句
String condition="";
//迴圈遍歷keyOption陣列
for(int i=0;i<keyOption.length;i++){
//判斷valOption[i]是否存在
if(valOption[i].length()>0){
//拼接sql的條件語句
condition=condition+keyOption[i]+"="+"'"+valOption[i]+"'"+" and ";
//在控制檯逐條列印sql的條件語句
System.out.println(condition);
}
}
//拼接完成的sql條件語句
System.out.println("語句的拼接結果:"+condition);
//判斷condition是否為空
if(condition.length()>0){
//剪下拼接的sql條件語句
condition=condition.substring(0,condition.length()-4);
}
//在控制檯打印出來剪下後的sql的條件拼接語句
System.out.println("剪下後的condition語句為:"+condition);
//繼續拼接成完整的sql語句
sql="select * from t3 where "+condition;
//在控制檯打印出來拼接的完整語句
System.out.println("完整的sql語句為:"+sql);
//迴圈遍歷valOption陣列
for(int i=0;i<valOption.length;i++){
//判斷valOption[i]元素是否為空
if(valOption[i].length()>0){
//如果不為空則將狀態置為true
state=true;
}
}
//判斷狀態
if(true==state){
//如果為TRUE則不進行任何操作
sql=sql;
}else{
//如果為false則將sql語句置換成新語句
sql="select * from t3";
}
//在控制檯打印出最適合的sql語句
System.out.println("適合的sql語句為:"+sql);
//執行sql語句
mysqlCon.doSql(sql, null);
//獲取結果集
rs=mysqlCon.getRS();
//判斷結果集是否為空
if(rs!=null){
try {
//將游標移動到結果集末端,注意此處不能使用rs.afterLast();否則為空值。
rs.last();
//獲取結果集行數
i=rs.getRow();
//判斷結果集是否存在
if(i>0){
//將游標移動到結果集前端
rs.beforeFirst();
//建立list佇列
list=new ArrayList();
//迴圈遍歷所有行數
while(rs.next()){
//建立Map容器
Map<String,String> map=new HashMap<String,String >();
//遍歷每行元素的內容
String userName=rs.getString("userName");
String password=rs.getString("password");
String sex=rs.getString("sex");
String age=rs.getString("age");
String address=rs.getString("address");
//將獲取的引數放到Map容器中
map.put("userName", userName);
map.put("password", password);
map.put("sex", sex);
map.put("age", age);
map.put("address", address);
//將Map容器新增到list佇列中
list.add(map);
//在控制檯打印出每一行的結果
System.out.println("userName:"+userName+" password:"+password+" sex:"+sex+" age:"+age+" address:"+address);
}
}else{
System.out.println("結果集為空!");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else{
System.out.println("結果集不存在!");
}
//關閉連結
mysqlCon.getClose();
//返回list佇列
return list;
}
}
web.xml原始碼:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>servletAction</servlet-name>
<servlet-class>com.action.servletAction</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servletAction</servlet-name>
<url-pattern>/servletAction</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
index.jsp原始碼:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
插入新的學生<br>
<form action="servletAction?action=insert" method="post">
姓名:<input type="text" name="userName">
密碼:<input type="password" name="password">
性別:<select name="sex">
<option>男</option>
<option>女</option>
</select>
年齡:<input type="text" name="age" size="5">
地址:<input type="text" name="address">
<input type="submit" value="確定"><input type="reset" value="重置">
</form>
修改學生資訊<br>
<form action="servletAction?action=update" method="post">
姓名:<input type="text" name="userName">
<select name="upOption">
<option>請選擇</option>
<option>姓名</option>
<option>密碼</option>
<option>性別</option>
<option>年齡</option>
<option>地址</option>
</select>
<input type="text" name="upValue" >
<input type="submit" value="確定"><input type="reset" value="重置">
</form>
刪除學生資訊<br>
<form action="servletAction?action=delete" method="post">
<select name="delOption">
<option>id</option>
<option>姓名</option>
<option>密碼</option>
<option>性別</option>
<option>年齡</option>
<option>地址</option>
</select>
<input type="text" name="delValue" >
<input type="submit" value="確定"><input type="reset" value="重置">
</form>
查詢學生資訊<br>
<form action="servletAction?action=select" method="post">
姓名:<input type="text" name="userName">
密碼:<input type="password" name="password">
性別:<select name="sex">
<option>請選擇</option>
<option>男</option>
<option>女</option>
</select>
年齡:<input type="text" name="age" size="5">
地址:<input type="text" name="address">
<input type="submit" value="確定"><input type="reset" value="重置">
</form>
</body>
</html>
執行介面:
查詢結果介面: