浏览 2886 次
该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-08-08
1、Servlet,服务器端的小程序,它是相对于Applet而言的,Applet是客户端小程序。 Servlet,是接受来自网络的请求(form表单,以及其他的请求),并对不同请求作出不同的响应 Servlet,是基于Http协议的,是运行在web服务器中的程序。这里要提出一个容器的概念。 servlet是运行在web容器中,在后面会详细地讲解,这个web容器可以控制Servlet对象的生命周期,控制请求由Servlet对象处理。 2、web服务器,这里的服务器不是硬件概念,而是软件,常用的web服务器有 Tomcat,Jboss等,我们所用到的Tomcat是一个开源的服务器, Tomcat是一个用java语言编写的web服务器,所以需要有相应的java运行环境,也就是JVM,还要配置tomcat的具体路径。 二、Tomcat的配置 JAVA_HOME=/XXX/XXX/(JDK路径,bin的上一层目录) CATALINA_HOME=/XXXX/XXX(tomcat的绝对路径 windows中 X:\xxx\xxx) 在启动Tomcat时,是运行Tomcat的bin目录下的startup.sh(windows中使用startup.bat) 判断Tomcat是否启动成功,可以在浏览器的地址栏中使用http://localhost:8080/或http://127.0.0.1:8080/可以访问到tomcat的主页就是启动成功了。 要想停止tomcat服务器要使用shutdown.sh(windows中使用shutdown.bat),如果直接关闭启动窗口,就会造成8080端口占用错误,这时可以在使用 shutdown.sh关闭一下服务器。 startup.sh,shutdown.sh,shutdown.bat,startup.bat这些文件其实是一些脚本文件用来执行大量的命令,也就是大量java命令。 tomcat的默认监听端口是8080端口,当接受到每一个连接请求,就会为其分配一个线程。 tomcat可以识别的资源只有在webapps文件夹下,webapps也就是web应用文件夹,webapps下的文件夹这些文件夹中存放的就是web应用, web应用是有格式规范的,每个web应用的文件夹下都要有 WEB-INF文件夹,WEB-INF文件夹下有classes,和lib文件夹,以及一个web.xml文件,一些使用到的类文件放在classes中,一些使用到 的相应的jar文件。 注意:使用完有限的资源要进行释放。 tomcat中配置了root缺省应用,也就是在不指定的情况下会默认访问这个应用。 web.xml文件的写法 <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> </web-app> 在tomcat服务器中,访问应用下的资源可以在端口号后架上web应用文件夹得名字就可以看到资源 http://localhost:8080/xxxxx/xxxx.html,静态页面只能放在web应用的文件夹下,不能够放在 WEB-INF文件夹下,WEB-INF文件夹中的资源是受保护的,不能够通过网络访问到。 三、Servlet基础 Servlet,可以实现动态的页面,可以针对不同的请求作出不同的响应,可以实现页面的流转,Servlet可以充当MVC模式中的Ctrl模块,他可以控制信息的流向。 web服务器会web应用在WEB-INF文件夹下的classes文件夹搜索要加载的class文件,所以我们写的class文件要放在web应用中的WEB-INF文件夹下的classes文件夹下。 设置servlet的类和访问的方式 web.xml文件的配置,一个web.xml中可以配置多个Servlet <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name>servlet的名字</servlet-name> <servlet-class>servlet类全名</servlet-class> </servlet> <servlet> <servlet-name>servlet的名字1</servlet-name> <servlet-class>servlet类全名1</servlet-class> </servlet> <servlet-mapping> <servlet-name>servlet的名字(要和servlet标签中的相同)</servlet-name> <url-pattern>指定servlet相对于应用目录的路径</url-pattern> </servlet-mapping> servlet-mapping> <servlet-name>servlet的名字1</servlet-name> <url-pattern>指定servlet相对于应用目录的路径</url-pattern> </servlet-mapping> </web-app> catalina.sh run 带控制台启动tomcat服务器。 四、Servlet的调用过程 1,用户通过浏览器向web服务器发送请求 http://serverip:port/apppath 2,服务器为用户定位资源 静态资源:/a.html /a/b.html (这里的路径是针对web应用文件夹目录)读文件并把内容发 送到客户端 动态资源:解析web.xml定位Servlet类的名字 装载类(WEB-INF/classes|WEB-INF/lib/*.jar) 创建该对象的实例 Servlet ser=(Servlet)(Class.forName("servle的类名")).newInstance(); //我们写的Servlet一定要实现Servlet接口或者继承实现了Servlet接口的类 ser.service(request,response); <servlet-mapping> <servlet-name>servlet的名字(要和servlet标签中的相同)</servlet-name> <url-pattern>指定servlet相对于应用目录的路径</url-pattern> </servlet-mapping> url-parttern的配置,这个url就是Servlet的虚拟路径,可以使用相对路径或者是绝对路径。 /xxx/xxx(绝对路径) ,xxx(相对路径),尽量使用绝对路径。 访问servlet的方法 http://serverip:port/应用文件夹名/url-pattern http的请求 get请求,post请求。 get请求在发出请求时会把参数写在地址栏上,而post请求不会把要发送的参数显示在地址栏上。 <form method="get" action="应用名/url-pattern"> ...... </form> 我们可以通过ServletRequest对象的方法来获取请求中传送的参数。 getParameter(String name)方法,可以获得form表单中指定名字的参数,多参数同名时,只取一个。 getParameterNames(),可以获得一个迭代器Enumeration,通过这个迭代器,来获得form表单中参数的名字。 getParameterValues(String name)获得指定的所有同名参数的值。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-08-08
哇...
楼主写blog的速度不是一般的快. |
|
返回顶楼 | |
发表时间:2007-08-09
呵呵....
不好意思吓到你了,我只是积累了一些学习时的笔记,想给大家分享一下希望能给一些自学,或正在学习这方面知识的网友一些帮助,如果在文章中有什么不正确的,请社友们帮忙指出,谢谢. |
|
返回顶楼 | |
发表时间:2007-08-09
不管怎么样,还是要谢谢楼主
对新手是个学习机会,对高手是个温故旧知识的机会,何乐而不为呢? |
|
返回顶楼 | |