<DOCTYPE html> <html> <head> <meta CHARSET="UTF-8"> <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> </head> <body ng-app=""> Hello Angular </body> </html>
<DOCTYPE html> <html> <head> <meta CHARSET="UTF-8"> <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> </head> <body ng-app=""> Hello Angular </body> </html>
Step 1. Create resource directory
Step 2. Add tags in web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>*.htm</url-pattern> <url-pattern>*.css</url-pattern> <url-pattern>*.js</url-pattern> </servlet-mapping> <session-config> <session-timeout> 30 </session-timeout> </session-config> <welcome-file-list> <welcome-file>redirect.jsp</welcome-file> </welcome-file-list> </web-app>
Step 3. Configure dispatcher-servlet.xml
<?xml version='1.0' encoding='UTF-8' ?> <!-- was: <?xml version="1.0" encoding="UTF-8"?> --> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> <context:component-scan base-package="codeinsightacademy.com.blog.controller"/> <!--<mvc:resources mapping="/resources/**" location="/resources/" cache-period="10000" />--> <mvc:annotation-driven /> <mvc:resources mapping="/resources/**" location="/resources/red/"/> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" /> </beans>
Step 4. link or include in jsp page
<head> <meta charset="UTF-8"> <title>Welcome to Spring Web MVC project</title> <link href="<c:url value="/resources/css/default.css" />" rel="stylesheet"> <link href="<c:url value="/resources/js/default.css" />" rel="stylesheet"> </head>
<img width="100px" height="50px" src="<c:url value="/resources/images/logo.gif"/>"/>
Bean Factory
Application Context
Bean Factory
BeanFactory beanFactory = new DefaultListableBeanFactory(); XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader((BeanDefinitionRegistry) beanFactory); reader.loadBeanDefinitions(new ClassPathResource("spring.xml")); ComponentClass cc = (ComponentClass) beanFactory.getBean("compclass");
<bean id="compclass" class="com.classes.ComponentClass" />
Application Context
ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml"); ComponentClass cc = (ComponentClass) context.getBean("compclass");
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" p:location="myproperties.properties" /> <bean id="compclass" class="com.classes.ComponentClass" p:age="${myp.age}" />
<bean id="compclass" class="com.classes.ComponentClass"> <property name="age" value="30"/> </bean>
Ref:
ArrayList list = new ArrayList(); list.add("h"); list.add("e"); list.add("l"); list.add("l"); list.add("o"); for (int i = 1; i < 10; i++) { list.add(i); } Iterator it = list.iterator(); while (it.hasNext()) { out.println(it.next() + "<br/>"); } HashSet hs = new HashSet(); hs.add("A"); hs.add("B"); hs.add("C"); hs.add("C"); hs.add("C"); HashMap hm = new HashMap(); hm.put("a", "A"); hm.put("b", "B"); Iterator its = hs.iterator(); while (its.hasNext()) { out.println(its.next() + "<br/>"); } Iterator itr = hm.entrySet().iterator(); while (itr.hasNext()) { Map.Entry pair = (Map.Entry) itr.next(); out.println(pair.getKey() + " => " + pair.getValue() + "<br/>"); } String[] strarr = new String[10]; for (int i = 0; i < 10; i++) { strarr[i] = "abc" + i; } for (String valu : strarr) { out.println(valu); }
Ref:
List of Files
header.jsp
<a href="login.jsp">Login</a> <a href="home.jsp">Home</a> <a href="logout.jsp">Logout</a>
login.jsp
<% HttpSession sess = request.getSession(); if (sess.getAttribute("sess_username") != null) { // check is session variable exist in session pool or not response.sendRedirect("home.jsp"); // if session variable is already set then redirect it to home page else stay on login page } %> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <%@include file="header.jsp" %> <h1>Login</h1> <form action="home.jsp" method="post"> Username <input type="text" name="username"/><br/> Password <input type="password" name="password"/><br/> <input type="submit" value="Login"/> </form> </body> </html>
home.jsp
<% HttpSession sess = request.getSession(); //get the session object from getSession() method of request object if (sess.getAttribute("sess_username") == null) { // check whether the session variable is exist in session pool or not sess.setAttribute("sess_username", request.getParameter("username")); // create session variable if it is not present in session pool } %> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <%@include file="header.jsp" %> <h1>Home</h1> <h2>Hello <%=sess.getAttribute("sess_username")%> </h2> </body> </html>
logout.jsp
<% HttpSession sess = request.getSession(); sess.invalidate(); // this will terminate the session and destroy all variables stored in session pool %> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <%@include file="header.jsp" %> <h1>Logout</h1> </body> </html>
Display Session variables from pool
Console o/p:
Enumeration attributeNames = sess.getAttributeNames(); while (attributeNames.hasMoreElements()) { String name = (String) attributeNames.nextElement(); String value = (String) sess.getAttribute(name); out.println(name + "=" + value); }
JSTL(Java Server Pages Standard Tag Library) o/p:
<c:forEach var="session" items="${sessionScope}"> ${session.key} = ${session.value} </c:forEach>
The problem is that your REGX pattern will only match the input “0-9”.
To meet your requirement (0-9999999), you should rewrite your regx pattern:
ng-pattern="/^[0-9]{1,7}$/"
HTML:
<div ng-app ng-controller="formCtrl"> <form name="myForm" ng-submit="onSubmit()"> <input type="number" ng-model="price" name="price_field" ng-pattern="/^[0-9]{1,7}$/" required> <span ng-show="myForm.price_field.$error.pattern">Not a valid number!</span> <span ng-show="myForm.price_field.$error.required">This field is required!</span> <input type="submit" value="submit"/> </form> </div>
JS:
function formCtrl($scope){ $scope.onSubmit = function(){ alert("form submitted"); } }
MySQL Connection Jars
http://www.java2s.com/Code/Jar/c/Downloadcommysqljdbc515jar.htm
http://www.java2s.com/Code/Jar/m/Downloadmysqlconnectorjava5123binjar.htm
Bcrypt Password Jars
http://www.java2s.com/Code/Jar/s/Downloadspringsecuritycrypto310RELEASEjar.htm
@RequestMapping(value = "/change_status", method = RequestMethod.POST) public @ResponseBody String editStationaryOrder (@RequestParam("status_value") String status_value ) { // perform operations return "string value"; }
Lets break it into some parts
String s1 = “hello”;
This Statement creates string containing hello and occupy space in memory i.e. in Constant String Pool and and assigned it to reference object s1
String s2 = s1;
This statement assigns the same string hello to new reference s2
_______ | | s1 ---->| hello |<----- s2 |_______|
Both references are pointing to the same string so output the same value as follows.
out.println(s1); // o/p: hello
out.println(s2); // o/p: hello
Though String is immutable, assignment can be possible so the s1 will now refer to new value stack.
s1 = “stack”;
_________ | | s1 ---->| stack | |_________|
But what about s2 object which is pointing to hello it will be as it is.
__________ | | s2 ---->| hello | |__________|
out.println(s1); // o/p: stack
out.println(s2); // o/p: hello
Since String is immutable Java Virtual Machine won’t allow us to modify string s1 by its method. It will create all new String object in pool as follows.
s1.concat(” overflow”);
___________________ | | s1.concat ----> | stack overflow | |___________________|
out.println(s1); // o/p: stack
out.println(s2); // o/p: hello
out.println(s1.concat); // o/p: stack overflow
Note if String would be mutable then the output would have been
out.println(s1); // o/p: stack overflow
Now you might be surprised why String has such methods like concat() to modify. Following snippet will clear your confusion.
s1 = s1.concat(” overflow”);
Here we are assigning modified value of string back to s1 reference.
___________________ | | s1 ---->| stack overflow | |___________________|
out.println(s1); // o/p: stack overflow
out.println(s2); // o/p: hello
That’s why Java decided String to be a final class Otherwise anyone can modify and change the value of string. Hope this will help little bit.