Next generation web development framework

zhaozj2021-02-11  214

JSP once defeated ASP, PHP at the speed at speed, but JSP did not have much innovation. Code and page mixing, making IDE difficult to take care. When dealing with some complicated links, it is more hands to be. Structure and JSP similar ASP.NET With its server-side control programming and data binding concepts, let developers are likely to be programmed with VB. It can be written like this! In fact, this is just a transformation from programming. Tell the event on the browser in the Server to reside in the session. So how is Java implementation? I have conceived two programs to achieve:

1. Like ASP.NET, use TAG replacement to work.

2. Develop JSP, use Taglib to implement server-side controls.

Program 1 requires a good analysis of HTML. The advantage is flexible, you can use the existing HTML editing tool.

Program 2 requires Taglib to allow any properties, which is expected to be JSP2.0. The advantage is compatible with the current JSP, and can take advantage of Taglib nested and loop.

I have tried to write some prototypes to implement the program 1. It is found that the effect is good, but it also needs considerable efforts. Then the Java enthusiasts on the Internet are not lonely? Let's take a look:

JSF (JavaServer Faces) http://sourceforge.net/projects/tapestry/

The original SUN experts have long been busy, but the genius only set a great norm, throwing the manufacturer to the five flowers. Don't guess, use JSP Taglib. With Sun's influence, there should be Opportunity to see IDE, I hope not too late.

Tapestry http://sourceforge.net/projects/tapestry/

The open source project on this SourceForge looks active, 2.3beta1 version is relatively cumbersome. 2.4alpha1 simplifies the configuration, but it is not stable, see Demo recommendation 2.3. From the implementation method, look at the similar program 1, do not like JSP And XSL's art may be very happy. SourceForge has a lot of its auxiliary projects, one of which is an Eclipse plugin, it seems that it is not far away. The following is a simple example of displaying the current time:

HOME.HTML:

=================================================================================================================================================================================

Simple </ title></p> <p></ hEAD></p> <p><body></p> <p>This Application Demonstrates Some Dynamic Behavior Using TapeStry Components.</p> <p><p> The current date and time is: <b> <span jwcid = "@ insert" value = "[[currentdate]]> Current Date </ span> </ b></p> <p><p> click <a jwcid="@pagelink" page="home" Sometag="test"> here </a> to refresh.</p> <p></ body></p> <p></ html></p> <p>HOME.JAVA:</p> <p>=================================================== package tutorial.SIMPLE;</p> <p>Import java.util.date;</p> <p>Import net.sf.tapestry.html.baSepage;</p> <p>/ **</p> <p>* @Version $ ID: Home.java, V 1.9 2002/11/27 17:58:58 hship eXP $</p> <p>* @Author Howard Lewis SHIP</p> <p>*</p> <p>** /</p> <p>Public Class Home Extends Basepage</p> <p>{</p> <p>Public Date getcurrentdate ()</p> <p>{</p> <p>Return new Date ();</p> <p>}</p> <p>}</p> <p>=================================================================================================================================================================================</p> <p>Echo http://www.nextapp.com/products/echo/</p> <p>This little thing is only 1.0beta3, but its demo makes me a lot of water. Operating the window on the browser actually doesn't have something different from writing a normal program Swing program, and can also refresh. If the front two frames still residue Struts The taste, then echo let us completely return to OO: Write servlet with Swing. Currently I haven't seen IDE support, if Borland is willing, let JBuilder support it is easy. SourceForge has two echo related projects ECHOPOINT And Marsh provides more Echo controls that make you dlow, interested friends can go see. Below is an example of HelloWorld</p> <p>HelloWorldServlet:</p> <p>=================================================================================================================================================================================</p> <p>Import nextApp.echo.contentpane;</p> <p>Import nextapp.echo.echoinstance;</p> <p>Import nextapp.echo.label;</p> <p>Import nextapp.echo.window;</p> <p>Import nextapp.echoservlet.echoserver;</p> <p>Public class helloworldservlet extends echoserver {</p> <p>/ / Return to a new instance for the user</p> <p>Public echoinstance newinstance () {</p> <p>Return new helloworld ();</p> <p>}</p> <p>}</p> <p>Class HelloWorld Extends echoinstance {</p> <p>// Call the init method when the user is first accessed. Return to the content you see by the user browser</p> <p>Public window init () {</p> <p>Window window = new window ();</p> <p>// Components can't be placed directly under WINDOW, you must add ContentPane Content = New ContentPane ();</p> <p>WINDOW.SETCONTENT (Content);</p> <p>Label label = new label ("Hello, World!");</p> <p>Content.add (label);</p> <p>Return window;</p> <p>}</p> <p>}</p> <p>=================================================================================================================================================================================</p> <p>Do not ask, the world is so wonderful. Think about the completion of some complex functions on the Web, the background program, the front desk script, one can not be less. Web Componets have made us see hope, complex operation Give it to the frame to complete, let us return to object-oriented OO world. But you want to see that too much event will cause server performance to decline due to excessive dependency and browser scripts. However, because of servlet, we can Traditional development methods are also used. And with the improvement of network performance and the support of IDE, Web development will become efficient and enjoyable.</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-5850.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="5850" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.040</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = 'VG50h_2B2QxV02hvYPFliUlzqvGlw9jN3oA_2BYz9MgZob_2BlADkrVklV07loOPPQoBfgCCt1_2Bl5yGlWTGqQqfO5Arw_3D_3D'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>