package Servlet;
import Bean.User;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.sql.DataSource;
/**
*
* @author libralavender
*/
public class LoginServlet extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
// Connection Pool
Connection conn = null;
try{
InitialContext initialContext = new InitialContext();
Context ctx = (Context)initialContext.lookup("java:comp/env");
DataSource ds = (DataSource)ctx.lookup("mypool");
conn = ds.getConnection();
}catch(Exception e){
System.out.println();
}
String username = request.getParameter("username");
String password = request.getParameter("password");
int uid = 0;
// Set Session
HttpSession session = request.getSession();
User user = new User();
Statement st= null;
ResultSet rs= null;
Boolean valid = false;
try{
st = conn.createStatement();
String query = "select * from users where username ='"+username+"' and password = '"+password+"'";
rs = st.executeQuery(query);
//User user = new User();
if(rs.next()){
uid = rs.getInt(8);
user.setUid(uid);
user.setUsername(rs.getString(1));
user.setPosts(rs.getInt(5));
user.setFollowing(rs.getInt(5));
user.setFollower(rs.getInt(6));
user.setImg(rs.getString(7));
valid = true;
}
session.setAttribute("user", user);
/* search following */
query = "select followingid,username, img,article,articleid from follow,users,posts where follow.uid ="+uid+"and followingid = users.uid and followingid = posterid";
rs = st.executeQuery(query);
ArrayList<User> friendlist = new ArrayList<User>();
while(rs.next()){
User friend = new User();
friend.setUid(rs.getInt(1));
friend.setUsername(rs.getString(2));
friend.setImg(rs.getString(3));
friend.setArticle(rs.getString(4));
friend.setArticleid(rs.getInt(5));
friendlist.add(friend);
}
session.setAttribute("friendlist", friendlist);
rs.close();
st.close();
conn.close();
}catch(Exception e){
System.out.print("Cannot execute query");
}
if(valid){
RequestDispatcher view = request.getRequestDispatcher("main.jsp");
view.forward(request, response);
}else{
try {
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet LoginServlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet LoginServlet at"+valid+"</h1>");
out.println("</body>");
out.println("</html>");
} finally {
out.close();
}
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
Be the first to comment
You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.