servlet+JSP学习笔记

之前也学习了一段时间的Servlet和JSP,但是没有实际操作,很短时间内就忘记了。最近从网上找了个很小的JSP+Servlet项目自己实现一下,希望能更加深刻的理解这两项技术如何进行交换和使用。


按照自己的思维画了一张图,便于理解动态页面在Web项目中运行过程如何进行操作的。

servlet+JSP学习笔记_第1张图片

Tomcat

首先从Tomcat开始学习,在我的理解里,Tomcat就像一个巨大的容器,许多Servlet在其中运行,同时这个容器还负责着对前端数据的接收与处理工作。当我们从前端输入数据,或者发送一个请求同时,这个请求将通过Tomcat自动处理,封装后成为一个request对象,这个对象再传入到内部的Servlet,同时,当我们后端对数据处理完成后,需要向前端进行输出,Tomcat也提供了一个response对象进行这些数据的封装。通过这个桥梁,就能完成前后端的交互,也就形成了实现动态响应的基础。

同时,Tomcat也是一个Http服务器,能提供管理平台等功能,也能通过XML进行配置。

Servlet

Servlet可以看作一个个模块化的工具。在最近进行的学习中,有很多功能是低耦合的,很多模块彼此独立。例如我们需要一个用户模块进行网站的登录,注册,还有诸多操作。那么我们可以将它们归位同一个Servlet。在之前实现过程中,我都习惯每一个功能使用一个Servlet,例如LoginServlet,RegistServlet等等,但随着代码量的增多,发现重复代码过多,同时Servlet的数量巨大,非常难以修改维护。

所以我觉得应该将每个模块化作一个Servlet,这样能够便于模块管理。在前端进行数据封装时,我们可以在其中储存一个键值对“method = ???”当进入Servlet时,判断方法的值,然后再为每个值定义一个方法即可完成在同一个Servlet处理不同功能。

例如这行代码,我们能够看到,其提交位置为UserServlet下面的一个userRegist方法,而这个方法实际上也是一个Servlet的实现。

public String userRegist(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}

可以看出,这个方法和doGet非常相似,只是返回值不同。我们这里返回值是一个String字符串,通过返回这个地址。

action="${pageContext.request.contextPath}/UserServlet?method=userRegist"

再结合上面这行位置,就能够跳转到们所要返回的位置。这样就不需要进行重定向操作。

JSP

在我的理解中,JSP更像一个简化版的Servlet,JSP代码风格和HTML一致,但是能通过<%%>之类的标签向其中插入JAVA代码,而这些代码会在运行的过程中翻译成Servlet,这也是JSP工作原理。一些简单的逻辑和前端的动态响应JSP可以非常轻易的做到,远比使用Servlet要轻松的多,但是更加复杂的功能处理则需要封装进Servlet模块,同时也更易于维护。

你可能感兴趣的:(Web)