在访问servlet的时候,如果不想每一次都去写doget()和dopost()方法,我们可以写一个基础类,然后servlet可以继承这个基础类,然后去做相应的操作。
- import java.io.IOException;
- import java.lang.reflect.Method;
- import javax.servlet.ServletException;
- import javax.servlet.annotation.WebServlet;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- /**
- * Servlet implementation class BaseServlet
- */
- @WebServlet("/BaseServlet")
- public class BaseServlet extends HttpServlet {
- private static final long serialVersionUID = 1L;
- @Override
- public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- response.setContentType("text/html;charset=UTF-8");// 处理响应编码
- request.setCharacterEncoding("UTF-8");
- // 1. 获取method参数,它是用户想调用的方法
- String methodName = request.getParameter("method");
- Method method = null;
- // 2. 通过方法名称获取Method类的实例对象
- try {
- method = this.getClass().getMethod(methodName, HttpServletRequest.class, HttpServletResponse.class);
- } catch (Exception e) {
- throw new RuntimeException("您要调用的方法:" + methodName + "它不存在!", e);
- }
- // 3. 通过method对象的invoke()方法来调用它
- try {
- method.invoke(this, request, response);
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
- }
操作子类:
mport java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.itcast.domain.User;
import cn.itcast.user.service.UserService;
import cn.itcast.utils.BaseServlet;
public class UserServlet extends BaseServlet {
private UserService service = new UserService();
public void login(HttpServletRequest req, HttpServletResponse resp)
throws Exception{
//接收信息,实现登录
String name = req.getParameter("name");
String pwd = req.getParameter("pwd");
User u = new User(name,null,pwd);
//调用查询
u = service.login(u);
if(u==null){
System.err.println("登录不成功.");
resp.sendRedirect(req.getContextPath()+"/index.jsp?error=1");
}else{
req.getSession().setAttribute("user", u);
//重定向
resp.sendRedirect(req.getContextPath()+"/servlet/MainServlet");
}
}
}
import cn.itcast.user.service.UserService;
import cn.itcast.utils.BaseServlet;
public class UserServlet extends BaseServlet {
private UserService service = new UserService();
public void login(HttpServletRequest req, HttpServletResponse resp)
throws Exception{
//接收信息,实现登录
String name = req.getParameter("name");
String pwd = req.getParameter("pwd");
User u = new User(name,null,pwd);
//调用查询
u = service.login(u);
if(u==null){
System.err.println("登录不成功.");
resp.sendRedirect(req.getContextPath()+"/index.jsp?error=1");
}else{
req.getSession().setAttribute("user", u);
//重定向
resp.sendRedirect(req.getContextPath()+"/servlet/MainServlet");
}
}
}