黑马旅游 编写练习(4)–优化工程目录结构
经过前面的三次练习,已经实现了用户的登录,账户激活,以及用户退出的相关功能;然而在实际项目过程中,这些当然只能算是基础功能;在此过程中,我们为每一个小功能都独立创建了servlet资源;至此,观察一下我们的项目结构:
想要查看某个方法的具体编写,再去该接口的实现类中去查找即可;非常的清晰,也非常方便;比servlet层多个文件要好上很多;所以我们也借鉴此方法,将servlet层进行相关管理。
通过观察各servlet文件,我们知道均需要继承HttpServlet,然后由于请求方法大多数都是post和get,所以只需要对这两个请求进行编写即可。我们再回顾一下servlet的体系结构
Servlet的体系结构
* Servlet
|
* GenericeServlet
|
* HttpServlet
- Servlet 是包含访问服务器资源的整个生命周期,包括创建init,服务service以及销毁destroy方法。
- GenericeServlet是一个抽象类,它继承了Servlet,对servlet中的方法做了空实现,并且将service方法设为了抽象方法
编写完成BaseServlet后,我们可以编写一个UserServlet类,来继承此BaseServlet;在UserServlet类中完成与用户相关的方法,例如用户登陆方法,我们可以将之前写好的LoginServlet中的代码粘贴到UserServlet类中,并起名为login方法。同样的操作,他其他的Servlet中内容复制到此类中;分别对应不同的方法;同时修改前端的访问路径。编写完毕之后,由于很多操作都是重复的,所以我们将其抽取为独立的方法,比如json序列化方法,验证码校验方法等,将这些方法写在BaseServlet中。
抽取的方法如下:
使用上述抽取的方法,对UserServlet进行简化,精简后代码如下:
@WebServlet("/user/*") public class UserServlet extends BaseServlet { // 创建UserService对象private UserService service = new UserServiceImpl();// 创建错误信息对象private ResultInfo info =new ResultInfo(); /** * 注册用户方法 * @param request * @param response * @throws ServletException * @throws IOException */public void regist(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 判断验证码是否正确 Boolean flag = checkCheckCode(request,response); if
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!