这是一个简单的servlet增删改查界面
t3.sql数据库:
/* SQLyog 企业版 - MySQL GUI v8.14 MySQL - 5.5.25a : Database - test ********************************************************************* */ /*!40101 SET NAMES utf8 */; /*!40101 SET SQL_MODE=''*/; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@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 SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; /*!40111 SET SQL_NOTES=@OLD_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();
}
}
}
}
}
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;
}
}
<?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>
<%@ 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>
查询结果界面:
原文地址:http://blog.csdn.net/zzy1078689276/article/details/46128465