`
txf2004
  • 浏览: 6869213 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

struts的一些琐碎知识(一)

 
阅读更多

1.学习Java Web应用开发,需要安装一个支持JSP、Servlet等技术的Web服务软件,这样的软件称为Web容器,而将安装Web容器的计算机称为Web服务器。支持JSP的Web容器负责运行JSP程序,并将结果以网页的形式返回给客户端。


2.如果Tomcat安装时选择“Full”完全安装,Tomcat服务器安装目录的webapps文件夹下包含docs、examples等目录,这些目录实际上也是Web服务目录,他们是Tomcat自带的Web项目设置的Web服务目录,例如访问http://localhost:8080/examples/,就可以访问本地Tomcat服务器上自带的JSP和Servlet例子。

事实上,在webapps目录下任何一个子目录都可以作为一个Web服务目录。假设在webapps目录下新建一个文件夹JSPTest,那么JSPTest也是一个Web目录,如果将JSP页面文件test.jsp保存至JSPTest目录下,那么用户在此Tomcat服务上使用如下URL即可访问test.jsp:http://localhost:8080/JSPTest/test.jsp.

当然也可以将其他目录作为Web服务目录,只需要设置此目录为虚拟目录即可。假设设置Tomcat服务器所在的计算机的D://WebPages目录设为虚拟目录,且虚拟目录名称为web,那么具体步骤为:

1:打开Tomcat安装目录/conf/server.xml;

2:修改<Host>元素。在server.xml中找到<Host>元素并为其增加<Context>子元素:<Context path="web" docBase='D:/WebPages" debug="0‘ reloadable="true"/>

3:保存并且重启Tomcat即可。


3.设置端口号

1:打开Tomcat安装目录/conf/server.xml;

2:<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443'


4:简介Web项目下的文件

src:主要存放Java源文件,项目中的JavaBean、Servlet等java源文件

build:主要存放JSP编译之后的中间字节码文件

WebContent:主要存放Web资源,如JSP页面、HTML页面、图片、CSS等文件。WEB-INF子文件夹主要存放库文件(lib)JavaBean和Servlet编译之后生成的中间字节码文件(classes)和配置文件(web.xml),META-INF子文件夹包含一个文件MANIFEST.MF,主要用于jar打包。


5:JSP运行机制

JSP是如何运行的呢?以Hello.jsp为例,当客户想Tomcat服务器发送请求访问Hello.jsp页面时,Tomcat服务器将启动一个线程,该线首先将Hello.jsp转化成一个Servlet即Hello_jsp.java,然后再将此Servlet编译成中间字节码文件并加载运行。一旦该客户请求完成时,线程进入死亡状态,但是该中间字节码文件却一直长住在Tomcat服务器内存,直至Tomcat服务器终止运行。当又有客户端请求该页面时,Tomcat服务器将在启动一个线程,直接执行长住内存的中间字节码文件并将结果以HTML的形式响应客户。由此可见,仅仅当JSP页面第一次被请求是被编译,以后再次请求时将直接运行。

注:Hello_jsp.java将保存在Tomcat安装目录下的work文件夹内。


6:HTTP协议简介

1.无连接指的是每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。

2.无状态指的是对事务处理没有记忆功能。因为无连接即一旦处理完即断开连接,并不保存本次连接的任何信息,这就意味着如果后续处理需要前面的信息,他就必须重新传输。


7:HTML元素简介

1.DOCTYPE声明元素,即文档类型(Document Type)在页面中用来指定页面所使用的HTML(或者XHTML)版本。语法格式(即DTD);<!DOCTYPEHTML顶级元素可用性“注册//组织//类型标签//定义语言”“URL”


8:注释

1HTML注释.<!-- -->在源代码中可以看到

2.JSP注释<%-- -->JSP引擎忽略JSP注释,用户在客户端看不到


9:JSP脚本元素

1.<%! %>表示声明

2.<%= %>表示表达式

3.<% %>表示代码段

注意:使用<%! %>声明的变量和方法是页面级别的(相当于用static修饰),即他们在声明语句所在的页面有效。因为Tomcat将JSP页面转换为Java类时,声明的变量将作为类的成员变量,声明的方法作为类的方法。


10:使用<jsp:forward page="">动作标记跳转页面时,其URL并不会随之改变为跳转后的页面地址。


11:Request请求报文分为四部分请求行(Request Line)、请求首部(Request Header)、空行(Blank Line)、请求数据(Body)

请求行 GET /JSPRequest.jsp HTTP/1.1第一部分GET表示get请求,第二部分(/)表示请求的是该域名的根目录,最后一部分说明使用的是HTTP1.1版本

请求首部:

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language:zh-CN,zh;q=0.8
Accept-Encoding:gzip,deflate
User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.802.30 Safari/535.1 SE 2.X MetaSr 1.0
Host:localhost:8080

Connection:keep-alive

下面是获取该内容的源码及其他:

空行是非常重要的,它是用来分隔首部和数据的标志。

使用request内置对象的诸多方法能够获取客户端集服务器的运行环境,还可以利用getParameter()方法、setAttribute()等方法、getAttribute()等方法实现两个页面见传递数据。


12:设置和获取Cookie



13:page对象代表当前正在运行的JSP页面,或者可以认为page代表的是JSP页面被编译后的Servlet,因此类似Java语言中的this关键字。需要注意的是page对象只能在当前JSP页面范围内使用。




14:Servlet与传统的以命令行方式启动的Java应用程序不同,Servlet由包含Java虚拟机的Web服务器进行加载并运行。Filter可以实现对Servlet的过滤,Listener实现监听。


15:JavaBean能够实现JSP与java代码的传值



16:MVC与DAO的引言:
使用JavaBean可以实现表示层(JSP)与业务逻辑层(如15中的getCalculate()方法)的分离(即不在JSP中插入Java代码)。在一些小的项目中使用JSP+JavaBean(JavaBean既负责数据的传递又负责数据的处理)就可以了,但当Web应用复杂是就力不从心了,比如JavaBean实现页面的重定向比较困难。因此,把数据交给Servlet对象完成,即Servlet控制处理数据,JavaBean储存Servlet处理数据的结果,而JSP负责将JavaBean中存储的数据显示出来,这种模式就是MVC(Model-View-Controller)。
但是如果程序更大,所有的业务逻辑如访问数据库、数据操作和计算都交给Servlet处理,曲艺将导致Servlet非常臃肿并且如果业务流程发生改变,就必须修改整个应用系统,程序缺乏灵活性和稳定性。为例降低数据访问模块间的耦合度,提高程序的灵活性,人们又提出来DAO模式(Data Access Object)。












  


  
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics