jsp和struts2总结.docx

上传人:b****6 文档编号:6458816 上传时间:2023-01-06 格式:DOCX 页数:24 大小:465.57KB
下载 相关 举报
jsp和struts2总结.docx_第1页
第1页 / 共24页
jsp和struts2总结.docx_第2页
第2页 / 共24页
jsp和struts2总结.docx_第3页
第3页 / 共24页
jsp和struts2总结.docx_第4页
第4页 / 共24页
jsp和struts2总结.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

jsp和struts2总结.docx

《jsp和struts2总结.docx》由会员分享,可在线阅读,更多相关《jsp和struts2总结.docx(24页珍藏版)》请在冰豆网上搜索。

jsp和struts2总结.docx

jsp和struts2总结

Jsp与servlet总结

Jsp

一、定义:

jsp(javaserverpages)基于java技术,用于创建可支持跨平台以及跨web服务器的动态网页。

二、组成:

①:

传统的html(*.htm、*.html)html5富媒体ria

②:

javaScript页面脚本(*.js)

③:

java程序片段(scriplet)

④:

jsp标记(tag)

以上四个加起来=jsp网页(*.jsp)

三、特点:

1:

将内容的生成和显示进行分离。

2:

生成可重用的组件。

3:

采用标识简化页面开发。

4:

jsp能提供所有的servlet功能。

5:

健壮的存储管理和安全性。

6:

一次编写随处运行(java之上)。

7:

jsp的平台适用性更广。

8:

java中连接数据库的技术是Jdbc(javadataBaseconnectivity)。

9:

简单易学,易理解。

四、Jsp的执行过程:

1:

客户端发送request请求;

2:

jspContainer将jsp转译为servlet的源代码;

3:

将产生的servlet的源代码经过编译,并加载到内存中执行;

4:

把结果响应response至客户端。

五、注释方式:

与java中同样//(单行注释)

---->(多行注释)

/***/

六、声明变量:

语法:

<%!

Declaration;[declaration]+…%>

可以一次性声明多个变量只要以‘;‘结尾即可。

但声明时的变量在java中必须是合法的。

例如:

<%!

inta=100;%>

声明方法和变量时必须注意的几点:

①:

声明必须以‘;‘结尾(scriptlet有同样的规则但表达式就不同了)。

②:

可以直接使用在<%@page%>中被包含进来的已经声明的变量和方法,不需要对他们进行再次声明。

③:

声明的变量和方法只能在当前声明的jsp页面中有效。

如果想每个页面都用到一些声明,最好把它们写成一个单独的文件,然后用

<%@ includefile="文件所在的路径和名称" %>

includefile="文件所在的路径和名称" >元素包含进来。

七、jsp表达式:

<%=%>

例如:

<%=HelloWorld%>

被编译成servlet后相当于:

out.write(String.valueOf(“HelloWorld”));

规则:

1:

不能使用‘;‘作为表达式的结束符。

但是同样的表达式用在scriplet中就需要以分毫结束。

2:

这个表达式元素能够包括任何在javaLanguageSpecification中有效的表达式。

3:

有时候表达式也能做为其他JSP元素的属性值。

一个表达式能够变得很复杂,它可能由一个或多个表达式组成,这些表达式的顺序是从左到右.

八、指令标签:

①:

page 指令用于定义JSP文件中的全局属性。

例子:

<%@ page import="java.util.*, java.lang.*" %> (引包)

<%@ page buffer="5kb" autoFlush="false" %> (页面缓冲大小)

<%@ page errorPage="error.jsp" %> (错误页面)

②:

include指令标签:

用于包含html,jsp文件

例子:

<%@includefile=“file.html”%>(从当前目录获取文件)

<%@includefile=“/include/file.jsp”%>(从根目录获取文件)

3:

taglib指令标签:

引入页面标签。

快速输出,java代码的封装实现。

例子:

<%@taglibprefix="c"uri="%>

九、标准动作:

容器在处理JSP时,每遇到这种动作元素,都根据它的标记进行特殊的处理。

JSP规范定义了一系列的标准动作,它用JSP作为前缀。

标准动作元素有:

includepage="">

include>

params>

paramvalue=""name=""/>

params>

attributename="">

attribute>

body>

body>

elementname="">

element>

fallback>

fallback>

forwardpage="">

forward>

getPropertyproperty=""name=""/>

output>

output>

plugincode=""codebase=""type="bean">

plugin>

setPropertyproperty=""name=""/>

useBeanid="">

useBean>

一十、jsp中的内置对象介绍:

JSP为简化页面的开发提供了一些内部对象。

这些内部对象不需要由JSP的编写者实例化,它们由容器实现和管理,在所有JSP页面中都能使用内部对象,所有的隐含对象只有对Scriptlet或者表达式有用,在JSP声明中不可用。

