当前位置:首页 » 操作系统 » tomcat源码servlet

tomcat源码servlet

发布时间: 2022-10-18 09:42:27

A. 跪求大神,怎么查看j2ee一些的类的源代码,用myeclipse看。服务器是tomcat。例如httpservlet这些类。

找 .class 文件,jad反编译

B. Tomcat下配置Servlet

1、首先需要安装JDk,并完成环境变量的配置。工具为Editplus+JDK,步骤大致如下: 安装JDK,把它装到从d:\JDK目录下面: 然后就是CLASSPATH的问题了: 正如操作系统利用PATH来搜索可执行程序一样,java运行环境也会遍历CLASSPATH来查找类,即便是HelloWorld这样简单的程序,JVM也会遍 历 CLASSPATH定义的每一个路径,直到找到相应的文件为止。 相信大家用的系统不是2k就是XP,然后就应当如下设置Path: 我的电脑->属性->高级->环境变量 然后在环境变量的Path后面追加:d:\JDK\bin;.;d:\JDK\lib 也可以这样配置:d:\JDK\bin;.;d:\JDK\lib\dt.jar;d:\JDK\lib\tools.jar 2、在Editplus里面编译和运行,在Tools->参数设置->配置用户工具 1>添加工具(添加应用程序) 菜单文字:CompileJavaProgram 程序:d:\JDK\bin\javac.exe 参数:文件名称 初始目录:文件目录 2>添加工具(添加应用程序) 菜单文字:RunJavaProgram 程序:d:\JDK\bin\java.exe 参数:文件名称(不含扩展名) 初始目录:文件目录 工具组名称可以随便添,比如DebugJavaProgram 然后在Tools的下拉菜单中,你就会看见CompileJavaProgram以及RunJavaProgram这两个选项,以后你就可以利用ctrl+1编译和ctrl+2运 行程序了 3、安装Tomcat,具体的安装步骤如下: 安装C:\Tomcat 然后再配置环境变量: 添加三个系统变量: JAVA_HOME:C:\JDK TOMCAT_HOME:C:\Tomcat CLASSPATH:%JAVA_HOME%\lib;%TOMCAT_HOME%\lib Tomcat的环境变量就配置完毕了,下面检验Tomcat是否能够运行:在浏览器中输入http://localhost:8080,出现可爱的小猫欢迎界面,则 表示Tomcat没问题了。 4、使用editplus编写自己的第一个servlet程序,使用刚才创建的菜单工具来编译这个java文件。需要强调的是:在使用editplus编译servlet程序之前,必须要将d:\Tomcat\common\lib里面的servlet.jar文件拷贝到d:\JDK\jre\lib\ext中,否则会出错。 将编译产生的class文件拷贝到d:\Tomcat\webapps\ROOT\WEB-INF\classes目录下(如果你自己创建了虚拟目录,那么这个class文件也可以拷贝到你的虚拟目录下的WEB-INF\classes目录下),然后修改相应的WEB-INF目录下的web.xml文件,在里面添加: <servlet> <servlet-name>HelloWorld</servlet-name> <servlet-class>HelloWorld</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloWorld</servlet-name> <url-pattern>/servlet/helloworld</url-pattern> </servlet-mapping> <servlet></servlet>之间的内容表示指定包含的servlet类,<servlet-mapping> </servlet-mapping> 之间的内容表示指定HelloServlet应当映射到哪一种URL模式。 5、修改web.xml完毕过后,重新启动Tomcat服务,然后再输入http://localhost:8080/servlet/HelloWorld,你将会看到你所想要的东西。

记得采纳啊

C. Tomcat源码解析-容器组件之StandardHost

Container容器用来表示tomcat中servlet容器,负责servelt的加载和管理,处理请求ServletRequest,并返回标准的 ServletResponse 对象给连接器。

Container容器组件

tomcat 将Container容器按功能分为4个组件,分别是 Engine、Host、Context 和 Wrapper。这 4 种容器不是平行关系,而是父子关系。

Lifecycle接口定义tomcat中所有组件的生命周期相关接口方法。Tomcat 定义一个基类LifecycleBase 来实现 Lifecycle 接口,把一些公共的逻辑放到基类中实现。而子类就负责实现自己的初始化、启动和停止等模板方法。

详见 Tomcat架构设计-组件生命周期 Lifecycle

Container接口定义tomcat中所有容器组件的通用接口方法。Tomcat 定义一个基类ContainerBase 来实现Container 接口,把一些公共的逻辑放到基类中实现。

详见 Tomcat架构设计-容器组件基类 ContainerBase

在tomcat中最核心功能就是将一个静态资源目录或一个应用程序部署到容器中。而这个容器就是指得Host容器组件。而静态资源或一个应用程序通过Context容器组件来表示。所谓部署就是加载到Host容器的子组件中。当然虚拟主机除了部署外还又其他功能,包括热部署,懒加载,别名等。

