开发部署一个简单的Servlet
Servlet是一个执行在服务器端的Java
Class文件,载入前必须先将Servlet程序代码编译成.class文件,然后将此class文件放在servlet
Engline路径下。Servlet API使用javax.servlet和javax.servlet.http两个包的接口类。
Servlet的最大的缺点是不能有效地管理页面的逻辑部分和页面的输出部分,导致Servlet代码非常混乱,而用JSP和JavaBean/Servlet结合可以有效地管理页面的逻辑部分和页面的输出部分。
当服务器上的一个JSP网页被第一次请求执行时,服务器上的JSP引擎首先将JSP页面文件转译成一个Java文件,再将这个Java文件编译成class字节码文件(即Servlet类),然后执行以响应客户的请求,当这个JSP页面再次被请求执行时,JSP引擎将直接执行这个字节码文件来响应客户,响应速度比第一次执行快很多。
两者可以互相调用,一般Servlet较多应用于业务逻辑(页面HTML输出不多或没有),而JSP偏重于数据展现,同一份数据可以用不同形式的视图来展现。
5. 开发部署一个简单的Servlet
这里以Tomcat5作为应用服务器,它是Apache+Servlet/JSP容器。先介绍一下Tomcat的目录结构,然后讲解如何添加一个应用,并部署一个简单的Servlet。
1)Tomcat 的主要目录结构
① /bin: 存放Tomcat服务器的可执行文件和运行用的Jar包。
② /conf :存放Tomcat服务器的各种配置文件,其中最重要的是server.xml。
③ /server :包含3个子目录classes、lib和webapps。
④ /common/lib 存放Tomcat服务器以及所有Web应用都可以访问的JAR。
⑤ /logs:存放了Tomcat的日志文件。
⑥ /webapps:当发布Web应用时,默认情况下把Web应用文件放于此目录下。
⑦ /work:Tomcat把由JSP生成的Servlet放于此目录下。
其中server.xml是用于整个Web服务器的,可以配置Web服务器的端口、应用目录、应用的入口、用户访问安全等信息。
2)Web应用的目录结构
Web应用有固定的结构,在/webapps目录下创建一个目录myapp。则这个Web应用的目录结构如下:
① /myapp:Web应用的根目录,所有的JSP和Html文件都存放在该目录下。
② /myapp/WEB-INF:存放Web应用的描述文件web.xml。
③ /myapp/WEB-INF/classes:存放各种class文件,servlet类文件也存放与该目录下。
④ /myapp/WEB-INF/lib:存放Web应用所需的各种JAR文件。如可以存放JDBC驱动程序的JAR文件。
3)配置文件web.xml
Java Web 应用通过一个基于XML的发布描述文件来配置其发布信息。Web.xml文件中可包含的配置信息有:
① Servlet的定义;
② Servlet的初始化参数;
③ Servlet以及JSP的映射;
④ 安全域配置参数;
⑤ 资源引用;
⑥ 环境变量的定义。
配置文件web.xml可以自己编写,也可以从其他应用(如Root、JSP-examples、servlets-examples等)目录下拷贝过来修改。
4)部署Servlet文件的步骤
① 编写Servlet并编译成class文件,编译时,将servlet-api.jar文件(在/common/lib 目录下)加入到classpath中;
② 将编译好的class文件拷贝到应用的WEB-INF/classes/下(如/myapp/WEB-INF/classes/);
③ 在web.xml中进行配置 <servlet> 、<servet-mapping>,具体可参见下面的web.xml。
这里以一简单的Servlet为例,实现Servlet的开发和部署。
文件 HelloServlet.java
import java.io.*;
import javax.servlet.http.*;
public class HelloServlet extends HttpServlet {
}
编译成功后,将HelloServlet.class拷贝到/myapp/WEB-INF/classes/下,然后修改web.xml。
配置文件 web.xml。
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
<description>
JSP和Servlet
<servlet>
</web-app>
然后在浏览器中运行http://localhost:8080/ch2/servlet/HelloServle
开发部署一个简单的Servlet的更多相关文章
- Servlet复习1: 一个简单的Servlet的使用
Servlet学习 1. Servlet与JSP的关系 2. Servlet的声明周期 3. 一个简单的Servlet的使用方法 什么是Servlet? 什么又是JSP? 继承了javax.servl ...
- 在cmd下编译一个简单的servlet时出现程序包javax.servlet不存在
由于servlet和JSP不是Java平台JavaSE(标准版)的一部分,而是Java EE(企业版)的一部分,因此,必须告知编译器servlet的位置. 解决“软件包 javax.servlet不存 ...
- Tomcat剖析(二):一个简单的Servlet服务器
Tomcat剖析(二):一个简单的Servlet服务器 1. Tomcat剖析(一):一个简单的Web服务器 2. Tomcat剖析(二):一个简单的Servlet服务器 3. Tomcat剖析(三) ...
- 一个简单的servlet容器
[0]README 0.1)本文部分文字转自 “深入剖析Tomcat”,旨在学习 一个简单的servlet容器 的基础知识: 0.2)for complete source code, pleas ...
- 通过Jetty搭建一个简单的Servlet运行环境
最近在做一些简单的Servlet开发的时候,感觉每次调试的时候都要发布到tomcat上很麻烦,把程序共享给同事也很麻烦,需要帮他设置本地的tomcat环境. 在网上找了找其他的Servlet运行环境, ...
- how tomcat works 札记(两)----------一个简单的servlet集装箱
app1 (看着眼前这章建议读者,看how tomcat works 札记(一个)----------一个简单的webserver http://blog.csdn.net/dlf123321/art ...
- how tomcat works 读书笔记(二)----------一个简单的servlet容器
app1 (建议读者在看本章之前,先看how tomcat works 读书笔记(一)----------一个简单的web服务器 http://blog.csdn.net/dlf123321/arti ...
- 一个简单的servlet的demo
javaweb 的应用我们需要参考javaee api 查找servlet接口 javax.servletInterface Servlet All Known Subinterfaces: Ht ...
- [异常解决] 初玩SAE遇到的小问题——注册&创建项目+MyEclipse装插件直接部署+一个简单的JSP部署实现
① 新浪SAE快速上手教程:http://jingyan.baidu.com/season/43090 上面一个链接是针对PHP的相关介绍,如果用java还有点不一样,具体请看新浪SAE官网:http ...
随机推荐
- log4net编译后命名空间找不到的问题
log4net编译后命名空间找不到的问题问题:工程A添加dll引用后,可以在代码中引入log4net的命名空间.工程B引用A.A能编译成功,B不能编译成功,提示找不到命名空间. 解决: 点击项目属性- ...
- excel设置单元格不可编辑
把允许编辑的单元格选定,右键-设置单元格格式-保护,把锁定前的对钩去掉.再点工具-保护工作表.这样就可以只让你刚才设定的单元格允许编辑,其他不允许.
- thinkphp ajax 实例 实现
thinkPHP后台实现 #删除用户操作 function delete() { if(isset($_SERVER["HTTP_X_REQUESTED_W ...
- python执行shell获取硬件参数写入mysql
最近要获取服务器各种参数,包括cpu.内存.磁盘.型号等信息.试用了Hyperic HQ.Nagios和Snmp,它们功能都挺强大的,但是于需求不是太符,亦或者太heavy. 于是乎想到用python ...
- Pycharm常用快捷键(后期慢慢补充)
用到一个,就补充一个,慢慢来,找到自己常用的快捷键. CTRL /: 注释.取消注释行 CTRL Q: 在参数列表位置,显示可以输入的所有参数. #查看参数的详细信息
- jquery ajax用例样板
$.ajax({ url: '${managerPath}/customer/updateOrder.do', type: 'POST', async: false, data: { id: date ...
- 从零开始学Sketch——入门篇-b
如果你是一枚交互设计师或者UI设计师,那么你一定知道Sketch这个强大的矢量设计软件:如果你用过Photoshop,那么在你接触了Sketch之后就能了解到这款产品相对于PS的优点,说不定会跟我一样 ...
- Oracle除替换去掉换行符的方法
特殊符号ascii定义 : 换行符和回车符都要干掉. 制表符 chr(9) 换行符 chr(10) 回车符 chr(13) select replace(replace(列名,CHR(10),''), ...
- 关于.net的概念
IIS不仅仅是asp.net还有php等 所以w3wp是基本单元. 然后Managed Code加载 AppDomain, 不管是桌面程序还是asp.net程序 System.Web(HttpRunt ...
- 台积电16nm工艺为什么好过三星14nm
最近,关于iPhone6s A9处理器版本的事情的话题很热,最后都闹到苹果不得不出来解释的地步,先不评判苹果一再强调的整机综合续航差2~3%的准确性,但是三星14nm工艺相比台积电16nm工艺较差已经 ...