Servlet之实现增删改查操作与EL表达式
这个嘛...可以做很多变形,这里的操作主要针对作用域属性的值,实际应用中可以改为针对jdbc数据库的操作。
先看看EL表达式
<%@ page language="java" import="java.util.*,test.lindl.bean.Dog" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP "index.jsp" starting page</title> </head> <body> request: <%=request%><br> response: <%=response%><br> page: <%=page%><br> pageContext: <%=pageContext%><br> out: <%=out%><br> session: <%=session%><br> application: <%=application%><br> config: <%=config%><br> page: <%=page%><br> ******************************************** <% pageContext.setAttribute("p1", new Dog(1,"dog1")); request.setAttribute("p2", new Dog(2,"dog2")); session.setAttribute("p3", new Dog(3,"dog3")); application.setAttribute("p4", new Dog(4,"dog4")); Cookie cookie=new Cookie("cKey","cValue"); response.addCookie(cookie); %> <br> ${pageScope.p1.name } <br> ${requestScope.p2.name } <br> ${sessionScope.p3.name } <br> ${applicationScope.p4.name} <br> ${cookie } </body> </html>
用于测试的javabean
package test.lindl.bean; public class Dog { private int id; private String name; public Dog(int id, String name) { super(); this.id = id; this.name = name; } 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; } }增删改查Servlet
package test.lindl.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import test.lindl.bean.Dog; public class AddDogServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int id=Integer.parseInt(request.getParameter("id")); String name=request.getParameter("name"); Dog dog=new Dog(id, name); List<Dog> dogList=(List<Dog>) getServletContext().getAttribute("dogList"); dogList.add(dog); getServletContext().removeAttribute("dogList"); getServletContext().setAttribute("dogList", dogList); request.getRequestDispatcher("/dogList.jsp").forward(request, response); } }
package test.lindl.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import test.lindl.bean.Dog; public class DeleteDogServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int id=Integer.parseInt(request.getParameter("id")); // List<Dog> dogList=(List<Dog>) request.getAttribute("dogList"); List<Dog> dogList=(List<Dog>) getServletContext().getAttribute("dogList"); for(int i=0;i<dogList.size();i++){ if(dogList.get(i).getId()==id){ dogList.remove(i); } } getServletContext().removeAttribute("dogList"); getServletContext().setAttribute("dogList", dogList); request.getRequestDispatcher("/dogList.jsp").forward(request, response); } }
package test.lindl.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import test.lindl.bean.Dog; public class UpdateDogServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int id=Integer.parseInt(request.getParameter("id")); String name=request.getParameter("name"); List<Dog> dogList=new ArrayList<Dog>(); dogList=(List<Dog>) getServletContext().getAttribute("dogList"); for(Dog dog:dogList){ if(dog.getId()==id){ dog.setName(name); } } getServletContext().removeAttribute("dogList"); getServletContext().setAttribute("dogList", dogList); request.getRequestDispatcher("/dogList.jsp").forward(request, response); } }
package test.lindl.servlet; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import test.lindl.bean.Dog; public class DogListServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { List<Dog> dogList=new ArrayList<Dog>(); dogList=null; request.setAttribute("dogList", dogList); request.getRequestDispatcher("/dogList.jsp").forward(request, response); } }
监听器,用于初始化作用域中dogList属性
import java.util.ArrayList; import java.util.List; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import test.lindl.bean.Dog; public class InitListener implements ServletContextListener { @Override public void contextDestroyed(ServletContextEvent arg0) { // TODO Auto-generated method stub } @Override public void contextInitialized(ServletContextEvent sce) { // TODO Auto-generated method stub List<Dog> dogList=new ArrayList<Dog>(); sce.getServletContext().setAttribute("dogList", dogList); } }
这里没有对中文乱码进行处理
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: java 中获取ServletContext中常用的方法
- 下一篇: shell 监控磁盘使用率