JSP和JSF合并打造完美Web应用

JSP和JSF合并打造完美Web应用,第1张

Java在最近几年逐渐升温 随着Java SE 和Java SE 的推出 Java的未来更显得无比辉煌 但以Java为基础的JSP在Java SE 推出之前却一直抬不起头来 这最重要的原因就是JSP虽然功能十分强大 但最大的优点也是它的最大缺点 功能强大就意味着复杂 尤其是设计前端界面的可视化工具不多 也不够强大 因此 设计JSP页面就变得十分复杂和繁琐 不过 在Java SE 推出的同时 Sun为了简化JSP的开发难度 推出了新的JavaServer Faces(简称JSF)规范 从而使JSP走上了康庄大道

一 什么是JSF

JSF和JSP是一对新的搭档 JSP是用于后台的逻辑处理的技术 而JSF恰恰相反 是使开发人员能够快速的开发基于 Java 的 Web 应用程序的技术 是一种表现层技术 目前 JSF 已经正式作为一个标准加入了Java EE 中

作为一种高度组件化的技术 开发人员可以在一些开发工具的支持下 实现拖拉式编辑 *** 作 用户只需要简单的将 JSF 组件拖到页面上 就可以很容易的进行 Web 开发了 这是其作为一种组件化的技术所具有的最大好处 我们能用的组件不光是一些比较简单的输入框之类 还有更多复杂的组件可以使用的 比如 DataTable 这样的表格组件 Tree 这样的树形组件等等

作为一种标准的技术 JSF还得到了相当多工具提供商的支持 同时我们也会有很多很好的免费开发工具可以使用 前不久 Sun Java Studio Creator 和 Oracle JDeveloper g 作为免费的支持 JSF 的开发工具发布 给 JSF 带来了不小的生气 另外我们也有一些很优秀的商业开发工具可共选择 BEA Workshop (原 M NitroX) Exadel MyEclipse 这样的基于 Eclipse 的插件开发工具 为现在广大的 Eclipse 用户带来了不小的便利 IBM 的 Rational Application Developer 和 Borland 的 JBuilder 也是很不错的支持 JSF 可视化开发的商业开发工具

JSF和传统的Web技术有着本质上的差别 在传统的Web技术需要用户自己对浏览器请求进行捕捉 保存客户端状态 并且手工控制着页面的转向 等等 而JSF的出现 无疑给我们带来了巨大的便利 JSF 提供了事件驱动的页面导航模型 该模型使应用程序开发人员能够设计应用程序的页面流 与 Struts 的方式向类似的是 所有的页面流信息都定义在 JSF 配置 XML 文件 (faces config xml) 中 而非硬编码在应用程序中 这很大程度简化了开发人员开发难度 简化了应用程序的开发

同时JSF也是一种遵循模型 视图-控制器 (MVC) 模式的框架 实现了视图代码(View)与应用逻辑(Model)的完全分离 使得使用 JSF 技术的应用程序能够很好的实现页面与代码的分离 所有对 JSF 页面的请求都会通过一个前端控制器 (FacesServlet) 处理 系统自动处理用户的请求 并将结果返回给用户 这和传统的 MVC 框架并没有太大的区别

在JSF中不仅使用了 POJO 技术 而且还使用了类似 Spring 的控制反转(IoC) (或称为依赖注入 DI) 技术 在 JSF 的 Backing Bean 中 我们可以把视图所需要的数据和 *** 作放进一个 Backing Bean 中 同时得益于 JSF 使用的 DI 技术 我们可以在配置文件中初始化 Managed Bean 同时我们也可以通过这样的技术很方便的和使用类似技术的 Spring 进行整合

二 如何在JSP中使用JSF

JSF只有通过和JSP相结合 才能充分发挥它的功效 JSF是通过标签库和JSP进行集成的 标签库就相当于ASP NET的服务端组件 JSF提供了非常丰富的标签库 通过这些标签库 可以生成各种客户端模型 如HTML WML XML以及JavaScript等 通过这些标签 你可以很容易建立大规模的客户端模型 并由这些标签自动处理客户端请求

接下来让我们来看一个如何使JSF和JSP在一起工作的例子 在JSF中有两个库 第一个叫做内核库 在这个库中包含了各种主要的标签 如配置组件 管理事件 验证输入信息等 第二个库的主要功能是将HTML和JSF的各种标签相对应 每一个JSF标签都会对应一个HTML组件 如UIInput标签对应了HTML中的文本框或密码框

在JSF标签中文本输入框叫做inputText 而密码输入库叫inputSecret 下面是一个简单的JSF和JSP结合的用户接口程序

<%@ taglib uri="%> <%@ taglib uri="%> <> <head> <meta >当然不可以
你首先要搞清楚执行顺序。
客户端 发送请求 到服务器 (比如说用户访问了 indexjsp)
服务器端响应请求 执行了 indexjsp 然后生成html代码(包括javascript) 通过网络发送给 客户端
然后在客户端的浏览器上显示html页面,这个时候才可以执行javascript。
从上可知,执行jsp和javascript的时间和地点都不同。所以不可以调用。
记住 到客户端的都是静态页面

网络不佳。前端jsp给ajax请求发送给后端controller没响应是因为网络不佳。换网络试试即可。前端jsp是SUN公司定义的一种用于开发动态web资源的技术。JSP/Servlet规范。JSP实际上就是Servlet。JSP这门技术的最大的特点在于,写jsp就像在写html,但相比html而言,html只能为用户提供静态数据。

