打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Java Web

一、实现Servlet接口

通过实现Servlet接口来了解Servlet的生命周期

(1)以规范的形式创建一个web应用(即在webapps目录下创建一个web应用)

创建web应用

(2)classes目录下创建一个.java(该java文件为实现Servlet接口)

创建文件夹MyFirstServlet.java

代码如下:

package com.focus;

import javax.servlet.*;

import javax.servlet.http.*;

import java.io.*;

public class MyFirstServlet implements Servlet

{

//Servlet引擎会在Servlet实例化之后,置入服务之前精确地调用init方法。(初始化servlet,把servlet装载到内存中)

//该函数只会被调用一次

public void init(ServletConfig config) throws ServletException{

}

//Servlet引擎调用这个方法以允许Servlet响应请求。这个方法在Servlet未成功初始化之前无法调用。(业务逻辑代码都将写在这个函数中)

//在被卸载后,还没初始化时,service不被调用,其余可重复调用

public void service(ServletRequest request, ServletResponse response)

throws ServletException, IOException{

System.out.println('Hello World!');

response.getWriter().println('Hello World!'+new java.util.Date());

}

//卸载servlet

public void destroy(){

}

//得到servlet的配置信息

public ServletConfig getServletConfig(){

return null;

}

//纯文本的servlet信息

public String getServletInfo(){

return null;

}

}

编译后出现错误,导入的程序包找不到。

PS:使用dos编译时,该Java有包是 需要输入的命令行格式为

Javac -d . name.java

(3)配置CLASSPATH 即指定到tomcat的lib目录下的servlet-api.jar(其中有servlet-api.jar就是上面所引入的javax.servlet.*;javax.servlet.http.*;)。

在配置CLASSPATH时得指定到特定.jar

不能设置*.jar ,只能一个个写,所以一般大的工程会配置一个启动脚本,专门计算出所有的jar包,然后导入启动环境中...

重启cmd.exe,再重新编译。即可

(4)配置与部署Servlet

MyFirstServlet

MyFirstServlet

com.focus.MyFirstServlet

MyFirstServlet

/My

(5)最后效果:



补充:当Tomcat启动的时候首先会启动一个server.xml,当servlet映射找不到对应的,tomcat启动直接就报错。

二、配置与部署Servlet

由于客户端是通过URL地址访问web服务器中的资源,所以Servlet程序若想被外界访问,必须把servlet程序映射到一个URL地址上。

//注册名、自定义一个servlet的名字

MyFirstServlet

MyFirstServlet

//指定该servlet类放在哪个包中 形式 包/包/.../类(包名+类名)

com.focus.MyFirstServlet

//servlet的映射(对一个已经注册)

//自定义一个servlet的名字,但这个名字就代表当浏览器输入/My这个web资源的时候,该名字就映射到与之对应的名字,找到该servlet所在的class

MyFirstServlet

//浏览器所输入的Web资源名

/My

一个注册好了的servlet可以被多次映射

如:

1

1

com.focus.MyFirstServlet

1

/My

1

/Servlet/My

1

/Servlet/My.html

即输入的Web资源不管是/My或 /Servlet/My或/Servlet/My.html都可以访问到com.focus.MyFirstServlet这个类

当映射一个servlet时候,可以是多层,后缀名为html不一定就是html文件。

进行Servlet映射时,可使用通配符

有两种格式:

第一种格式 *.扩展名 如:*.html *.abc

第二种格式 以“/“开头 同时以”/*“结尾 如:/abc/* /*

例:1. /*

2. /abc

3. /abc/*

4. *.gogo

当浏览器的URL的servlet名 输入/abc时 匹配 2

当浏览器的URL的servlet名 输入/hellobaby时 匹配 1

当浏览器的URL的servlet名 输入/abc/hellobaby时 匹配 3

当浏览器的URL的servlet名 输入/hello.gogo时 匹配 1

匹配标准:

(1)匹配度高的选择映射那个

(2)*.扩展名 的优先级最低

load-on-startup元素标记

1

1

com.focus.MyFirstServlet

1

1)load-on-startup元素标记容器是否在启动的时候就加载这个servlet(实例化并调用其init()方法)。

2)它的值必须是一个整数,表示servlet应该被载入的顺序

2)当值为0或者大于0时,表示容器在应用启动时就加载并初始化这个servlet;

3)当值小于0或者没有指定时,则表示容器在该servlet被选择时才会去加载。

4)正数的值越小,该servlet的优先级越高,应用启动时就越先加载。

5)当值相同时,容器就会自己选择顺序来加载。

所以,x,中x的取值1,2,3,4,5代表的是优先级,而非启动延迟时间。

补充:怎样更好的管理tomcat中的web应用,即进入tomcat Manager

Reload:即重载的意思,重新装载该web应用。

Stop:停止该web应用

好处:单独对某个web应用做相应的处理,不用对整个服务器进行操作

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
java类package包异常 javax.servlet.http.HttpServletRequest can not be resolved?
jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
J2EE开发环境搭建(宝贝啊)
WAR文件
JavaWeb应用简介
Java及Web应用
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服