重读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
  
 a
 	a
 	1
 
 


  
    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标记


你可能感兴趣的:(java)