java web Servlet实现增删改查

package com.rupeng.test1;


import java.io.IOException;
import java.io.PrintWriter;
import java.sql.ResultSet;
import java.sql.SQLException;


import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class PersonsServlet extends HttpServlet {
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		this.doPost(req, resp);
	}


	@Override
	/**
	 * 浏览器发出一次请求,服务器就会调用这个servlet的doGet一次
	 */
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		// persons?action=list 显示所有成员
		// persons?action=addnew 显示新增页面
		// persons?action=edit&id=m 显示编辑id=m的页面
		// persons?action=addsubmit&name=newname&age=newage
		// persons?action=editsubmit&id=m&name=newname&age=newage
		// persons?action=delete&id=m 删除id=m的数据项
		resp.setContentType("text/html;charset=UTF-8");
		resp.setCharacterEncoding("UTF-8");
		String action = req.getParameter("action");
		ResultSet set = null;
		PrintWriter writer = resp.getWriter();
		//显示信息
		if (action.equals("list")) {
			writer.print("<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'></head>");
			writer.print("<body>");
			writer.print("<p><a href='persons?action=addnew''>新增</a></p>");
			writer.print("<table>");
			writer.print("<thead><tr><td>id</td><td>姓名</td><td>年龄</td><td>修改</td><td>删除</td></tr></thead>");
			writer.print("<tbody>");
			try {
				set = JdbcCUtils.executeQurey("select * from t_persons2 ");
				while(set.next())
				{
					int id = set.getInt("id");
					String name = set.getString("name");
					int age = set.getInt("age");
					// \"是对"进行了转移
					writer.print("<tr><td>"+id+"</td><td>"+name+"</td><td>"+age+"</td><td>"+"<a href='persons?action=edit&id="+id+"'>编辑<a/>"+"</td><td>"+"<a onClick=' return confirm(\"确定要删除吗?\")'  href='persons?action=delete&id="+id+"'>删除</a>"+"</td></tr>");
					//a标签里使用onclick =“return confirm()”;如果onclick处还回false的话href超链接将不会折行
				}
			} catch (SQLException e) {
				writer.print("数据库查询出错!");
				e.printStackTrace();//用log4j工具来处理异常日志!(在项目中)
			}
			finally{
				JdbcCUtils.closeAll(set);
			}
			writer.print("</body>");
			writer.print("</table>");
			writer.print("</body></html>");
		}
		//显示新增页面
		else if (action.equals("addnew")) {
			writer.print("<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'></head>");
			writer.print("<body>");
			writer.print("<form action='persons' method='post'>");
			//隐藏域在界面中看不到!但是在表单提交的时候回提交到服务器!
			//name='action' value='addsubmit'就是让服务器知道我要干啥 !
			writer.print("<input type='hidden' name='action' value='addsubmit'/>");
			writer.print("<label for='name'>姓名:</label><input id='name' type='text' name='name' />");
			writer.print("<label for='age'>年龄:</label><input id='age' type='text' name='age' />");
			writer.print("<input type='submit' name='保存'/>");
			writer.print("</form>");
			writer.print("</body></html>");
		} 
		//显示编辑页面
		else if (action.equals("edit")) {
			writer.print("<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'></head>");
			writer.print("<body>");
			int id = Integer.parseInt(req.getParameter("id"));
			try {
				set = JdbcCUtils.executeQurey("select * from t_persons2 where id=?", id);
				if(set.next()){
					writer.print("<form action='persons' method='post'>");
					writer.print("<input type='hidden' name='action' value='editsubmit'>");
					writer.print("<input type='hidden' name='id' value='"+id+"'/>");
					String name = set.getString("name");
					int age = set.getInt("age");
					writer.print("<label for='name'>姓名:</label><input id='name' type='text' name='name' value='"+name+"'/>");
					writer.print("<label for='age'>年龄:</label><input id='age' type='text' name='age' value='"+age+"'/>");
					writer.print("<input type='submit' name='保存'/>");
					writer.print("</form>");
				}
				else{
					writer.print("不存在id="+id+"的记录");
				}
			} catch (SQLException e) {
				writer.print("编辑出错!");
				e.printStackTrace();
			}finally{
				JdbcCUtils.closeAll(set);
			}
			writer.print("</body></html>");
		} 
		//用户在新增页面中点击保存的处理逻辑
		else if (action.equals("addsubmit")) {
			String name = EncodeUtil.changeCode(req, "name");
			int age = Integer.parseInt(req.getParameter("age"));
			try {
				JdbcCUtils.executeUpdate("insert into t_persons2(name,age) values(?,?)",name,age);
				//更新成功才进行重定向!
				resp.sendRedirect("persons?action=list");//保存成功后重定向到查询页面!
			} catch (SQLException e) {
				writer.print("新增出错!");
				e.printStackTrace();//用log4j工具来处理异常日志!(在项目中)
			}
		} else if (action.equals("editsubmit")) {
			String name = EncodeUtil.changeCode(req, "name");
			int age = Integer.parseInt(req.getParameter("age"));
			int id = Integer.parseInt(req.getParameter("id"));
			try {
				JdbcCUtils.executeUpdate("update t_persons2 set name=?,age=? where id=?", name,age,id);
				//编辑成功后重定向!
				resp.sendRedirect("persons?action=list");//编辑后重定向到查询页面!
			} catch (SQLException e) {
				writer.print("修改出错!");
				e.printStackTrace();
			}
		} else if (action.equals("delete")) {
			int id = Integer.parseInt(req.getParameter("id"));
			try {
				JdbcCUtils.executeUpdate("delete  from t_persons2 where id=?",id);
				//删除成功后重定向!
				resp.sendRedirect("persons?action=list");//删除后重定向到查询页面!
			} catch (SQLException e) {
				writer.print("删除出错!");
				e.printStackTrace();
			}
		} else {
			writer.print("未知的ection");
		}
	}
}

猜你喜欢

转载自blog.csdn.net/xiaobaixiongxiong/article/details/79362138