现在的位置: 首页 > 综合 > 正文

手工编写servlet_MS-DOS编译servlet_Servlet修改后自动载入

2013年10月04日 ⁄ 综合 ⁄ 共 2876字 ⁄ 字号 评论关闭

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

      

抱歉!评论已关闭.