九大内置对象如下:

1:

out对象

out对象被封装成javax.servlet.jsp.JspWrite接口。

它表示为客户打开的输出流,PrintWriter使用它向客户发送输出流,简单的说它只要用来向客户端输出数据。

2:

request对象

Request对象代表请求对象,它被包装成HttpServletResquest接口,通过getParameter方法可以得到request的参数,通过GET、POST、HEAD等方法可以得到request的类型,通过Cookies、Referer等可以得到请求的Http头。

3:

response对象

Response被包装成HttpServletResponse接口

它封装了JSP产生的响应,然后被发送到客户端以响应客户的请求。

和request对象一样,它由容器生成,作为jspService()方法的参数被传入JSP。

因为输出流是缓冲的,所以可以设置Http状态码和response头。

4:

session对象

Session对象用来保存每个用户信息,以便跟踪每个用户的操作状态。

其中,session信息保存在容器里,session的ID保存在客户机的Cookie中,在许多服务器上,如果浏览器支持Cookies的话,就直接使用Cookies。

但是如果不支持或废除了Cookies的话,就自动转化为URL-rewriting(重写URL,这个URL包含客户端的信息),session自动为每个流程提供了方便的存储信息的方法。

一般情况下,用户首次登录系统时容器会给此用户分配一个惟一标识的sessionid,这个ID用于区分其他的用户,当用户退出系统时,这个session就会自动消失。

和session对应的是HttpSession接口。

5:

application对象

Application对象为多个应用程序保存信息,对于一个容器而言,每个用户都共同使用一个application对象,这和session对象是不一样的。

服务器启动后,就会自动创建application对象,这个对象一直会保持,直到服务器关闭为止

6:

pageContext对象

pageContext对象被封装成javax.servlet.jsp.pageContext接口,它为JSP页面包装页面的上下文。

管理对属于JSP中特殊可见部分中已命名对象的访问。

它的创建和初始化都是由容器来完成的,JSP页面里可以直接使用pageContext对象的句柄。

pageContext对象的getXXX()、setXXX()和findXXX()方法可以用来根据不同的对象范围实现对象的管理。

7:

page对象:

Page对象是java.lang.Object类的一个实例。

它指的是JSP实现类的实例,也就是说,它是JSP本身,通过这个可以对它进行访问。

JSP实现类对象的一个句柄,只有在JSP页面的范围之内才是合法的。

8:

config对象

config对象被封装成javax.servlet.ServletCofig接口,它表示Servlet的配置。

当一个Servelt初始化时,容器把某些信息通过此对象传递给这个Servlet。

9:

exception对象

exception对象是java.lang.Throwable类的一个实例。

它指的是运行时的异常,也就是被调用的错误页面的结果,只有在错误页面(在页面指令里有isErrorPage=true的页面才可以使用。

十一、jsp中使用javaBean

1):

javaBean的基本概念:

JSP最强有力的一个方面就是能够使用JavaBean组件体系。

JavaBean往往封装了程序的页面逻辑,它是可重用的组件。

通过使用JavaBean,可以减少在JSP中脚本代码的使用,这样使得JSP易于维护,代码开发更方可靠。

2)JavaBean的特性:

◦①:

可以实现代码的重复利用

◦②:

易维护性、易使用性、易编写性

◦③:

可以在支持Java的任何平台上工作,而不需要重新编译

◦④:

可以在内部、网内或者是网络之间进行传输

◦⑤:

可以以其他部件的模式进行工作

3)javaBean的属性分类:

属性是JavaBean组件内部状态的抽象表示,JavaBeans的属性可以分为以下四类:

◦Simple(简单的)

◦Indexed(索引的)

◦Bound(绑定的)

◦Constrained(约束的)

十二、jsp页面框架:

FRAMESET标记有两个属性ROWS、COLS,分别用来说明将把浏览器窗口分成小窗口的数量和各个小窗口的大小。

cols属性:

纵向将窗口划分为若干窗框。

rows属性:

横向将窗口划分为若干窗框。

noframes标记:

对不支持框架的设备进行提示,或相关操作。

Servlet

一、定义:

JavaServlet是一个专门用于编写网络服务器应用程序的Java组件.所

基于Java的服务器端编程都是构建在Servlet之上的.

二、特点:

Servlet带给开发人员最大的好处是它可以处理客户端传来的Http请求,并返回一个响应。

Servlet是一个Java的类,Java语言能够实现的功能,Servlet基本上都能实现(除了图形界面外)。

总的来说,Servlet有以下优势。

特点

1可移植性:

可移植性:

