Exemple JSP utile în dezvoltarea proiectului Medii de dezvoltare recomandate pentru p entru dezvoltare aplicatii Web: 1. Eclipse Juno pentru Java EE si aplicatii Web ( bazat pe server Tomcat) 2. NetBeans bazat pe serverul GlassFish
Exemplul 1: 1: JSP login Presupune crearea unei pagini JSP numite index.jsp si a unui servlet activat de butonul “submit” a formularului din pagina JSP, numit login.java, astfel: index.jsp <%@ page language=”java” contentType=”text/html; charset=UTF‐8” pageEncoding=”UTF‐8” %> <meta http‐equiv=”Content‐Type” content=”text/html; charset=UTF‐8”>
Exemplu Login Servletul Login.java are sursa: import java.io.IOException; public class Login extends HttpServlet{ private static final long serialVersionUID=1L; public Login(){super();} public void init(ServletConfig config) throws ServletException{ public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException { String username=”user”; String password=”root”; String un=request.getParameter(“username”); String pw=request.getParameter(“password”);
String msg=” ”; if(un.equals(username)&&pw.equals(password)){ msg=”Hello! ”+un+”Your login is successful”; } else{msg=” Hello! ”+un+”Your login is failed”;} response.setContentType(“text/html”); PrintWriter out=response.getWriter(); out.println(“
”+msg+””); } }
Detalii suplimentare la adresa: https://www.youtube.com/watch?v=5TEExh8w_VI ‐ Simple JSP login form De analizat in prezentarea de pe Youtube modul de lucru in Eclipse pentru dezvoltare de aplicaţii Web.
Pentru login ce permite acces la o baza de date cu inregistrare, un bun exemplu este: CREATE TABLE `members` ( `id` int(10) unsigned NOT NULL auto_increment, `first_name` varchar(45) NOT NULL, `last_name` varchar(45) NOT NULL, `email` varchar(45) NOT NULL, `uname` varchar(45) NOT NULL, `pass` varchar(45) NOT NULL, `regdate` date NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
index.jsp <%@page contentType="text/html" pageEncoding="UTF-8"%> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
JSP Example
reg.jsp <%@page contentType="text/html" pageEncoding="UTF-8"%> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Registration registration.jsp <%@ page import ="java.sql.*" %> <% String user = request.getParameter("uname"); String pwd = request.getParameter("pass"); String fname = request.getParameter("fname"); String lname = request.getParameter("lname"); String email = request.getParameter("email"); Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbname", "root", "dbpass");
Statement st = con.createStatement(); //ResultSet rs; int i = st.executeUpdate("insert into members(first_name, last_name, email, uname, pass, regdate) values ('" + fname + "','" + lname + "','" + email + "','" + user + "','" + pwd + "', CURDATE())"); if (i > 0) { //session.setAttribute("userid", user); response.sendRedirect("welcome.jsp"); // out.print("Registration Successfull!"+"
Go to Login"); } else { response.sendRedirect("index.jsp"); } %> welcome.jsp Registration is Successful. Please Login Here
Go to Login login.jsp <%@ page import ="java.sql.*" %> <% String userid = request.getParameter("uname"); String pwd = request.getParameter("pass"); Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbname", "root", "dbpass"); Statement st = con.createStatement(); ResultSet rs; rs = st.executeQuery("select * from members where uname='" + userid + "' and pass='" + pwd + "'"); if (rs.next()) { session.setAttribute("userid", userid); //out.println("welcome " + userid); //out.println("
Log out"); response.sendRedirect("success.jsp"); } else { out.println("Invalid password
try again"); } %>
success.jsp <% if ((session.getAttribute("userid") == null) || (session.getAttribute("userid") == "")) { %> You are not logged in
Please Login <%} else { %> Welcome <%=session.getAttribute("userid")%>
Log out <% } %>
logout.jsp <% session.setAttribute("userid", null); session.invalidate(); response.sendRedirect("index.jsp"); %>
Exemplul 2: Inserare articol în baza de date Baza de date – filmografie Tabel – actor Câmpurile tabelului actor: first_name, last‐name, last_update Pagina JSP incarcata in browser genereaza un formular, pentru care apasarea pe butonul “submit” determina autoapelarea sa, astfel: index.jsp <%@ page import=”java.sql.*” %> <%@ page import=”java.util.Date” %> <% Class.forName(“com.mysql.jdbc.Driver”); %> <%@ page contentType=”text/html” pageEncoding=”UTF‐8” %> <meta http‐equiv=”Content‐Type” content=”text/html; charset=UTF‐8”>
Inserare date in baza de date Inserare actori
<%! public class Actor{ String url=”jdbc:mysql://localhost:8080/filmografie”; String username=”root”; String password=””; Connection connection=null;
PreparedStatement insertActors=null; ResultSet resultSet=null; public Actor(){ try{ Connection=DriverManager.getConnection(url, username,password); insertActors=Connection.prepareStatement (“INSERT INTO actor(first_name, last_name, last_update)”+ “VALUES(?,?,?)”); }catch(SQLException e){e.printStackTrace();} } public int setActors(String first, String last, Timestamp timeStamp){ int result=0; try{ insertActors.setString(1,first); insertActors.setString(2,last); insertActors.setTimestamp(3,timeStamp); result=insertActors.executeUpdate();} return result;} catch(SQLException e){e.printStackTrace();} } } %> <% int result=0; if (request.getParameter(“submit”)!=null){ String firstName=new String(); String lastName=new String(); if (request.getParameter(“first”)!=null){firstName=request.getParameter(“first”);} if (request.getParameter(“last”)!=null){firstName=request.getParameter(“last”);} Date date=new Date(); Timestamp timestamp=new Timestamp(date.getTime()); Actor actor=new Actor(); Result=actor.setActors(firstName, lastName, timestamp); } %>
<SCRIPT LANGUAGE=”JavaScript”>
Detalii la adresa https://www.youtube.com/watch?v=8Cag7UnGo_I ‐ Creating A JSP Web Application That Inserts Data Into A Database. Pentru completarea ambelor exemple vor trebui generate manual sau automat (in mediul de dezvoltare) fisierele de configurare web.xml.