1, 使用 MS-DOS编译 servlet
方式一: (不推荐)
(1) path 环境变量添加 D:\Java\jdk1.7.0_06\bin
(2) 添加 servlet-api.jar ()
将 D:\apache-tomcat-7.0.37\lib\servlet-api.jar
拷贝
到 D:\Java\jdk1.7.0_06\jre\lib\ext 目录下
方式二: (使用批处理+EditPuls)
(1) 编写 批处理文件 servlet.bat
:: serlvet-api.java
set classpath=%classpath%;D:\apache-tomcat-7.0.37\lib\servlet-api.jar;
:: commons-fileupload
set classpath=%classpath%;D:\uploadify\WEB-INF\lib\commons-fileupload-1.2.2.jar;
:: commons-io
set classpath=%classpath%;D:\uploadify\WEB-INF\lib\commons-io-2.4.jar;
rem 将 MyServlet.java 编译到 D:\uploadify\WEB-INF\classes 目录
javac -d D:\uploadify\WEB-INF\classes %1
参看: EditPlus配置C环境
(2) 配置EditPlus3
A) 工具->参数设置->用户工具B) 参看截图(Servlet_Compile)
C)使用: 工具-> Servlet_Compile
2, 重新载入 修改 后的 MyServlet.class
(1) server.xml位置: D:\apache-tomcat-7.0.37\conf
(2) 配置虚拟目录
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
... ...
<Context path="/uploadify" docBase="D:\uploadify" reloadable="true" />
</Host>
说明:
部署 web项目 uploadify
A) path: 虚拟目录. 即 访问 uploadify 的 URL路径
"/", 代表站点(主机)
如, http://localhost:8080/uploadify
B) docBase: web项目uploadify的路径
C) reloadable:如果这个属性设为true,
tomcat监视在WEB-INF/classes和WEB-INF/lib目录
如果监测到有class文件被更新的,服务器会自动重新加载Web应用。
3, 编写servlet
(1) 目录结构
myWebApp ---web应用的
|-- WEB-INF ---系统目录
|-- lib --- 需要用到的外部jar文件
|-- classes --- 编译后的.class文件
|-- web.xml --- 当要web应用的配置文件(部署描述符)
(2) MyServlet.java
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
public class ProcessUpload extends HttpServlet
{
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
}
// -------------------
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
this.doPost(request, response);
}
public static void main(String[] args) {
System.out.println( "I am a serlvet to process upload!" );
}
}
(3) web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>processUpload</servlet-name>
<servlet-class>ProcessUpload</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>processUpload</servlet-name>
<url-pattern>/processUpload</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
(4)编译
A)classpath
指定servlet中引用的类 的jar, 即指定classpath
B)MyServlet.class文件的位置
在 servlet.bat中指定编译的class,存放到的位置../WEB-INF/classes