如果想要将一个静态资源目录部署到Tomcat服务器上,tomcat提供了多种部署方式

在server.xml中配置

path表示Context根路径,docBase表示映射静态资源目录

在xmlBase路径下配置xml文件

在$CATALINA_BASE/xmlBase 路径下创建 JavaWebApp.xml,xmlBase配置在Host标签属性中

文件名称表示Context根路径,docBase表示映射静态资源目录

将资源文件拷贝到appBase路径下

appBase路径在Host标签属性中定义,文件名称表示Context根路径。

部署应用程序到appBase目录

appBase是在server.xml文件Host标签appBase属性来定义,appBase可以填写相对路径或者绝对路径,如果是相对路径那么完整路径为 CATALINA_BASE表示tomcat的工作目录

虚拟主机Host可以在设置在使用时在部署静态资源或应用程序。

虚拟主机Host会定期检查appBase和xmlBase目录下新Web应用程序或静态资源,如果发生更新则会触发对应context组件的重新加载

虚拟主机Host可以定义别名。

StandardHost并管理子容器Context组件,以及从父类ContainerBase,LifecycleBase 继承的通用组件。

StandardHost实现了Host接口,在了解StandardHost功能之前我们需要了解
Host接口.

Host接口

StandardHost实现Host接口,Host接口用来对Tomcat中虚拟主机功能配置提供了访问方法。

StandardHost只对虚拟机功能配置做了定义 ,其具体实现由HostConfig来实现。同时负责管理子容器Context组件(下图蓝色),以及从父类ContainerBase(下图红色),LifecycleBase(下图黄色) 继承的通用组件。

tomcat中所有组件都需要经历如下流程。

Tomcat使用Digester解析server.xml,Digester是一款用于将xml转换为Java对象的事件驱动型工具,是对SAX的高层次的封装。相对于SAX,Digester可以针对每一个xml标签设置对应的解析规则。详见 Tomcat相关技术-Digester(二)

Tomcat在Catalina组件初始化阶段调用createStartDigester()创建Digester对象,Digester对象内包含解析server.xml规则,接着通过Digester对象解析server.xml实例化StandardHost,并对部分属性设置值.

server.xml配置

解析<Host>标签及子标签tomcat使用规则组HostRuleSet,其中定义了解析规则。

CopyParentClassLoaderRule规则

CopyParentClassLoaderRule规则,负责调用次栈顶对象getParentClassLoader获取父类加载,设置到栈顶对象parentClassLoader属性上

LifecycleListenerRule规则

LifecycleListenerRule 规则负责给栈顶对象添加一个生命周期监听器.

接下来初始化开始则进入tomcat组件的生命周期,对于tomcat中所有组件都必须实现Lifecycle,Tomcat 定义一个基类LifecycleBase 来实现 Lifecycle 接口,把一些公共的逻辑放到基类中实现,比如生命状态的转变与维护、生命事件的触发以及监听器的添加和删除等,而子类就负责实现自己的初始化、启动和停止等模板方法。为了避免跟基类中的方法同名,我们把具体子类的实现方法改个名字,在后面加上 Internal,叫 initInternal、startInternal 等。

StandardHost父类对容器的初始化、启动和停止等模板方法进行的了默认实现。子类容器只需要重写父类实现即可实现扩展。

StandardEngine其他生命周期实现均从父类ContainerBase继承。

为添加的子容器设置生命周期监听器MemoryLeakTrackingListener

每一个容器组件都有一个 Pipeline 对象,Pipeline 中维护了 Valve 链表,默认时每一个Pipeline存放了一个默认的BasicValue,
这里每一个Value表示一个处理点,当调用addValve 方法时会将添加Vaule添加到链表头部,Pipeline 中没有 invoke
方法,请求处理时Pipeline只需要获取链表中第一个Valve调用incoke去执行,执行完毕后当前Value会调用
getNext.invoke() 来触发下一个 Valve 调用

每一个容器在执行到最后一个默认BasicValue时,会负责调用下层容器的 Pipeline 里的第一个 Valve

对于StandardHost容器来说默认情况存在三个Value(阀门),分别是 AccessLogValve (构建时读取server.xml时), StandardHostValve (构建实例化时), ErrorReportValve (启动时)。

记录访问日志,这里是一个通用组件,后续会由专题讲解

D. tomcat 怎么配置Servlet

servlet放在 工程名/WEB-INF/classes

然后修改WEB-INF下的web.xml文件:
在 <web-app> 与 </web-app> 中添加如下东东:
<servlet>
<servlet-name> Servlet的名字 </servlet-name>
<servlet-class> ServletClass的位置(用package方法表示) </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name> Servlet的名字 </servlet-name>
<url-pattern> 所响应的请求路径 </url-pattern>
</servlet-mapping>

E. servlet jsp tomcat java源代码 structs疑惑 还有容器,框架的通俗解释

