java servlet return_Java-Servlet

概念

运行在服务器上的小程序

Servelt就是一个接口,定义了java类被浏览器访问到(tomcat识别)的规则

需要自定义一个类,实现接口复写方法

快速入门

创建JavaEE项目

定义一个类,实现servelt接口

实现接口的抽象方法

配置servelt

简单例子

类实现servelt接口

这里只改写了service方法

package servelt;

import javax.servlet.*;

import java.io.IOException;

public class ServeltDemo1 implements Servlet {

@Override

public void init(ServletConfig servletConfig) throws ServletException {

}

@Override

public ServletConfig getServletConfig() {

return null;

}

@Override

//提供服务的方法

public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {

System.out.println("tql");

}

@Override

public String getServletInfo() {

return null;

}

@Override

public void destroy() {

}

}

web.xml添加内容 配置servelt

在web.xml文件下的框里添加内容

demo1

servelt.ServeltDemo1

demo1

/demo1

运行程序:

每次加载这个页面以后 idea输出框都会输出一次tql

fa9b5e33faa3fa349ed88aa39a31fc0a.png

53c8d571293b3da122fb7ca47818e538.png

工作原理

a1aa1d18e7fa415af04863743ce5654d.png

Servlet的5个方法

package servelt;

import javax.servlet.*;

import java.io.IOException;

public class ServeltDemo2 implements Servlet {

@Override

public void init(ServletConfig servletConfig) throws ServletException {

/*初始化方法

* 在Servlet被创建时执行,只会执行一次*/

System.out.println("init------");

}

@Override

public ServletConfig getServletConfig() {

//获取ServletConfig对象

return null;

}

@Override

public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {

//提供服务方法 每次Servlet被访问时执行,可以执行多次

System.out.println("service------");

}

@Override

public String getServletInfo() {

//获取Servlet的一些信息,版本作者等

return null;

}

@Override

public void destroy() {

//销毁方法

//在Servlet被销毁时执行,只执行一次

//在Servlet销毁之前执行,一般用于释放资源

System.out.println("destoey----");

}

}

设置Servlet什么时候创建

在web.xml文件下修改

demo2

servelt.ServeltDemo2

-1

用servlet3进行配置

package servlet;

import javax.servlet.*;

import javax.servlet.annotation.WebServlet;

import java.io.IOException;

//进行配置路径

@WebServlet("/demo")

public class ServletDemo1 implements Servlet {

@Override

public void init(ServletConfig servletConfig) throws ServletException {

}

@Override

public ServletConfig getServletConfig() {

return null;

}

@Override

public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {

System.out.println("servlet3.0---");

}

@Override

public String getServletInfo() {

return null;

}

@Override

public void destroy() {

}

}

e7f174da2c95e72522f4870d2aab18c1.png

80e9d90cbe6c5ce5070eb805b2922b19.png

Servlet的线程安全问题

由于init方法只执行一次,说明在内存中只存在一个对象,是单例的

多个用户同时访问时,可能存在线程安全问题

因此需要我们尽可能的不在Servlet中定义成员变量,即使定义了也不要去修改这个值

urlpartten配置相关

配置多个虚拟路径

用一个数组包起来

如:

@WebServlet({"/d4","/demo4","/dd4"})

路径定义规则

1./xxx

2./xxx/xxx 多层路径

3.*.xx 没有/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值