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文件,如数据库的驱动。
而我们要用到的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。