Material sobre Java WEB super mão na massa. Vou construindo e alterando uma aplicação durante a apresentação os assuntos cobertos são:
Java Servlet
Java Server Pages - JSP
JavaServer Pages Standard Tag Library - JSTL
Expression Language - EL
Java Database Connectivity - JDBC
Data Access Object - DAO
Model View Controller - MVC
Hibernate
...
Apresento também formas de fugir do sqlinjection
14. U
.j
io
r
a
u
s
a
v
a
package br.com.mariojp;
!
versão 3.0
public class Usuario {
private Integer id;
private String login;
private String senha;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getLogin() {
return login;
}
public void setNome(String login) {
this.login = login;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
}
15. Autenticador.java
versão 3.0
@WebServlet("/Autenticador")
public class Autenticador extends HttpServlet {
!
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
Usuario user = new Usuario();
String login = request.getParameter("login");
String senha = request.getParameter("senha");
user.setLogin(login);
user.setSenha(senha);
if(autenticar(user)){
request.getSession().setAttribute("user", user);
response.sendRedirect("home.jsp");
}else{
request.setAttribute("erro", "Usuario ou Senha Invalidos!");
RequestDispatcher d= request.getRequestDispatcher("login.jsp");
d.forward(request,response);
}
}
private boolean autenticar(Usuario user) {...}
!
}
17. i
g
lo
p
js
.
n
versão 3.0
<!DOCTYPE html>
<html>
<head>
<title>Login</title>
</head>
<body>
<form method="post" action=“Autenticador">
Login: <input name="login" type="text"> <br>
Senha: <input name="senha" type="password"><br>
<input type="submit">
</form>
<%
String erro = (String) request.getAttribute(“erro”);
if(erro!=null && !erro.trim().equals("")){
out.print(erro);
}
%>
</body>
</html>
18. m
o
h
p
js
.
e
versão 3.0
<!DOCTYPE html>
<%@page import="br.com.mariojp.Usuario"%>
<html>
<head>
<title>HOME</title>
</head>
<body>
<% Usuario user = (Usuario) session.getAttribute("user");%>
Bem vindo, <%=user.getLogin() %>
</body>
</html>
19. Revisão Rapida
• Java Servlet
• Java Server Pages - JSP
• Model View Controller - MVC
43. package br.com.mariojp;
versão 6.0
!
import org.hibernate.Session;
!
public class UsuarioDAO {
!
public boolean autenticar(Usuario user) {
!
String query = "select u from Usuario as u where "
+ "u.login=:login and u.senha=:senha";
Session session = BancoUtil.getFactory().openSession();
session.beginTransaction();
Usuario usuario = (Usuario) session
.createQuery(query)
.setString("login", user.getLogin())
.setString("senha", user.getSenha()).uniqueResult();
session.getTransaction().commit();
session.close();
return usuario != null;
!
}
!
}
UsuarioDAO.java
44. versão 6.0
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration >
<session-factory>
<property
name="hibernate.connection.driver_class">org.hsqldb.jdbc.JDBCDriver</property>
<property name="hibernate.connection.url">jdbc:hsqldb:hsql://localhost/
banco</property>
<property name="hibernate.connection.username">SA</property>
<property name="hibernate.connection.password"></property>
<property name="hibernate.connection.pool_size">1</property>
<property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</
property>
<property name="hibernate.current_session_context_class">thread</property>
<property
name="hibernate.cache.provider_class">org.hibernate.cache.internal.NoCacheProv
ider</property>
<!-- Echo all executed SQL to stdout -->
<property name="hibernate.show_sql">true</property>
<!-- Drop and re-create the database schema on startup -->
<property name="hibernate.hbm2ddl.auto">create</property>
<mapping class="br.com.mariojp.Usuario"/>
</session-factory>
</hibernate-configuration>
hibernate.cfg.xml
45.
46. Esta obra está licenciada sob a licença Creative Commons
Atribuição-CompartilhaIgual 3.0 Não Adaptada. Para ver uma cópia
desta licença, visite http://creativecommons.org/licenses/by-sa/3.0/.
47. Java web
Mario Jorge Pereira
Como me encontrar?
http://www.mariojp.com.br
twitter.com/@mariojp
mariojp@gmail.com