这个嘛...可以做很多变形,这里的操作主要针对作用域属性的值,实际应用中可以改为针对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);
}
}
这里没有对中文乱码进行处理