因为Servlet由java开发并符合规范定义和广泛接收的API,它可以在不同的操作系统平台和不同的应用服务器平台下移植.

2功能强大:

Servlet可以使用JavaAPI核心的所有功能,这些功能包括Web和URL访问、图像处理、数据压缩、多线程、JDBC、RMI、序列化对象等。

3安全:

有几个不同层次为Servlet的安全提供了保障,首先,它是用Java编写的,所以它可以使用Java的安全框架;其次,ServletAPI被实现为类型安全的;另外,容器也会给Servlet的安全进行管理,在Servlet安全策略中,可以使用编程的安全也可以使用声明性的安全,声明性的安全由容器进行统一的管理。

4简洁:

Servlet代码面向对象、在封装方面具有先天的优势。

5集成:

Servlet和服务器紧密集成,它们可以密切使用完成特定的任务。

6模块化:

每一个Servlet可以执行一个特定任务,并且可以将它们并在一起工作,Servlet之间是可以相互交流的。

7扩展性和灵活性:

Servlet本身的接口设计得非常精简,使得它有很强的扩展性。

需要指出的是,Servlet不等于HttpServlet,后者是前者的一个常用扩展。

8高效耐久:

Servlet一旦载入,它就驻留在内存中,这样加快了响应的速度。

三、生命周期

Servlet部置在容器里[tomcat、Jboss、webspher、weblogis、glassfish等],它的生命周期由容器管理。

Servlet的生命周期概括为以下几个阶段:

◦①、装载Servlet:

这项操作一般是动态执行的。

有些服务器提供了相应的管理功能,可以在启动的时候就装载Servlet并能够初始化特定的Servlet。

(容器启动时即为装载时)

◦②、创建一个Servlet实例。

◦③、调用Servlet的init()方法。

(只会调用一次当参数要实例化时用其他情况可略)

◦④、服务:

如果容器接收到对此Servlet的请求,那么它调用Servlet的service()方法。

◦5、业务:

根据页面method请求的类型,进行对doGet或doPost的方法调用,并处理后台业务。

(method=get||post)

◦6、销毁:

实例被销毁,通过调用Servlet的destroy()方法来销毁Servlet.

◦在几个阶段中,对外提供服务是最重要的阶段,service()方法是我们最关心的方法,因为它才是真正处理业务的方法。

四、Servlet与JSP的关系

JSP页面主要是HTML(或者XML)与Java代码的结合,以及加入其中的JSP标记.如果一个支持JSP的服务器遇到一个JSP页面,它首先查看该页面是否被编译成为一个Servlet.由此可见,JSP被编译成Servlet,即被转变为纯Java,然后被加载如服务器执行.

六、Servlet编程基础

Servlet的主要功能在于交互的浏览和修改数据,生成动态Web内容,其过程为:

(1)客户端发送请求至服务器端

(2)服务器将请求信息发送至Servlet

(3)Servlet生成相应内容并将其传给服务器.相应内容动态生成,通常取决于客户端的请求

(4)服务器将相应返回给客户端

七、web.xml

在web.xml描述中,首先声明Servlet,指定这个Servlet的名字和类,然后在后面为这个Servlet做URI映射,我们通过这个映射来访问Servlet。

注:

为了简化开发,我们编写的Servlet一般直接继承HttpServlet,HttpServlet封装了编写基于Http协议Servlet的大部分功能。

HelloWorldServlet中有两个方法,一个是doGet,它处理HttpGet请求;另一个是doPost方法,它处理HttpPost请求。

在这里doGet和doPost都进行一样的的处理。

在doGet方法中,首先设置响应的MIMI类型和编码方式,然后获得输出流对象,这个输出流对象用out表示,这个out对象和JSP中内建对象out是一样的,通过它可以把输出发送到客户端.

Servlet容器对方法的装入过程:

1、构造方法,在第一个用户第一次访问时创建实例。

2、init()方法:

3、service()方法。

八、URL请求传参:

Servlet可以通过URL请求地址把表单的参数提交给服务器中的Servlet

例:

method=use&query=100"id="loginForm"name="loginForm"method="post">

九、使用隐含表单:

通过隐含表单的方式将参数传到下一个页面。

但是这样存在两个局限性:

2只能在相邻的两个页面之间。

②:

客户端可以在浏览器中查看源代码,并可获得请求参数,安全性不高。

十、文件操作:

1):

读取文件:

两种方式:

方式①:

ServletContext上下文

InputStreamin=getServletContext().getResourceAsStream("文件路径");

方式①:

io流读取文件java.io.FileReader

BufferedReaderin=newBufferedReader(newFileReader("文件路径"));

2):

写入文件:

