JSP架构、JSP开发工具优缺点比较
随着技术的日新月异 ,JSP的新技术也层出不穷,为了方面大家的学习与工作,下面将简单的介绍一下JSP架构、JSP开发工具、Web服务器及其铖缺点。
JSP架构:
struts: Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点,使开发者能更深入的了解其内部实现机制。
除此之外,Struts的优点主要集中体现在两个方面:Taglib和页面导航。Taglib是Struts的标记库,比较灵活,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。struts历经6年多的发展,是目前用户数最多、开发团队和社区最火热的框架,适用于中小型项目的快速开发。
tapestry: Tapestry是一个开源的基于servlet的应用程序框架,它使用组件对象模型来创建动态的,交互的web应用。一个组件就是任意一个带有jwcid属性的html标记。其中jwc的意思是Java Web Component.Tapestry使得java代码与html完全分离,利用这个框架开发大型应用变得轻而易举。并且开发的应用很容易维护和升级。Tapestry支持本地化,其错误报告也很详细。Tapestry主要利用javabean和xml技术进行开发,是一个组件式的、事件驱动的框架,理念很先进,想实现类似于桌面程序开发的那种便捷模式。但是它的学习曲线比较陡峭,要花不少时间才能掌握它。它适合大型项目开发,随着组件的积累,开发越到后期可复用的组件越多,开发速度越快。
spring mvc: Spring 的 Web MVC 框架是围绕 DispatcherServlet 设计的,它把请求分派给处理程序,同时带有可配置的处理程序映射、视图解析、本地语言、主题解析以及上载文件支持。默认的处理程序是非常简单的 Controller 接口,只有一个方法 ModelAndView handleRequest(request, response)。Spring 提供了一个控制器层次结构,可以派生子类。如果应用程序需要处理用户输入表单,那么可以继承 AbstractFormController.如果需要把多页输入处理到一个表单,那么可以继承 AbstractWizardFormController.spring提供的东东,使用了spring的IoC,并且也非常强大,但是感觉它比较接近低层,要关注的东西很多。
JSF: JSF负责对客户端设备产生影响,它提供了将表示层、应用层和业务逻辑层整合在一起的工具,但是,JSF的范围被限制在表示
相关文档:
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servle ......
public class TaskBean extends Thread{
public TaskBean(){
}
private int percent=0;
private boolean complete=false;
public synchronized&nb ......
JSP基本语法与定义
先来看一段简单的小程序:
程序:
1.jsp
<html>
<head>
<title>example</title>
</head>
1
<%@ page language=”java” %>
2
<%@ page
contentType=”text/html,charset=”GB2312””>
3
......
用了commons-fileupload-1.2.jar和commons-io-1.3.2.jar这两个包。
save.jsp
<%@ page language="java" contentType="text/html;charset=utf-8"%>
<%@ page import="java.util.*"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.regex.*"%>
<%@ page import="org.apache.co ......
<%@ page language="java" import="kg.TestBean2;" %>
<%@ page contentType="text/html;charset=gb2312" %>
<html>
<head>
<title>HelloBean</title>
</head>
<body>
<%--
<%
kg.TestBean2 testbean=(kg.TestBean2)session.setAttribute("testbean");
if ......