Servlet之實現增刪改查操作與EL表示式
阿新 • • 發佈:2019-01-09
這個嘛...可以做很多變形,這裡的操作主要針對作用域屬性的值,實際應用中可以改為針對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
增刪改查Servletpackage 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; } }
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);
}
}
這裡沒有對中文亂碼進行處理