1、servlet是java程序,但是比较特殊,和普通的java程序不同,无法单独执行,通过配置,可以在tomcat中运行,可以对用户提交的数据进行处理和反馈。他的运行也就是tomcat调用它。

2、jsp,jsp是后来人们发现,总是写servlet比较麻烦,因为servlet每次运行前都要编译和配置,所以人们就开发出了jsp,jsp直接在HTML代码内部写代码,这样比较直观,而且不用编译,写好以后放到tomcat里面,tomcat会把它先转化为servlet,再编译配置,不过这些都是自动的,所以很方便。

3、struts ,人们用servlet和jsp写程序,写多了发现,这些网页程序的处理流程都差不多:接到请求,根据请求从数据库或者别的地方获得数据,然后处理返回给用户。于是就有人想,如果我们返回给用户的页面和获得数据处理数据的部分分开,这样岂不更好:如果以后我要修改页面,直接该页面就行了,不用关心代码。多好?!所以就有了struts。

4、tomcat,以上那些东西怎么运行呢?在tomcat里面,其实tomcat的核心是servlet,jsp最后也是转化为servlet,struts更是servlet + 标记库 + javabean。所以,一般称tomcat为servlet容器。

F. tomcat下配置servlet的问题,请真正的高手帮忙!

我认为可能是web.xml的问题,你在配置servlet部署描述符的时候一定要注意<servlet>
<servlet-name>***</servlet-name>
<servlet-class>包.类名称</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>***</servlet-name>
<url-pattern>/路径名称/**</url-pattern>
</servlet-mapping>
两个方面可能出现问题都会导致出现404错误。
1,servlet 单词或者其他的任何一个单词打错了,服务器就不能正常启动
2,<url-pattern>/路径名称/**</url-pattern>这个路径名称是你要显示的那个jsp页面的上一级路径名称,这个事拼凑起来的,也是最容易出错的地方,希望你从这两方面仔细找找问题,另外你说的server.xml,这里面可以设置虚拟路径,可以设置tomcat自动reloading,具体的配置我建议你下载相关视频进行学习。

G. tomcat 7二进制和源码的区别

Tomcat作为JavaWeb领域的Web容器,目前在我们淘宝也使用的也非常广泛,现在基本上所有线上业务系统都是部署在Tomcat上。为了对平时开发的Web系统有更深入的理解以及出于好奇心对我们写的Web系统是如何跑在Tomcat上的,于是仔细研究了下Tomcat的源码。大家都知道Servlet规范是Java领域中为服务端编程制定的规范,对于我们开发者只是关注了Servlet规范中提供的编程组件(ServletContextListener,Filer,Servlet) 等 ,但是规范中还有一些我们经常

H. 怎样在tomcat中部署编译好的servlet

1.在myeclipse里面,window菜单最后一个preferences,左边点开myclispe,点servers下面找到tomcat,选择tomcat版本,Tomcat Server 设置为enable,再选择tomcat的路径,OK。
2.在myclipse新建一个WEB项目,然后在下面可以写jsp程序了,默认会有个index.jsp
3.点工具栏上的发布按钮,点右边的ADD,选择刚才第一步建的tomcat,就会把项目发布到tomcat下面
4.启动tomcat,在发布按钮旁边,是启动按钮,选择创建的tomcat
5.在浏览器里面输入地址localhost:8080/myeclipse项目名称/index.jsp

I. Servlet的源代码在Tomcat中哪个文件夹

tomcat中是没有源代码的,那里都是编译好的CLASS文件和页面文件及配置文件。

J. tomcat启动加载servlet

那你也要把错误贴出来啊!!!
感觉你这个servlet怪怪的
我是的确没有见过这样的servlet的。
这是一个基本的servlet
package test;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Test1 extends HttpServlet {
public Test1() {
super();
}
public void destroy() {
super.destroy();
//销毁时调用
}

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//get方式提交调用
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//post方式提交时调用
}

public void init() throws ServletException {
//初始化时调用
}

}

热点内容
安卓qq邀请码在哪里寻找 发布:2025-05-15 00:02:04 浏览:33
三菱fx编程口 发布:2025-05-15 00:01:23 浏览:809
医院招商引资宣传片脚本 发布:2025-05-15 00:01:21 浏览:367
linuxcftp服务器 发布:2025-05-14 23:58:18 浏览:717
探岳什么配置才有驾驶模式选择 发布:2025-05-14 23:53:17 浏览:144
如何在手机上看无限流量密码 发布:2025-05-14 23:43:31 浏览:114
19投篮脚本 发布:2025-05-14 23:36:57 浏览:513
编译器怎么处理c变长数组 发布:2025-05-14 23:31:46 浏览:663
存折每天可以输错多少次密码 发布:2025-05-14 23:22:06 浏览:909
安卓手机怎么找微信隐藏对话 发布:2025-05-14 23:07:47 浏览:338