重读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中

<servlet>
  <description>questionBanks</description>
  <display-name>banks</display-name>
  <servlet-name>LoginServlet</servlet-name>
  <servlet-class>servlets.LoginServlet</servlet-class>
  <init-param>
 <description>a</description>
 	<param-name>a</param-name>
 	<param-value>1</param-value>
 </init-param>
 </servlet>


  <servlet-mapping>
    <servlet-name>LoginServlet</servlet-name>
    <url-pattern>/LoginServlet</url-pattern>
  </servlet-mapping>

每一个<servlet>对应一个<servlet-mapping>前者指明<servlet-name>以及servlet类的位置,后者以<servlet-name>匹配前者的name从而找到对应的class

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

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值