javaWeb中BaseServlet的实现
在本baseServlet 中实现了访问方法的重写,以后的user 等操作都可以继承这个BaseServlet达到简易编写的效果
话不多说上代码:
@WebServlet("/base")
public class BaseServlet extends HttpServlet {
@Override
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
// 1.获取子类 创建子类或者调用子类的时候 this代表的是子类对象
@SuppressWarnings("rawtypes")
Class clazz = this.getClass();
//System.out.println(this);
// 2.获取请求的方法
String m = request.getParameter("method");
if(m==null){
m="index";
}
//System.out.println(m);
// 3.获取方法对象
Method method = clazz.getMethod(m, HttpServletRequest.class, HttpServletResponse.class);
// 4.让方法执行 返回值为请求转发的路径
String s=(String) method.invoke(this, request,response);//相当于 userservlet.add(request,response)
// 5.判断s是否为空
if(s!=null){
request.getRequestDispatcher(s).forward(request, response);
}
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException();
}
}
public String index(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
return null;
}
}
这样在以后的开发中就可以使用BaseServlet了
例如:实现用户登录
在页面访问链接:
<li><a href="${pageContext.request.contextPath }/
```
user?method=registUI">注册</a></li>
```
可以
@WebServlet("/user")
public class UserServlet extends BaseServlet {
public String registUI(HttpServletRequest request, HttpServletResponse response) {
return "/jsp/register.jsp";
}
其他需要实现的访问页面类似
作者:crose / 1341798397@qq.com