可以通过FileWriter对象或者FileOutputStream把内容输出到文件中PrintWriterwriter=newPrintWriter(newBufferedWriter(newFileWriter(“文件路径",true)));

十一、servlet文件上传

原理:

由Servlet或者JavaBean获得客户端请求的输入流,然后从这个输入流中读取指定的文件,然后把文件保存到指定的位置.

十二、JSTL标签:

来源:

JSP1.1规范开始,JSP就支持在JSP中使用自定义标签了,自定义标签的广泛使用造成了程序员重复定义,这样就促成了JSTL(JavaServerPagesStandardTagLibrary)的诞生.

运行要求:

支持JSP1.2和Servlet2.3规范的容器上.

JSTL包含两个部分:

标签库和EL(ExpressionLanguage表达式语言)语言。

十三、自定义标签:

注:

有body体的可继承BodyTagSupport无body继承TagSupport

Struts1

一、介绍:

Struts是一个开源软件,有助于开发者更加快速和容易地建立Web应用程序。

Struts依靠绝大多数开发者已熟知的标准技术—比如JavaBeans,Javaservlet,以及JavaServerPage(JSP)。

通过基于标准的技术,“填空式”的软件开发方法,Struts可以减轻在创建新项目时那些令人抱怨的极费时间的工作.

a)Struts使用Model2架构。

b)ActionServlet是它的控制导航流。

c)Action,用来访问业务逻辑类

d)当ActionServlet从容器接收到一个请求,它使用URI(或者路径“path”)来决定那个Action将用来处理请求。

由ActionServlet将参数绑定到JavaBean中。

ction选择并向Servlet返回一个ActionForward。

Servlet然后使用保存在ActionForward对象中的路径来调用页面完成响应。

二、什么叫应用框架?

框架(framework)是可重用的,半成品的应用程序,可以用来产生专门的定制程序。

特征:

1:

已经知道它们在其它程序上工作的很好;

2:

它们随时可以在下一个项目中使用;

3:

它们可以被组织的其它团队使用。

Struts1各组件工作流程图:

五大对象:

操作流程:

三、写Struts该做哪些事情:

1):

准备工作:

a)下载并安装JDK1.6.x

b)下在并安装Tomcat6.0.x

c)校验Tomcat是否工作正常。

d)项目中所需要用到的第三方jar包:

2):

配置web.xml

action

org.apache.struts.action.ActionServlet

1

action

*.do

3):

编写ActionFormBean接受请求数据

需继承ActionForm类含有校验方法validate();

4):

创建Action业务逻辑类

Action是一个Java类,扩展了org.apache.struts.Action。

ActionServlet负责组装ActionForm,然后将其传递给Action。

Action通常负责输入校验,访问业务信息,以及决定向Servlet返回哪个ActionForward

5):

创建struts-config.xml

struts-config.xml文件包含了ActionServlet需要用来处理对应用请求的详细信息.

如:

a):

配置表单form类相应结点:

b):

配置所有页面请求Action类(相应结点)

6):

创建页面

四、MVC思想:

数据系统称为模型Model,表现系统称为视图View,而交互系统

称为控制器Controller

关系图如下:

 

四、请求被ActionServlet接收

a)处理路径:

ActionServlet首先检查这个请求路径是否是一个应用模块。

如果是,相应模块的配置被选中。

[Struts1.1]

b)处理场所:

(local)默认下,ActionServlet会检查是否有一个标准的locale对象在用户会话的上下文当中。

如果没有,ActionServlet将放入一个。

这个对象将为每个用户提供本地化表现。

c)处理内容和缓存:

默认的MIME类型和可选的请求头将加在响应之上。

d)处理映射Mapping:

ActionServlet检查ActionMapping,是否有注册的路径合正处理的请求。

如果没找到,ActionServlet转发到默认(或“unknown”)Action(如果设定有默认或未知Action),否则,产生一个“badrequest”错。

如果找到相关映射,将被放入请求之中,供后面引用。

e)处理角色:

ActionServlet检查是否用户被授权可以访问action.[Struts1.1]。

f)处理ActionForm.ActionServlet检查是否mapping中指定了一个ActionForm.。

如果检查存以,那么加载特定的ActionForm对象。

如果不存在,ActionServlet创建一个。

并创建ActionForm对象,接着调用reset方法,然后通过反射机制被自动组装表单属性。

匹配ActionForm属性的参数将被使用,没有匹配的参数和属性被忽略。

g)处理验证:

ActionForm的validate方法被调用。

如果方法返ActionEerrors对象不为空,控制传递给ActionMapping的input属性,并标明错误的路径,Action无法被正确调用和处理。

h)处理转发和包含:

如果ActionMapping标明forward或include属性,控制被传递给其他资源。

否则ActionServlet将请求委托给一个Actio

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1