java servlet tomcat_JAVA开发 Servlet和Tomcat相关基础

服务器端软件(Tomcat)实现HTTP协议,并且预先为我们留出了扩展的接口,我们只需要根据我们的应用去开发相应的功能模块(Servlet),然后部署到web服务器端中进行集成。当web服务器接收到客户请求后,判断请求是否访问我们提供的扩展功能,如果是,就将请求交由我们所编写的程序去处理。处理完成后,程序将处理结果交回web服务器软件,web服务器软件拿到结果信息后,再将结果作为响应信息返回给客户端。

Servlet提供了编写扩展功能的技术,它是一个基于java技术的web组件,运行于服务器端,由Servlet容器所管理,用于生成动态的内容。

Servlet容器(web服务器软件Tomcat提供)是web服务器的一部分,在Servlet的生命周期内包容和管理Servlet。

浏览器通过HTTP访问web服务器并发起请求,而web服务器接收后传达给Servlet容器,Servlet容器加载Servlet并产生Servlet实例,向其传递表示请求和响应的对象。Servlet实例进行处理然后将处理结果通过响应对象发送回客户端,容器负责确保响应正确送出,同时将控制返回给web服务器。

Servlet接口下定义了名为GenericServlet的子类,使用时根据所使用的协议选择GenericServlet的子类进行继承。例如HTTPServlet就继承自GenericServlet类,用于创建适合Web站点的HTTP Servlet。自定义Servlet就继承自HttpServlet类,并覆盖HttpServlet类的doXXX方法。

HttpServletRequest和HttpServletReponse这两个接口分别是ServletRequest和ServletReponse的子接口。HttpServletRequest用来处理一个对Servlet的HTTP格式的请求信息。HttpServletReponse描述一个返回到客户端的HTTP回应。这个接口允许Servlet程序员利用HTTP协议规定的头信息。要想理解HttpServletRequest和HttpServletResponse,应该结合HTTP协议来看。

在javax.servlet包中定义了两个异常类:ServletException和UnavailableException。其中ServletException可以被doXXX方法抛出。

每个Web应用程序都有一个与之相关的Servlet上下文。Servlet API提供了一个ServletContext接口表示上下文。一个ServletContext对象表示了一个Web应用程序的上下文。

Servlet.RequestDispatcher接口可以将请求转发(RequestDispatching)给另外一个Servlet或者jsp页面,然后由它们进行处理并产生对请求的响应。

ServletResponse接口定义的getRequestDispatcher区别于ServletContext接口,是可以相对于当前Servlet的路径,如果以斜杠开始,则被解释为相对于上下文根的路径,没有则是相对于当前Servlet的路径。

RequestDispatche包含include方法和forword方法,两者区别在于:利用include方法将请求转发给其他的Servlet,被调用的Servlet对该请求做出的响应将并入原先的响应对象中,原先的Servlet还可以继续输出响应信息。而利用forward方法将请求转发给其他的Servlet,将有被调用的Servlet负责对请求做出响应,而原先Servlet的执行则终止。

ServletResponse接口的sendRedirectt方法和RequestDispatche接口的forward方法都可以利用Servlet、JSP等为客户端服务。

浏览器输入地址后,对于服务器来说就相当于客户端发出一个get请求,会自动调用doGet()处理。而在doPost方法中调用doGet方法,这样无论客户端是get请求还是post请求,处理结果都是一样的。

Tomcat服务器的层次组件分别为Server(Catalina Servlet容器)、Service(Service组件)、Connector(连接器)、Engine(Servlet引擎)、Host(虚拟主机)、Context(web应用程序)。

一个Context表示了一个Web应用程序,运行在特定的虚拟主机中。一个Web应用程序是由一组Servlet、HTML页面、类以及其他的资源组成的

运行在Web服务器上的完整的应用程序。它在实现Servlet规范的Web容器中运行。

Web应用程序以一种结构化的有层次的目录形式存在,根目录代表了整个Web应用程序的根。

当tomcat启动出现错误时,可以使用catalina.bat run命令进行启动以查看报错信息。

/server/lib、/shared/lib、/common/lib目录都可以存放JAR文件,但只有/common/lib目录下的JAR文件可以被tomcat服务器和所有web应用程序访问。

JAVA Web应用程序的WEB-INF目录下的lib目录中,JAR文件只能被当前web应用程序所访问。

WEB-INF对于客户端来说,是不可见的,如果想要在Servlet代码中访问保存在文件中的配置信息,而又不希望这些配置信息被客户端访问到,就可以放到WEB-INF下。

Web应用程序的配置和部署是通过web.xml文件来完成的。在web.xml文件中,元素用于声明Servlet,指定Servlet的名字;

指定Servlet类的完整限定名。用于在Servlet和URL路径之间定义一个映射,路径是相对于上下文Context的路径。

和是多对一的关系,可以为一个Servlet定义多个可访问的Web路径。

为Servlet指定一个名字和URL映射,其他的组件或页面可以使用URL来调用这个Servlet,即使Servlet发生改动,只需要修改web.xml中的内容。

一旦修改过Servlet类,要重新启动tomcat,否则对请求进行响应的仍然是驻留在内存中的先前的Servlet实例。也可通过的reloadable属性来设置。

%CATALINA_HOME%\conf\server.xml设置Context元素,一个Context元素就表示一个Web应用程序,运行在特定的虚拟主机中。其中path表示浏览器访问的虚拟路径名称(前面加/);docBase表示该虚拟路径名称所代表的真实路径地址。

%CATALINA_HOME%\webapps中的应用程序在Tomcat启动时自动加载,因为Tomcat自动为该目录下的应用程序生成Context元素。如果要为自己开发的目录配置为Web目录,就需要在%CATALINA_HOME%\conf\server.xml设置Context元素。或者还可以在%CATALINA_HOME%\conf\catalina\hostname目录下为应用程序建立一个XML文件。

Tomcat提供了数据库连接池,负责分配、管理和释放数据库连接。在%CATALINA_HOME%\conf\context.xml中加入元素进行配置。

配置JDBC数据源所指定的JNDI名,是相对于java:comp/env上下文的,在利用JNDI名查询数据源对象时,需要加上java:comp/env。

获取DataSource对象后使用getconnection建立连接,对数据库进行访问java.sql提供了Statement、PreparedStatement和CallableStatement这3个接口。

ResultSet对象以逻辑表格的形式封装了执行数据库操作的结果集,可以使用getXXX方法来获取表中数据。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值