对于一个Web应用,的发布过程
1.部署HTML文件
在helloapp目录下加入index.htm文件.
2.部署JSP
常见JSP文件,helloapp目录下.
3.部署Servlet
(1).创建一个Servlet文件,它可调用HttpServletRequest对象的getParameter方法读取客户提交的loginForm表单数据.
(2).编译这个java文件,编译时需要servlet-api.jar文件.把编译出来的class文件拷贝到"/helloapp/WEB-INF/classes/mypackage "目录下.(其中mypackage是这个类所属的包).
(3).在web.xml中为类加上<servlet>和<servlet-mapping>元素.
<servlet>元素的属性
<servlet-name> | 定义Servlet的名字 |
<servelt-class> | 指定实现这个Servlet的类 |
<init-param> | 定义Servlet的初始化参数(包括参数名和数值).一个<servlet>中可以有多个<init-param> |
<load-on-startup> | 指定当Web应用启动时,装载Servlet的次序,当这个值为正数或0,Servlet容器先加载数值小的Servlet.如这个值为负数或没有设定,那么Servlet容器将在Web客户首次访问这个Servlet时加载它. |
<servlet-mapping>用来指定<servlet-name>和<url-pattern>映射.
<url-pattern>指访问Servlet 的相对URL路径.
4.部署JSP Tag Library
在Web应用中加入Tag Library(标签库).Tag Library向用户提供了自定义JSP标签的功能.我们将定义一个名为mytaglib的标签库,它包含了一个简单的hello标签,这个标签能将JSP中所有的<mm:hello/>解析为字符串"hello".
以下是创建和发布mytaglib标签库的步骤:
(1).编写用于处理hello标签的类HelloTag.java.
- package mypackage;
- import javax.servlet.jsp.JspException;
- import javax.servlet.jsp.JspTagException;
- import javax.servlet.jsp.tagext.TagSupport;
- pubilc class HelloTag extends TagSupport
- {
- public void HelloTag(){}
- public int doEndTag() throws JspException {
- try{
- pageContext.getOut().print("Hello");
- }
- catch(Exception e){
- throw new JspTagException(e.getMessage();
- }
- return SKIP_BODY;
- }
- public void release() {
- super.release();
- }
- }
(1).编译HelloTag.java时,需要jsp-api.jar文件.编译生成的HelloTage.class存放位置为/WEB-INF/classes/mypackage/HelloTag.class.
(2).创建Tag Library的描述文件mytaglib.tld文件.
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib ...>
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>mytaglib</shortname
<url>/mytaglib</url>
<tag>
<name>hello</name>
<tagclass>mypackage.HelloTag</tagcalss>
bodycontent>empty</bodycontent>
<info>Just Says Hello</info>
</tag>
</taglib>
(3).在web.xml文件中加入<taglib>元素
<?xml ...>
<!DOCTYPE web-app ...>
<web-app>
<servlet>
........
</servlet>
<taglib>
<taglib-url>/mytaglib</taglib-url>
<taglib-location>/WEB-INF/mytaglib.tld</taglib-location>
</taglib>
</web-app>
其中,<taglib-url>指定Tag Library>标示符.<taglib-location>指定Tag Library的描述文件(TLD)的位置.
(4).在hello.jap文件中加入hello标签,首先映入mytaglib的taglib指令.
<%@ taglib url="/mytaglib" prefix="mm" %>
接下来在页面中的<mm:hello/>都将输出Hello.