Java Experts Deliver More than a Cup of Joe!

Java-Design-and-Development
To techs and geeks, Java isn't just another cup of Joe - it's a powerful programming language that can open up the world for businesses and users alike. For those of you who don't know what I'm talking about, let me explain. Java is an object-oriented programming language with built-in application programming interface (API) and platform independence. That might not be important (or even understandable) to the average business person, but what you should know is that it offers a wide range of ready-to-use technologies and frameworks which can help your business create software products and applications for an intuitive user experience (Ux) and give your bottom line the boost you need!
###Details >
 

Spring Into Security with the Spring Security Framework!

Java-Design-and-Development
In software programming, the use of frameworks makes things easy and saves a great deal of time for developers. In the Java world, Spring Security is one such framework that is worth consideration by developers. Spring Security is part of the larger Spring Projects Umbrella, and the framework can be used to implement security aspects in Java web applications. Spring Security makes a developer's job easier and ensures that an application is secure by configuring the appropriate elements in the xml file. It also provides support classes and various filters, as well as support for custom requirements. It is worth nothing that Spring Security sometimes requires a bit more work to achieve specific, complex requirements, but the tool is, nevertheless, a worthwhile addition to any developer's toolkit.One of the common requirements in web development is to gracefully exit from the application when a user session expires. In this article, we will look at how Spring Security can help a developer to easily configure and handle a session timeout, and explore the issues and workarounds that you'll need to understand in order to successfully utilize the tool. Configuration The following explanation assumes that the reader understands the required configuration xml file needed to implement Spring Security, is the xml element where we need to make changes. To tell Spring to show a separate page when the user session has expired, you can simply specify the URL value in the invalid-session-url attribute - and then, you are done! When the user tries to make a request after being idle for some time, and session has already timed out, Spring will direct the user to the specified page. Problem This configuration is very simple. But, it will create one problem. Even when a user logs out properly from the system, he or she will get the session expiration page instead of the login page (we'll assume here that you have setup the login the URL as a logout-success-url in element). This problem occurs because, when user logs out, Spring invalidates the user session. On the next request to show the login page, the browser will send the cached session ID to the server. But, since the session associated with the given ID is invalidated, Spring will redirect the user to the session expiration page as configured. Workaround 1 One workaround to this problem is to tell Spring not to invalidate the session on logout event. This can be done by setting the value of invalidate-session attribute to “false” in element. This configuration will keep the user session alive on the logout event, so the user will be redirected to the login page, rather than to the session expiration page. But you may not always be able to keep the session alive when the user logs out from the application. In that case, use Workaround 2. Workaround 2 The other workaround is to delete the session cookie on the logout event. You can do so by using delete-cookies attribute of element. As you can see, we asked Spring to delete the cookie named “JSESSIONID” on the logout event. Because the browser will not send any session ID on the next request, Spring will direct the user to the login page, and thereby solve the problem. This approach may work for some containers but not for others. For instance, if you are using Apache Tomcat version 7, this workaround will not succeed. In this case, Spring won't remove the cookie in spite of the delete-cookies attribute value that is specified, because it can’t find the matched cookie path. When Tomcat sends the cookie to the browser, it appends the extra slash (“/”) to the end of the context path, e.g., path = “/foo/”. Tomcat has a good reason to do this because IE gets confused in sending cookies to the server for matching domains. For example, it will send the cookie meant for “/foo” to the domain “/foobar” as well. Please note that this behavior has been noted by other developers, but we have not personally verified this. To solve this problem, Tomcat appends a slash at the end of the context path. Now, when you set the delete-cookie attribute, Spring tries to find the cookie for the path without a slash at the end. Because it doesn’t find it, the cookie will not be removed, resulting in the display of session expiration page instead of login page. Luckily, Spring provides the flexibility to make custom changes in the default behavior. To solve the above problem, you need to write your own logout handler to remove the desired cookies. For that, we will need to use a “logout filter” instead of “” element (i.e. remove the entirely from the configuration file).
###Details >
 

Programmatically obtain a request-mapping URL for a module in Spring

Java-Design-and-Development
In this article, we will discuss how to programmatically obtain a request-mapping URL for a module in Spring. Java developers know that all versions of Spring from version 3.0 onward, allow the developer to manage handler mapping by defining it in the controller class using an @RequestMapping annotation as an alternative to the XML configuration file.In addition to this capability, developers can also annotate the controller class for top-level request-mapping URL. In that case, the class level URL will be prefixed to the method-level URL to form a complete URL and send a request to the controller.Normally, developers establish one controller per module. But, sometimes they need to obtain the class-level request-mapping URL programmatically. In this article, we will provide an example of this technique, and show you how it can be achieved in Spring. For our example, we'll use a module called 'Employee'. For this example, we'll need to display an employee’s personal details, in addition to other information, on the main employeeDetail page. We'll separate the main page into several small jsp pages. The file that will display the employee’s personal information is empPersonalDetails.jsp and that page must be included in the main page (employeeDetails.jsp), using action. Let’s assume that you have used apache tiles to provide consistent layout for each such sub-page (due to some requirement or just for decorative purpose) and you want to include that through a controller call. To accomplish that, you will use code similar to what we have detailed below:
###Details >
 

Java Will Perk Up Your Business and Customers Faster Than a Caffeine Fix!

Java
Every consumer and business employee uses the internet, and whether the task is related to product or service purchases, entertainment, or information sharing or collaboration, every internet user has seen the logo for Java on a site or in a window for a version upgrade.Java is an object–oriented programming language with a built–in application programming interface (API). The reason Java is so popular among developers and site designers is its rich set of APIs and, more importantly, its platform independence. Java can stand alone as a platform in and of itself and that is important in today’s open access world. Businesses and consumers do not want restrictive silo-based applications or sites that limit their independence, accessibility or mobility. Java provides a wide range of ready–to–use technologies and frameworks, and that foundation allows developers to build enterprise, internet, intranet and embedded applications, and provides and supports many tools and frameworks.
###Details >