javaWEB总结(1):第一个servlet程序


1.新建一个javaWeb工程,工程的目录如下



2.在com.dao.chu的包下新建一个HelloServlet.java类


package com.dao.chu;

import java.io.IOException;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

/**
 * 
 * Title: HelloServlet
 * Description:实现Servlet接口的类
 * </p>
 */
public class HelloServlet implements Servlet {

	@Override
	public void destroy() {
		System.out.println("destroy...");
	}

	@Override
	public ServletConfig getServletConfig() {
		System.out.println("getServletConfig...");
		return null;
	}

	@Override
	public String getServletInfo() {
		System.out.println("getServletInfo...");
		return null;
	}

	@Override
	public void init(ServletConfig arg0) throws ServletException {
		System.out.println("init...");

	}

	@Override
	public void service(ServletRequest arg0, ServletResponse arg1)
			throws ServletException, IOException {
		System.out.println("service...");

	}

	public HelloServlet() {
		System.out.println("HelloServlet's constructor..");
	}

}

3.修改web.xml文件


<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
	id="WebApp_ID" version="3.0">
	
	<!-- 配置和映射servlet -->
	<servlet>
	    <!-- servlet注册的名字 -->
	    <servlet-name>helloServlet</servlet-name>
	    <!-- servlet的全类名 -->
	    <servlet-class>com.dao.chu.HelloServlet</servlet-class>
	</servlet>
	
	<servlet-mapping>
	    <!-- 需要和某一个servlet子节点的servlet-name 子节点的文本节点一致 -->
	    <servlet-name>helloServlet</servlet-name>
	    <!-- 映射的具体访问路径:/代表当前WEB应用的根目录 -->
	    <url-pattern>/hello</url-pattern>
	</servlet-mapping>
</web-app>

4.运行tomcat后,并且访问web.xml中所配的servlet访问地址,控制台打印结果:



5.每刷新请求一次页面,控制台便多输出一个“service...”,刷新两次,共输出三次service:




6.当停掉tomcat之后,控制台多输出了一个“destroy..”



总结:

一.web应用的跟路径

1.web.xml中的/hello,中的“/”是当前web应用的跟路径,本次访问的路径为http://localhost:7001/javaWeb_01/hello,

而web.xml中的“/”就相当于“http://localhost:7001/javaWeb_01/”;


二.servlet中有关生命周期的四个方法

1.构造器:只被调用一次,只有第一次请求servlet时,创建servlet实例,调用构造器,这说明servlet是单例的;

2.init方法:只被调用一次,在创建好实例后立即被调用,用于初始化当前的servlet;

3.service方法:被调用多次,每次请求都会调用service,实际用于处理请求;

4.destroy方法:只被调用一次,在当前servlet所在的WEB应用被卸载前被调用,用于释放当前servlet所占用的资源;


三.以上四个方法都由servlet容器自动调用。


跳过一些坑:

1.创建工程后没有web.xml的问题


新建一个动态web工程,不要点击finish,一直点击next,最后如图勾选即可。








2.控制台没有打印destroy..的问题

(1)不要关闭控制台的停止按钮,而要关闭tomcat的stop按钮,如果是控制台的按钮 那就相当于服务器断电,当然看不到打印信息,关闭server中的按钮才是调用 tomcat中的shutdown.

(2)不过还看不到打印信息就就用debug模式,在输出destroy的地方打断点。


以上坑是本人测试时候遇到,定是不很全面。


为了尊重原作者,下面粘贴佟刚老师视频的地址:


点击打开链接



转载于:https://www.cnblogs.com/tongrui/p/6193836.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值