Servlet层实现批量删除,动态搜索加分页功能
批量删除使用js比较好处理用Ajax较为麻烦之前试过几次
我们PaginationUser.jsp通过location.href=“BatchDeletionbecheckbox=”+becheckbox;
方法问号传参进入到Servlet
在servlet层创建BatchDeletion.java,在这里我们不需要往web.xml添加任何东西,servlet层的方法调用都采用注解的方式
实现BatchDeletion.java
package servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import service.IAddressService;
import service.impl.AddressServiceImpl;
@SuppressWarnings("serial")
@WebServlet(name="BatchDeletion",urlPatterns="/BatchDeletion")
public class BatchDeletion extends HttpServlet{
/*在这里每次都调用dopost方法*/
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
/*都设置编码格式*/
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
String ids = req.getParameter("becheckbox"); /*传过来的becheckbox就是字符串*/
System.out.println(ids);
String[] idss = ids.split(","); /*使用split对字符串进行切割*/
IAddressService iaddser = new AddressServiceImpl();
int flag = iaddser.delUsersByIds(idss);
if(flag>0) {
resp.sendRedirect("PaginationUser.jsp");/*重定向跳转页面*/
}
}
}
Servlet实现Ajax分页加动态搜索功能
package servlet;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import entity.User;
import service.IAddressService;
import service.impl.AddressServiceImpl;
@SuppressWarnings("serial")
@WebServlet(name="PaginationUser",urlPatterns="/PaginationUser")
public class PaginationUser extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
String pagecount = req.getParameter("pcount");
int pcount = 1,count = 3; /*给定初始值*/
if(pagecount != null && pagecount !="") {
pcount = Integer.parseInt(pagecount);
}
IAddressService iaddser = new AddressServiceImpl();
List<User> list = iaddser.paginationUser((pcount-1)*count, count);
req.setAttribute("ulist", list);
String str="";
for (User user : list) {
str+="<tr><td align='center'><input type='checkbox' value='"+user.getId()+"'"
+ " name='ids' id = 'uid'/>"+user.getId()+"</td>"+
"<td align='center'>"+user.getUname()+"</td>"+
"<td align='center'>"+user.getUsex()+"</td>"+
"<td align='center'>"+user.getRole().getRname()+"</td>"+
"<td align='center'><a href='UpdateUserShow?uid="+user.getId()+"'>修改</a>"+
"<a href='DeleteUser?id="+user.getId()+"' onclick='return del()' >删除</a></td></tr>";
}
resp.getWriter().print(str);
}
}
使用str字符串传递到前台更方便,不过有个缺点双引号太多不好处理,特别是那种带有css样式更不好处理。