不少的朋友经常会在电脑科普网站上看到jsp这个概念,究竟这个jsp是什么意思?jsp又有什么作用和特点呢?下面让我们一起去了解吧。

简要回答

JSP是一种动态网页技术标准,这种技术可以根据客户端的请求,生成动态或者静态网页,然后发送给客户端的请求者。

详细内容

JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的>JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(htm,html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(jsp)。
用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他 *** 作系统上运行。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以 *** 作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
JSP与Java Servlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
JSP的10规范的最后版本是1999年9月推出的,12月又推出了11规范。目前较新的是JSP12规范,JSP20规范的征求意见稿也已出台。
JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet 是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
1. JSP技术的强势
(1)一次编写,到处运行。在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。
(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/PHP的局限性是显而易见的。
(3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。
(4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。
2. JSP技术的弱势
(1) 与ASP一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。
(2) Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。从另一方面,它还需要硬盘空间来储存一系列的java文件和class文件,以及对应的版本文件。
JSP九种内置对象:
request, response, out, session, application, config, pagecontext, page, exception
一request对象:该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交信息。
二response对象:对客户的请求做出动态的响应,向客户端发送数据。
三.session对象
1什么是session:session对象是一个JSP内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管理。
从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间反复连接,反复刷新一个页面,服务器应当通过某种办法知道这是同一个客户,这就需要session对象。
2.session对象的ID:当一个客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个session对象,同时分配一个String类型的ID号,JSP引擎同时将这个ID号发送到客户端,存放在Cookie中,这样session对象和客户之间就建立了一一对应的关系。当客户再访问连接该服务器的其他页面时,不再分配给客户新的session对象,直到客户关闭浏览器后,服务器端该客户的session对象才取消,并且和客户的会话对应关系消失。当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的session对象。
四.aplication对象
1.什么是application:
服务器启动后就产生了这个application对象,当客户再所访问的网站的各个页面之间浏览时,这个application对象都是同一个,直到服务器关闭。但是与session不同的是,所有客户的application对象都是同一个,即所有客户共享这个内置的application对象。
2.application对象常用方法:
(1)public void setAttribute(String key,Object obj): 将参数Object指定的对象obj添加到application对象中,并为添加的对象指定一个索引关键字。
(2)public Object getAttribute(String key): 获取application对象中含有关键字的对象。
五.out对象
out对象是一个输出流,用来向客户端输出数据。out对象用于各种数据的输出。
六.Cookie
1什么是Cookie:
Cookie是Web服务器保存在用户硬盘上的一段文本。Cookie允许一个Web站点在用户的电脑上保存信息并且随后再取回它。
举例来说,一个Web站点可能会为每一个访问者产生一个唯一的ID,然后以Cookie文件的形式保存在每个用户的机器上。
如果您使用IE浏览器访问Web,您会看到所有保存在您的硬盘上的Cookie。它们最常存放的地方是:c:\windows\cookies(在Window2000中则是C:\Documents and Settings\您的用户名\Cookies )
Cookie是以“关键字key=值value“的格式来保存纪录的
2.创建一个Cookie对象,调用Cookie对象的构造函数可以创建Cookie。Cookie对象的构造函数有两个字符串参数:Cookie名字和Cookie值。
Cookie c=new Cookie(“username”,”john”);
3. JSP中如果要将封装好的Cookie对象传送到客户端,使用response的addCookie()方法。
格式:responseaddCookie(c)
4.读取保存到客户端的Cookie,使用request对象的getCookies()方法,执行时将所有客户端传来的Cookie对象以数组的形式排列,如果要取出符合需要的Cookie对象,就需要循环比较数组内每个对象的关键字。
一句话,JSP就是Java在 网页设计方面 一个 很广泛的应用
要是要做毕业论文,最好买一本书 学学里面的程序

JSP中request封装的是用户的请求信息,和Servlet的doGet和doPost中的request是一样的。

客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是>

常用的request的方法:

(1)object getAttribute(String name) 返回指定属性的属性值 ;

(2)String getParameter(String name) 返回name指定参数的参数值,用来获取form中input等用户输入的值。

(3)void setAttribute(String name, Object value); 设置属性,用getAttribute取回。

可以在JSP中运行下面的代码就知道了:

请求方式:<%=requestgetMethod()%><br>
请求的资源:<%=requestgetRequestURI()%><br>
请求用的协议:<%=requestgetProtocol()%><br>
请求的文件名:<%=requestgetServletPath()%><br>
请求的服务器的IP:<%=requestgetServerName()%><br>
请求服务器的端口:<%=requestgetServerPort()%><br>
客户端IP地址:<%=requestgetRemoteAddr()%><br>
客户端主机名:<%=requestgetRemoteHost()%><br>
表单提交来的值:<%=requestgetParameter("qwe")%><br>

    其实对于JSP中的内置对象,牢记一点:JSP本身就是一个Servlet,它会被容器编译为一个java类。  

    比如Tomcat容器在works目录下就可以找到你的JSP文件编译好的类,它对JSP中HTML代码用的就是outwrite()输出的。

     先学会用Servlet处理信息,在用JSP会很容易,JSP本身就是为了解决在Java代码中拼写HTML代码这个烦人的问题而诞生的一种技术。Servlet才是基础!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13405845.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-30
下一篇 2023-07-30

发表评论

登录后才能评论

评论列表(0条)

保存