|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
先谈谈我对java的一些认识。我选择java,是因为他语法简单,功能强大,从web,到桌面,到嵌入式,无所不能。但当我进一步了解了java后,感叹,java原来也有许多缺点。js|webWebForm是事务驱动的,控件形态能够在http哀求之间主动坚持,而且利用后置代码很好地完成了页面表面与页面逻辑把持的分别,一改以往html,服务器段代码、javaScript混同在一同的web开辟体例。stucts供应了大批的定制标签,由tag、form、bean、action及设置文件构建了一个优异的MVC形式的web开辟体例。但比拟较其WebForm来,窃觉得stucts更加庞大,必要协同事情的元素较多,办理成绩的效果不如WebForm明显(仅是团体意见)。
在实际开辟中,经常必要在某个页面中处置良多Form控件,且要处置这个页面大概激发的多个事务,在事务触发后,又哀求统一个页面,又必要在哀求之间坚持形态,在页面中处置一切这些,实在不堪其烦。遭到WebForm启示,我在用JSP举行开辟时,自创了了其一些头脑。实质上我们就是想让页面显现代码与页面把持代码分别,要作到这一点其实不坚苦,有良多举措。
能够为页面界说一个“页面处置器(PageHandler)”,它相似WebForm的后置代码,它的接口基础是上面这个模样:
publicclassPageHandler
{
protectedHttpServletRequestrequest;
protectedHttpServletResponseresponse;
protectedJspWriterout;
protectedPageContextpageContext;
protectedHttpSessionsession=null;
protectedServletContextapplication=null;
protectedServletConfigconfig=null;
protectedStringevent_action=null;//页面事务
protectedStringevent_params=null;//页面参数
//获得操纵页面的基础组件
publicPageHandler(PageContextpage)
{
this.pageContext=page;
this.request=(HttpServletRequest)pageContext.getRequest();
this.response=(HttpServletResponse)pageContext.getResponse();
this.pageContext=page;
out=pageContext.getOut();
application=pageContext.getServletContext();
config=pageContext.getServletConfig();
session=pageContext.getSession();
try{
request.setCharacterEncoding("gb2312");//设定页面编码
}
catch(Exceptione)
{
e.printStackTrace();
}
}
//初始化页面的参数,详细的页面处置器类能够重写这
//个办法举行页面初始化
protectedvoidonLoad()throwsException
{
}
//依据页面指定的事务举行处置
privatefinalvoideventBind()throwsException
{
//event_action从从页面的名为event_action的hidden字段获得,它意为事务的称,
//当此事务触发时,他会寻觅在"页面处置器类中"与event_action同名的办法加
//以挪用。
if(event_action!=null&&!event_action.equals(Format.Empty))
{
event_params=request.getParameter("parameters");//事务参数参数,从页面
//的名为parameters的hidden字段获得
if(paramTypes[0]==null)
{
paramTypes[0]=Class.forName("java.lang.String");
}
ObjectparamValues[]=newObject[1];
paramValues[0]=event_params;
Methodmethod=null;
try
{
method=this.getClass().getDeclaredMethod(event_action,paramTypes);
method.setAccessible(true);
}
catch(Exceptione)
{
thrownewUserException("体系短少对您的哀求的处置机制:+event_action);
}
if(method!=null)
{
method.invoke(this,paramValues);//挪用web工夫
}
}
}
//处置页面
publicvoidprocess()throwsException
{
try
{
event_action=request.getParameter("action");//得页面事务
onLoad();//页面加载时的初始化
eventBind();//处置事务
}
catch(Exceptione)
{
e.printStackTrace();///////////////
Format.alert(out,"产生了未知毛病:"+Format.getString(e.getMessage()));
}
}
}
[1][2][3][4][5][6]下一页
诸如RMI,EJB等一些技术并不是你说的那么复杂,而是它们把一些复杂的工具封装成不复杂的工具了,理解这些工具是需要些时间。我问你,.net里有这些工具吗?要简单多少?。 |
|