重读servlet

这段时间趁着教学课程进度,又重新看了一遍J2EE基础,重新学习了servlet开发,又有了新的理解。
myeclipse 这款IDE作为开发工具确实省了很大力气,但越来越发现一些代码内部的机制自己并不是很了解,随着编码量的增加越来越感觉到这些基础的东西是很重要的,对技术的追求也从一开始的了解最前沿的技术,到慢慢想了解技术的同时更多的了解他们的内在基础。


Servlet是一种独立于平台和协议的服务器端java应用程序 ,那也就意味着Servlet只能在服务器端运行,这就是为什么创建servlet只能出现在java WEB项目中。


public class LoginServlet extends HttpServlet { @Override protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException { System.out.println("继承httpServletrequest"); super.service(arg0, arg1); } @Override public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException { System.out.println("继承servletRequest"); super.service(arg0, arg1); } private static final long serialVersionUID = 1L; public void destroy() { System.out.println("destroy"); } public LoginServlet() { System.out.println("constructor"); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("doGet"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("doPost"); } public void init() throws ServletException { System.out.println("init"); } }




这个servlet包含构造函数,初始化函数,service(),doPost(),doGet(),以及destroy();函数,可以在其内部添加输出函数,观察其先后执行顺序

依次是构造方法,init()方法,【javax.servlet.ServletResponse】中的service方法,然后是httpservlet中的service方法,最后是doGet方法


web.xml中

questionBanks banks LoginServlet servlets.LoginServlet aa1 LoginServlet /LoginServlet


每一个对应一个前者指明以及servlet类的位置,后者以匹配前者的name从而找到对应的class
这里是servlet能否映射到对应的servlet的关键,我们的html的action中如填写action=“LoginServlet”那么此处的url-mapping必须为/LoginServlet,它的意思是在当前工程目录下寻找对应的servlet,(http://host:port+WebAppName 之后的url部分应该与一致)
init-param用于将类中的对应的变量进行初始化

它是内的元素,它的作用是初始化对应的servlet内的一个参数的值,每个参数用一个init-param标记
【重读servlet】

    推荐阅读