【08】Servlet

1. Servlet

  • Server 和 Applet 两个单词的合体
  • Servlet 是一个 Java程序,是在服务器上运行以处理客户端请求并做出响应的程序
  • JSP也在服务器上
  • Servlet充当MVC中的控制层(Control)

2. Servlet的创建

  • src目录下创建com.XXX.control包(controller----控制)
  • 创建自定义的Servlet,修改URL(去掉Servlet,保留开始的“/”,在最后添加“.action”)
  • 修改doPost()或者doGet()方法中的代码,实现两者的互相调用,使得Get和Post提交方式相一致

3. Servlet的生命周期

  1. 实例化

    Web容器(Tomcat)创建具体的Servlet实例

  2. 初始化

    调用init()方法,执行Servlet的初始化的操作
    初始化执行一次

  3. 执行服务

    服务的统称是service()方法,doGet()、doPost()可以看作是service的具体体现
    服务会执行多次,每刷新一次执行一次

  4. 销毁

    在Web服务器上移除Servlet,调用destory()方法
    销毁操作只执行一次

4. Servlet配置 – XML文件

主要是在“部署描述符”(Web.xml)中配置servlet以及servlet-mapping标签
在这里插入图片描述

注意:
	<servlet-class>:完整的“包名.类名”
	<url-pattern>:用于在URL中做路径跳转
	<servlet-name>:两者通过相同的<servlet-name>实现关联

5. Servlet配置 – 注解配置

在每一个Servlet的源代码中,使用@WebServlet注解进行配置
@WebServlet常用属性

属性类型是否必须说明
asyncSupportedboolean指定Servlet是否支持异步操作模式
displayNameString指定Servlet显示名称
initParamsWebInitParam[]配置初始化参数
loadOnStartupint标记容器是否在应用启动时就加载这个Servlet
nameString指定Servlet名称
urlPatterns/valueString[]这两个属性作用相同,指定Servlet处理的url

第一种配置方式:不使用任何的属性,直接写URL,表示当前这个Servlet处理的URL

    @WebServlet("/login.action")
    public class LoginServlet extends HttpServlet {}

第二种配置方式:使用value属性,表示当前这个Servlet处理的URL

    @WebServlet(value="/login.action")
    public class LoginServlet extends HttpServlet {}

第三种配置方式:使用urlPatterns属性,表示当前这个Servlet处理的URL

  • urlPatterns属性,表示多个请求提交到一个Servlet上。
	@WebServlet(
		asyncSupported = true, 
		urlPatterns = { 
				"/A", 
				"/A.action", 
				"/demoA.action", 
				"/ServletA"
	})
	public class LoginServlet extends HttpServlet {}

6. 使用注解给Servlet配置初始化参数

	@WebServlet(urlPatterns="/DemoServletA",initParams={
					@WebInitParam(name = "encoding", value = "utf-8"),
					@WebInitParam(name = "uname", value = "zhangsan")})
	public class DemoServletA extends HttpServlet {
		public void init(ServletConfig config) throws ServletException {
			System.out.println("init 初始化");
			System.out.println(config.getInitParameter("encoding"));
			System.out.println(config.getInitParameter("uname"));
		}
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值