1. 程式人生 > >Servlet之實現增刪改查操作與EL表示式

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);
	}

}

這裡沒有對中文亂碼進行處理