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");

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,658评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,482评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,213评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,395评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,487评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,523评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,525评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,300评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,753评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,048评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,223评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,905评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,541评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,168评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,417评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,094评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,088评论 2 352

推荐阅读更多精彩内容