2021-07-08tomcat配置、实现Servlet的两种方法、ServletConfig和ServletContext上下文对象

老师教案

飞书https://eexf331wur.feishu.cn/docs/doccn5ERgMlP41SZueAOfLidCQc

配置环境变量    右击此电脑->属性->高级系统设置->环境变量(路径为tomcat安装的路径)

CATALINA_HOME

D:\develop\apache-tomcat-8.0.50

tomcat配置

bin\startup.bat    windows启动脚本

bin\startup.sh   linux启动脚本

bin\shutdown.bat   windows终止脚本

bin\shutdown.sh   linu终止脚本

conf文件夹下是一些配置信息

lib目录   用到的一些jar包

temp 临时目录

wepapps将项目发布到webapps目录下

将conf目录下的server.xml文件中的端口号改为8081

因为我们用的Oracle软件中的端口号也是8080

Idea tomcat配置

新建项目(文件->新建->项目)


Sevlet技术(Servlet 是运行在服务器上的一个 java 小程序,它可以接收客户端发送过来的请求,并响应数据给客户端。)

1.Sevlet是JavaEE,年纪大的程序员会说J2EE,以前叫J2EE,后来改名为JavaEE

2. 手动实现 Servlet 程序

(1)编写一个类去实现 Servlet 接口

(2)实现 service 方法,处理请求,并响应数据

(3)到 web.xml 中去配置 servlet 程序的访问地址

1)servlet标签用来给tomcat服务器配置Servlet程序

2)servlet-mapping标签用来给Servlet程序配置访问地址

3)servlet-name 给Servlet起一个别名,需要满足标识符命名规则;servlet和servlet-mapping中的servlet-name需要相同

4)servlet-class 写Servlet全类名  完整的包名.类名

5)url-pattern 配置访问地址

    前面的斜杠不能省略, /正斜杠在服务器解析的时候,解析成地址: http://ip地址:port端口号/工程路径(应用程序上下文)

    /hello1  会被解析为 http://ip地址:port/应用程序上下文/hello1

6)init-param标签:servlet程序的初始化参数

param-name:参数名               param-value:参数值

Servlet 的生命周期

1、执行 Servlet 构造器方法

2、执行 init 初始化方法

第一、二步,是在第一次访问的时候创建 Servlet 程序会调用。

3、执行 service 方法

第三步,每次访问都会调用。

4、执行 destroy 销毁方法

第四步,在 web 工程停止的时候调用

之前启动服务器,修改内容后,点击全部部署,就可以再次访问,不用重启服务器

通过继承 HttpServlet 实现 Servlet 程序

一般在实际项目开发中,都是使用继承 HttpServlet 类的方式去实现 Servlet 程序。

1、编写一个类去继承 HttpServlet 类

2、根据业务需要重写 doGet 或 doPost 方法

3、到 web.xml 中的配置 Servlet 程序的访问地址

使用Idea创建Servlet程序


@WebServlet(name ="Demo2Servlet", value ="/Demo2Servlet")

public class Demo2Servletextends HttpServlet{

    @Override

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{

}

    @Override

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{

}

}


通过上面的方式自动创建一个Servlet文件

@WebServlet(name ="Demo1Servlet", value ="/Demo1Servlet")

name="值"   相当于<servlet>标签下面的<servlet-name>

value="值"  相当于<servlet-mapping>标签下面的<url-pattern>

get和post请求

form 表单请求方式有两种: get请求 post请求

ServletConfig类

1.可以获取 Servlet 程序的别名 servlet-name 的值

servletConfig.getServletName()

2.获取初始化参数 init-param

servletConfig.getInitParameter("username")

3.获取 ServletContext 对象

ServletConfig servletConfig = getServletConfig();//获取servletConfig对象,此方法是继承过来的

ServletContext servletContext = servletConfig.getServletContext();//获取servlet上下文对象

ServletContext类

1、获取 web.xml 中配置的上下文参数 context-param

servletContext.getInitParameter("username")

配置上下文参数

2、获取当前的工程路径,格式: /工程路径

servletContext.getContextPath()

3、获取工程部署后在服务器硬盘上的绝对路径("/"表示根目录)

servletContext.getRealPath("/")

4、像 Map 一样存取数据

servletContext.setAttribute("key1", "value1");//存数据,键只能是字符串类型,值是Object类型

//根据key获取数据

Object valueOfKey1 = servletContext.getAttribute("key1");

ServletContext servletContext = getServletContext();

System.out.println("servletContext = " + servletContext);

Object tempValue = servletContext.getAttribute("key1");

//servletConfig是整个javaWeb共享的,第一次获取不到,再次刷新就可以获取到

System.out.println("line21 tempValue = " + tempValue);

servletContext.setAttribute("key1", "value1");//存数据,键只能是字符串类型,值是Object类型

//根据key获取数据

Object valueOfKey1 = servletContext.getAttribute("key1");

5.在另一个文件中也可以访问到其他文件中通过servletContext设置的对象

6.根据key删除ServletContext域中的键值对

servletContext.removeAttribute("key1");

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容