关闭

JAVA远程部署`

262人阅读 评论(0) 收藏 举报
分类:

JAR

把程序包进JAR,创建manifest.txt来描述哪个类含有mian()这个方法:    Main-Class: MyApp(换行)

com.headfirstjava.projects.Chart  

前面将domin名称反过来放在前面             类的名称第一个字母是大写的。


JWS (JAVA Web Start)

JWS是通过网络来发布的程序。

.jhlp(java network lancuh Protocol)

文件是个xml文件。用来描述要运行的程序.


RMI (Remote Method incovation)

五个步骤:

1.继承Remote接口来组织远程方法

public interface MyRemote extends Remote {
     public int dou(int num) throws RemoteException;
}

MyRemote定义了客户端可以在服务端远程调用的方法,远程方法传递的如参数返回值等应是可序列化的
(即客户端与服务端都要有)

2.实现MyRemote并注册

只需要在服务器端实现MyRemote里的远程组织方法。

public class MyRemoteImpl extends UnicastRemoteObject implements MyRemote{//要继承UnicastRemoteObject
	protected MyRemoteImpl() throws RemoteException {//要处理父类构造函数抛出的异常
		super();
	}
	public static void main(String[] args) {
		try{
			MyRemote service=new MyRemoteImpl();  
			System.out.println("dd");
			Naming.rebind("dou",service);      //以Rmi方式运行代码注册远程服务
也有其他方式创建远程对象,这里继承UnicastRemoteObject.
3客户端使用远程服务

MyRemote serice=(MyRemote)Naming.lookup("rmi://192.168.1.106/dou");

启动rmiregistry监听端口 java.rmi.registry.LocateRegistry.createRegistry(1099);//默认的意思是上面的ip地址后不用添加端口。

不使用默认端口:

Registry r = LocateRegistry.createRegistry(8988); 

r.bind("ClientMethod",service); 以8988端口注册

dou为远程服务名称。


生成stub类命令:rmic notsure.MyRemoteImpl(注意不要在nutsure的目录下rmic,再上一级目录)

执行后得到MyRemoteImpl_Stub.class,复制到客户端的bin(存放.class文件的文件夹)notsure文件夹(对应生成rmic的时候notsure.MyRemoteImpl的notsure)里。




在程序启动容易重复启动,重复启动提示端口被占用


Servlets

新建的项目是DWP(Dynamic Web Projects)时要配置Servlets-api.jar,如果是tomcat project的话则不用。

对于tomcat来说,当你只指定一个web的根名,没有指定具体页面,去访问时一个web时, 如果web.xml文件中配置了欢迎页,那么就返回指定的那个页面作为欢迎页,而在文中没有web.xml文件,或虽然有web.xml,但web.xml也没指定欢迎页的情况下,它默认先查找index.html文件,如果找到了,就把index.html作为欢迎页还回给浏览器。如果没找到index.html,tomcat就去找index.jsp。找到index.jsp就把它作为欢迎页面返回。而如果index.html和index.jsp都没找到,又没有用web.xml文件指定欢迎页面,那此时tomcat就不知道该返回哪个文件了,

tomcat project

(http://www.cnblogs.com/woud/archive/2013/04/08/3008637.html)


部署到服务器之前(即在eclipse作为一个项目存在时)

src:用于存放我们的java文件,servlet也是放在这里,(java文件对服务器没有意义,这个文件夹只是方便我们编写java文件h后得到class文件)

work:用于存放编译jsp过程中生成的文件

WEB_INF:web.xml放置在这里,另外这里会有java构建后生成的class文件

WEB _INF下:

lib目录: 包含web应用所需的.jar或者.zip文件,如数据库的驱动。

其他目录,主要是网站中的一些用户文件,包括HTML网页、CSS文件、图像文件、JSP 文件等

而我们要用到的jsp文件则从HelloWorld根目录开始放置

部署到服务器之后(即在服务器的文件目录下)


除了src文件夹,webroot下的东西都搬到了那里





<a href="servlets/MyServletA">This is the most amaing servlet.</a>

servlets/MyServletA前最好加/

servlets/MyServletA并不表示文件路径,访问servlet要在web.xml配置文件里配上路径,如:

<servlet>
 8         <servlet-name>HelloServlet</servlet-name>
 9         <servlet-class>HelloServlet</servlet-class>
10     </servlet>
11     <servlet-mapping>
12         <servlet-name>HelloServlet</servlet-name>
13         <url-pattern>/HelloServlet</url-pattern>
14     </servlet-mapping>

<url-pattern>路径</url-pattern>就是配上的路径


缺少<web-app></web-app>此根标签




访问根目录(工程名mycat)(如http://localhost:8080/mycat/)时,自动转到欢迎页(在web.xml上配置,不配置默认寻找index.jsp)

servlet是让你写出带有html输出的类,而JSP相反--让你写出带有java程序的网页

实际上最终web服务器会把jsp转换成serlvet,serlvet再输出HTML。

jsp的主要好处在于能更容易地编写HTML部分而不会像servlet一样出现一堆难以阅读的print命令。

但对很多应用程序来说是无需用到JSP的,因为servlet不需要处理动态 的响应,html内容其实很简单,或者是 因为一些web服务器不支持servlet。



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2540次
    • 积分:75
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:21篇
    • 译文:0篇
    • 评论:0条
    文章分类