Added servlets and pdf files

parents
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/Java SE 8 [1.8.0_144]">
<attributes>
<attribute name="owner.project.facets" value="java"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v9.0">
<attributes>
<attribute name="owner.project.facets" value="jst.web"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry kind="lib" path="/Users/Sriram/Database_Project/jars/json-20180813.jar"/>
<classpathentry kind="lib" path="/Users/Sriram/Database_Project/jars/ecj-4.7.3a.jar"/>
<classpathentry kind="lib" path="/Users/Sriram/Database_Project/jars/el-api.jar"/>
<classpathentry kind="lib" path="/Users/Sriram/Database_Project/jars/jackson-annotations-2.9.0.jar"/>
<classpathentry kind="lib" path="/Users/Sriram/Database_Project/jars/jackson-core-2.9.6.jar"/>
<classpathentry kind="lib" path="/Users/Sriram/Database_Project/jars/jackson-databind-2.9.6.jar"/>
<classpathentry kind="lib" path="/Users/Sriram/Database_Project/jars/jasper-el.jar"/>
<classpathentry kind="lib" path="/Users/Sriram/Database_Project/jars/jasper.jar"/>
<classpathentry kind="lib" path="/Users/Sriram/Database_Project/jars/jaspic-api.jar"/>
<classpathentry kind="lib" path="/Users/Sriram/Database_Project/jars/jsoup-1.11.3.jar"/>
<classpathentry kind="lib" path="/Users/Sriram/Database_Project/jars/jsp-api.jar"/>
<classpathentry kind="lib" path="/Users/Sriram/Database_Project/jars/postgresql-42.2.4.jar"/>
<classpathentry kind="lib" path="/Users/Sriram/Database_Project/jars/servlet-api.jar"/>
<classpathentry kind="lib" path="/Users/Sriram/Database_Project/jars/tomcat-api.jar"/>
<classpathentry kind="lib" path="/Users/Sriram/Database_Project/jars/tomcat-coyote.jar"/>
<classpathentry kind="lib" path="/Users/Sriram/Database_Project/jars/tomcat-dbcp.jar"/>
<classpathentry kind="lib" path="/Users/Sriram/Database_Project/jars/tomcat-i18n-es.jar"/>
<classpathentry kind="lib" path="/Users/Sriram/Database_Project/jars/tomcat-i18n-fr.jar"/>
<classpathentry kind="lib" path="/Users/Sriram/Database_Project/jars/tomcat-i18n-ja.jar"/>
<classpathentry kind="lib" path="/Users/Sriram/Database_Project/jars/tomcat-jdbc.jar"/>
<classpathentry kind="lib" path="/Users/Sriram/Database_Project/jars/tomcat-jni.jar"/>
<classpathentry kind="lib" path="/Users/Sriram/Database_Project/jars/tomcat-util-scan.jar"/>
<classpathentry kind="lib" path="/Users/Sriram/Database_Project/jars/tomcat-util.jar"/>
<classpathentry kind="lib" path="/Users/Sriram/Database_Project/jars/tomcat-websocket.jar"/>
<classpathentry kind="lib" path="/Users/Sriram/Database_Project/jars/websocket-api.jar"/>
<classpathentry kind="lib" path="/Users/Sriram/Database_Project/jars/annotations-api.jar"/>
<classpathentry kind="lib" path="/Users/Sriram/Database_Project/jars/catalina-ant.jar"/>
<classpathentry kind="lib" path="/Users/Sriram/Database_Project/jars/catalina-ha.jar"/>
<classpathentry kind="lib" path="/Users/Sriram/Database_Project/jars/catalina-storeconfig.jar"/>
<classpathentry kind="lib" path="/Users/Sriram/Database_Project/jars/catalina-tribes.jar"/>
<classpathentry kind="lib" path="/Users/Sriram/Database_Project/jars/catalina.jar"/>
<classpathentry kind="lib" path="/Users/Sriram/Database_Project/jars/commons-fileupload-1.3.3.jar"/>
<classpathentry kind="lib" path="/Users/Sriram/Database_Project/jars/commons-io-2.6.jar"/>
<classpathentry kind="output" path="build/classes"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>Note_Sharing_server</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.validation.validationbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
</natures>
</projectDescription>
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry excluding="**/bower_components/*|**/node_modules/*|**/*.min.js" kind="src" path="WebContent"/>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
<attributes>
<attribute name="hide" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
<classpathentry kind="output" path=""/>
</classpath>
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.8
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="Note_Sharing_server">
<wb-resource deploy-path="/" source-path="/WebContent" tag="defaultRootSource"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
<property name="context-root" value="Note_Sharing_server"/>
<property name="java-output-path" value="/Note_Sharing_server/build/classes"/>
</wb-module>
</project-modules>
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<runtime name="Apache Tomcat v9.0"/>
<fixed facet="jst.web"/>
<fixed facet="wst.jsdt.web"/>
<fixed facet="java"/>
<installed facet="java" version="1.8"/>
<installed facet="jst.web" version="4.0"/>
<installed facet="wst.jsdt.web" version="1.0"/>
</faceted-project>
org.eclipse.wst.jsdt.launching.baseBrowserLibrary
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<body>
<form method="POST" action='FileUploadServlet_Ashutosh' enctype="multipart/form-data">
<input type="text" name="user"><br>
<input type="file" name="upload"><br>
<input type="submit">
</form>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="LoginServlet" method="post">
Username: <input type="text" name="user_id"><br>
Password: <input type="password" name="password"><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
\ No newline at end of file
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* Servlet implementation class AddToFavourites
*/
@WebServlet("/AddToFavourites")
public class AddToFavourites extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public AddToFavourites() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
if(session.getAttribute("id") == null) { //not logged in
response.getWriter().print(DbHelper.errorJson("Not logged in").toString());
return;
}
String userid = request.getParameter("user_id");
String fid = request.getParameter("fid");
String exist = "select * from favourites where user_id = ? and fid = ?";
List<List<Object>> exi = DbHelper.executeQueryList(exist,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING},
new Object[] {userid,fid});
if(!exi.isEmpty())
{
response.getWriter().
print(DbHelper.errorJson("This file is already included in favourites").toString());
return;
}
String query = "insert into favourites "
+ " values (?,?)";
String js = DbHelper.executeUpdateJson(query,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING},
new Object[] {userid});
response.getWriter().printf(js);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
/**
* Servlet implementation class AutoCompleteDiscipline
*/
@WebServlet("/AutoCompleteDiscipline")
public class AutoCompleteDiscipline extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public AutoCompleteDiscipline() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession();
if(session.getAttribute("id") == null) { //not logged in
response.getWriter().print(DbHelper.errorJson("Not logged in").toString());
return;
}
String substr = request.getParameter("discipline");
String query = "select distinct discipline as label, discipline as value from subj_disc where (discipline like ?)";
String json = DbHelper.executeQueryJson(query, new DbHelper.ParamType[] { DbHelper.ParamType.STRING},
new String[] { "%"+substr + "%",});
ObjectMapper objectMapper = new ObjectMapper();
Object jsondata = objectMapper.readValue(json, ObjectNode.class);
response.getWriter().print(((ObjectNode) jsondata).get("data"));
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
/**
* Servlet implementation class AutoCompleteInstitute
*/
@WebServlet("/AutoCompleteInstitute")
public class AutoCompleteInstitute extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public AutoCompleteInstitute() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession();
if(session.getAttribute("id") == null) { //not logged in
response.getWriter().print(DbHelper.errorJson("Not logged in").toString());
return;
}
String substr = request.getParameter("institute");
String query = "select institute as label, institute as value from institutes where (institute like ?)";
String json = DbHelper.executeQueryJson(query, new DbHelper.ParamType[] { DbHelper.ParamType.STRING},
new String[] { "%"+substr + "%",});
ObjectMapper objectMapper = new ObjectMapper();
Object jsondata = objectMapper.readValue(json, ObjectNode.class);
response.getWriter().print(((ObjectNode) jsondata).get("data"));
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
/**
* Servlet implementation class AutoCompleteDiscipline
*/
@WebServlet("/AutoCompleteSubject")
public class AutoCompleteSubject extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public AutoCompleteSubject() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession();
if(session.getAttribute("id") == null) { //not logged in
response.getWriter().print(DbHelper.errorJson("Not logged in").toString());
return;
}
String disc = request.getParameter("discipline");
String subj = request.getParameter("subject");
String query = "select subject as label, subject as value from subj_disc where discipline = ? and (subject like ?)";
String json = DbHelper.executeQueryJson(query, new DbHelper.ParamType[] {DbHelper.ParamType.STRING, DbHelper.ParamType.STRING},
new String[] { disc ,"%"+subj + "%"});
ObjectMapper objectMapper = new ObjectMapper();
Object jsondata = objectMapper.readValue(json, ObjectNode.class);
response.getWriter().print(((ObjectNode) jsondata).get("data"));
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
/**
* Servlet implementation class AutoCompleteTag
*/
@WebServlet("/AutoCompleteTag")
public class AutoCompleteTag extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public AutoCompleteTag() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession();
if(session.getAttribute("id") == null) { //not logged in
response.getWriter().print(DbHelper.errorJson("Not logged in").toString());
return;
}
String substr = request.getParameter("tag").trim();
String query = "select tag as label, tag as value from tags where (UPPER(tag) like ?)";
String json = DbHelper.executeQueryJson(query, new DbHelper.ParamType[] { DbHelper.ParamType.STRING},
new String[] { "%"+substr.toUpperCase() + "%",});
ObjectMapper objectMapper = new ObjectMapper();
Object jsondata = objectMapper.readValue(json, ObjectNode.class);
response.getWriter().print(((ObjectNode) jsondata).get("data"));
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
public class Config {
public static final String url = "jdbc:postgresql://localhost:7120/postgres";
public static final String user = "Sriram";
public static final String password = "";
}
\ No newline at end of file
import java.io.IOException;
import java.util.List;
import java.util.Random;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* Servlet implementation class CreateNewUser
*/
@WebServlet("/CreateNewUser")
public class CreateNewUser extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public CreateNewUser() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
/*
HttpSession session = request.getSession();
if(session.getAttribute("id") == null) { //not logged in
response.getWriter().print(DbHelper.errorJson("Not logged in").toString());
return;
}
*/
HttpSession session = request.getSession();
String name = request.getParameter("name");
String emailid = request.getParameter("email_id");
int reputation = 0;
String userid = request.getParameter("user_id");
String password = request.getParameter("password");
String CHARS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
Random ran = new Random();
String salt = "";
while(salt.length()<20)
{
int ind = (int)(ran.nextFloat()*CHARS.length());
salt = salt + CHARS.charAt(ind);
}
String pconcat = password + salt;
int hash = pconcat.hashCode();
String exist = "select * from users_info where user_id = ?";
List<List<Object>> exi = DbHelper.executeQueryList(exist,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING},
new Object[] {userid});
if(!exi.isEmpty())
{
System.out.println("Userid exists");
response.getWriter().
print(DbHelper.errorJson("User ID already exists.").toString());
return;
}
String query = "insert into users_info values (?,?,?,?,?,?)";
String res = DbHelper.executeUpdateJson(query,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING,
DbHelper.ParamType.INT,
DbHelper.ParamType.STRING,
DbHelper.ParamType.INT},
new Object[] {userid,name,emailid,reputation,salt,hash});//initialise reputation to 0
session.setAttribute("id", userid );
response.getWriter().printf(res);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
public class DbHelper {
public static final String DATA_LABEL = "data";
public static final String MSG_LABEL = "message";
public static final String STATUS_LABEL = "status";
public static ObjectMapper mapper = new ObjectMapper();
protected static enum ParamType{
STRING,
INT,
TIMESTAMP
}
protected static int toint(BigDecimal bd)
{
return bd.intValue();
}
protected static int toint(Object bd)
{
return ((BigDecimal)bd).intValue();
}
protected static int toint(int bd)
{
return bd;
}
/**
* Execute a query and return results as a list of lists
*/
protected static List<List<Object>> executeQueryList(String query, ParamType[] paramTypes, Object[] params) {
ResultSet rs = null;
List<List<Object>> res = new ArrayList<>();
try (Connection conn = DriverManager.getConnection(Config.url, Config.user, Config.password))
{
conn.setAutoCommit(false);
try(PreparedStatement stmt = conn.prepareStatement(query)) {
setParams(stmt, paramTypes, params);
rs = stmt.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
while(rs.next()) {
List<Object> row = new ArrayList<>();
for(int i=1;i<=rsmd.getColumnCount();i++) {
row.add(rs.getObject(i));
}
res.add(row);
}
conn.commit();
}
catch(Exception ex)
{
conn.rollback();
throw ex;
}
finally{
conn.setAutoCommit(true);
}
} catch (Exception e) {
e.printStackTrace();
}
return res;
}
/**
* Executes query and returns results as JSON,
* returns null on any error.
*/
protected static String executeQueryJson(String query, ParamType[] paramTypes, Object[] params) {
ArrayNode json = null;
try (Connection conn = DriverManager.getConnection(Config.url, Config.user, Config.password))
{
conn.setAutoCommit(false);
try(PreparedStatement stmt = conn.prepareStatement(query)) {
setParams(stmt, paramTypes, params);
ResultSet rs = stmt.executeQuery();
json = resultSetToJson(rs);
conn.commit();
}
catch(Exception ex)
{
conn.rollback();
throw ex;
}
finally{
conn.setAutoCommit(true);
}
} catch (Exception e) {
return errorJson(e.getMessage()).toString();
}
ObjectNode node = mapper.createObjectNode();
node.putArray(DATA_LABEL).addAll(json);
node.put(STATUS_LABEL, true);
return node.toString();
}
/**
* Returns number of records updated in JSON format
* { "value" : <number of records updated> }
*/
protected static String executeUpdateJson(String updateQuery, ParamType[] paramTypes, Object[] params) {
int recordsUpdated = 0;
try (Connection conn = DriverManager.getConnection(Config.url, Config.user, Config.password))
{
conn.setAutoCommit(false);
try(PreparedStatement stmt = conn.prepareStatement(updateQuery)) {
setParams(stmt, paramTypes, params);
recordsUpdated = stmt.executeUpdate();
conn.commit();
}
catch(Exception ex)
{
conn.rollback();
throw ex;
}
finally{
conn.setAutoCommit(true);
}
} catch (Exception e) {
return errorJson(e.getMessage()).toString();
}
boolean status = recordsUpdated == 0 ? false : true;
ObjectNode node = mapper.createObjectNode();
node.put(STATUS_LABEL, status);
return node.toString();
}
private static void setParams(PreparedStatement stmt,
ParamType[] paramTypes,
Object[] params) throws SQLException {
List<ParamType> paramTypesList = Arrays.asList(paramTypes);
List<Object> paramsList = Arrays.asList(params);
for(int i=0;i<paramsList.size();i++) {
ParamType type = paramTypesList.get(i);
Object param = paramsList.get(i);
if(type.equals(ParamType.STRING)) {
stmt.setString(i+1, (String)param);
}
else if(type.equals(ParamType.INT)) {
stmt.setInt(i+1, (Integer)param);
}
else if(type.equals(ParamType.TIMESTAMP))
{
java.sql.Timestamp ts1 = java.sql.Timestamp.valueOf((String)param);
stmt.setTimestamp( i + 1, ts1);
}
}
}
/**
* Returns the results as a JSON array object.
* Use toString() on the result to get JSON string.
*/
public static ArrayNode resultSetToJson(ResultSet rs) throws SQLException {
ArrayNode arr = mapper.createArrayNode();
ResultSetMetaData rsmd = rs.getMetaData();
while(rs.next()) {
int numColumns = rsmd.getColumnCount();
ObjectNode obj = mapper.createObjectNode();
for (int i=1; i<numColumns+1; i++) {
String column_name = rsmd.getColumnName(i);
if(rs.getObject(column_name) == null) {
obj.putNull(column_name);
continue;
}
if(rsmd.getColumnType(i)==java.sql.Types.BIGINT){
obj.put(column_name, rs.getInt(column_name));
}
else if(rsmd.getColumnType(i)==java.sql.Types.BOOLEAN){
obj.put(column_name, rs.getBoolean(column_name));
}
else if(rsmd.getColumnType(i)==java.sql.Types.DOUBLE){
obj.put(column_name, rs.getDouble(column_name));
}
else if(rsmd.getColumnType(i)==java.sql.Types.FLOAT){
obj.put(column_name, rs.getFloat(column_name));
}
else if(rsmd.getColumnType(i)==java.sql.Types.INTEGER){
obj.put(column_name, rs.getInt(column_name));
}
else if(rsmd.getColumnType(i)==java.sql.Types.NVARCHAR){
obj.put(column_name, rs.getNString(column_name));
}
else if(rsmd.getColumnType(i)==java.sql.Types.VARCHAR){
obj.put(column_name, rs.getString(column_name));
}
else if(rsmd.getColumnType(i)==java.sql.Types.TINYINT){
obj.put(column_name, rs.getInt(column_name));
}
else if(rsmd.getColumnType(i)==java.sql.Types.SMALLINT){
obj.put(column_name, rs.getInt(column_name));
}
else if(rsmd.getColumnType(i)==java.sql.Types.DATE){
obj.put(column_name, rs.getDate(column_name).toString());
}
else if(rsmd.getColumnType(i)==java.sql.Types.TIMESTAMP){
obj.put(column_name, rs.getTimestamp(column_name).toString());
}
else{
obj.put(column_name, rs.getObject(column_name).toString());
}
}
arr.add(obj);
}
return arr;
}
public static ObjectNode errorJson(String errorMsg) {
ObjectNode node = mapper.createObjectNode();
node.put(STATUS_LABEL, false);
node.put(MSG_LABEL, errorMsg);
return node;
}
public static ObjectNode okJson() {
ObjectNode node = mapper.createObjectNode();
node.put(STATUS_LABEL, true);
return node;
}
/**
* main() method for testing the functionality
* of other methods defined in DbHelper.
*/
public static void main(String[] args) throws SQLException {
String json = DbHelper.executeQueryJson("select * from student",
new DbHelper.ParamType[] {},
new Object[] {});
if(json != null) {
System.out.println(json);
}
}
}
\ No newline at end of file
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* Servlet implementation class DownloadServlet
*/
@WebServlet("/DownloadServlet")
public class DownloadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public DownloadServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
if(session.getAttribute("id") == null) { //not logged in
response.getWriter().print(DbHelper.errorJson("Not logged in").toString());
return;
}
String userid = (String)session.getAttribute("id");
String fid = (String)request.getParameter("fid");
String qfile="select filename,extension,folder from files where fid = ?";
List<List<Object>> saltjs = DbHelper.executeQueryList(qfile,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING},
new Object[] {fid});
String fname = saltjs.isEmpty()?null:(String)saltjs.get(0).get(0);
String extension = saltjs.isEmpty()?null:(String)saltjs.get(0).get(1);
int fold = saltjs.isEmpty()?-1:Integer.valueOf(DbHelper.toint(saltjs.get(0).get(2)));
if(fname != null && fold!=-1)
{
// response.getWriter().print(DbHelper.okJson().toString());
}
else {
response.getWriter().print(DbHelper.errorJson("File not found").toString());
return;
}
String ff = Character.toString((char)(48+fold));
String folder = File.separator+ff;
String fileName = fname;
if(fileName == null || fileName.equals("")){
throw new ServletException("File Name can't be null or empty");
}
File file=null;
if(extension!=null)
{
file = new File(request.getServletContext().getAttribute("FILES_DIR")+folder+File.separator+fid+"."+extension);
}
else
{
file = new File(request.getServletContext().getAttribute("FILES_DIR")+folder+File.separator+fid);
}
System.out.println(file.getAbsolutePath());
if(!file.exists()){
throw new ServletException("File doesn't exists on server.");
}
System.out.println("File location on server::"+file.getAbsolutePath());
ServletContext ctx = getServletContext();
InputStream fis = new FileInputStream(file);
String mimeType = ctx.getMimeType(file.getAbsolutePath());
response.setContentType(mimeType != null? mimeType:"application/octet-stream");
response.setContentLength((int) file.length());
response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
ServletOutputStream os = response.getOutputStream();
byte[] bufferData = new byte[1024];
int read=0;
while((read = fis.read(bufferData))!= -1){
os.write(bufferData, 0, read);
}
os.flush();
os.close();
fis.close();
String history_query = "insert into history values (?,?,CURRENT_TIMESTAMP)";
System.out.println(userid +" " + fid);
String res = DbHelper.executeUpdateJson(history_query,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING
},
new Object[] {userid,fid});
String view_query = "update files set views = views + 1 where fid = ?";
String res2 = DbHelper.executeUpdateJson(view_query,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING
},
new Object[] {fid});
System.out.println("File downloaded at client successfully");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
/**
* Servlet implementation class Explore_Subj_Disc
*/
@WebServlet("/ExploreServlet")
public class ExploreServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public ExploreServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
if(session.getAttribute("id") == null) { //not logged in
response.getWriter().print(DbHelper.errorJson("Not logged in").toString());
return;
}
String query="select discipline, STRING_AGG(subject, ',') subject from subj_disc group by discipline"
+ " order by discipline,subject";
String json = DbHelper.executeQueryJson(query, new DbHelper.ParamType[] {},
new String[] {});
// ObjectMapper objectMapper = new ObjectMapper();
// Object jsondata = objectMapper.readValue(json, ObjectNode.class);
// response.getWriter().print(((ObjectNode) jsondata).get("data"));
response.getWriter().printf(json);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
import java.io.File;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
/**
* Application Lifecycle Listener implementation class FileLocationContextListener
*
*/
@WebListener
public class FileLocationContextListener implements ServletContextListener {
/**
* Default constructor.
*/
public FileLocationContextListener() {
// TODO Auto-generated constructor stub
}
/**
* @see ServletContextListener#contextDestroyed(ServletContextEvent)
*/
public void contextDestroyed(ServletContextEvent sce) {
// TODO Auto-generated method stub
}
/**
* @see ServletContextListener#contextInitialized(ServletContextEvent)
*/
public void contextInitialized(ServletContextEvent servletContextEvent) {
// TODO Auto-generated method stub
String rootPath = "/Users/Sriram/eclipse-workspace/Note_sharing/WebContent/";//"user.dir"
// String rootPath="/home/ashutosh/WebContent/";
ServletContext ctx = servletContextEvent.getServletContext();
File file = new File(rootPath);
char ind='0';
for(int i=0;i<10;++i)
{
File file1 = new File(rootPath+ind+"/");
if(!file1.exists()) file1.mkdirs();
ind++;
}
System.out.println("File Directory created to be used for storing files");
ctx.setAttribute("FILES_DIR_FILE", file);
ctx.setAttribute("FILES_DIR", rootPath);
}
}
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
/**
* Servlet implementation class FileUploadServlet
*/
@WebServlet("/FileUploadServlet")
public class FileUploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public FileUploadServlet() {
super();
// TODO Auto-generated constructor stub
}
private ServletFileUpload uploader = null;
@Override
public void init() throws ServletException{
DiskFileItemFactory fileFactory = new DiskFileItemFactory();
File filesDir = (File) getServletContext().getAttribute("FILES_DIR_FILE");
fileFactory.setRepository(filesDir);
this.uploader = new ServletFileUpload(fileFactory);
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String fileName = request.getParameter("fileName");
if(fileName == null || fileName.equals("")){
throw new ServletException("File Name can't be null or empty");
}
File file = new File(request.getServletContext().getAttribute("FILES_DIR")+File.separator+fileName);
if(!file.exists()){
throw new ServletException("File doesn't exists on server.");
}
System.out.println("File location on server::"+file.getAbsolutePath());
ServletContext ctx = getServletContext();
InputStream fis = new FileInputStream(file);
String mimeType = ctx.getMimeType(file.getAbsolutePath());
response.setContentType(mimeType != null? mimeType:"application/octet-stream");
response.setContentLength((int) file.length());
response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
ServletOutputStream os = response.getOutputStream();
byte[] bufferData = new byte[1024];
int read=0;
while((read = fis.read(bufferData))!= -1){
os.write(bufferData, 0, read);
}
os.flush();
os.close();
fis.close();
System.out.println("File downloaded at client successfully");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if(!ServletFileUpload.isMultipartContent(request)){
throw new ServletException("Content type is not multipart/form-data");
}
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.write("<html><head></head><body>");
try {
List<FileItem> fileItemsList = uploader.parseRequest(request);
Iterator<FileItem> fileItemsIterator = fileItemsList.iterator();
while(fileItemsIterator.hasNext()){
FileItem fileItem = fileItemsIterator.next();
if(!fileItem.getFieldName().equals("upload"))
{
continue;
}
System.out.println("FieldName="+fileItem.getFieldName());
System.out.println("FileName="+fileItem.getName());
System.out.println("ContentType="+fileItem.getContentType());
System.out.println("Size in bytes="+fileItem.getSize());
File file = new File(request.getServletContext().getAttribute("FILES_DIR")+File.separator+fileItem.getName());
System.out.println("Absolute Path at server="+file.getAbsolutePath());
fileItem.write(file);
out.write("File "+fileItem.getName()+ " uploaded successfully.");
out.write("<br>");
out.write("<a href=\"FileUploadServlet?fileName="+fileItem.getName()+"\">Download "+fileItem.getName()+"</a>");
}
} catch (FileUploadException e) {
out.write("Exception in uploading file.");
} catch (Exception e) {
out.write("Exception in uploading file.");
}
out.write("</body></html>");
}
}
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.time.Year;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Random;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.swing.plaf.metal.MetalIconFactory.FolderIcon16;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
/**
* Servlet implementation class FileUploadServlet
*/
@WebServlet("/FileUploadServlet_Ashutosh")
public class FileUploadServlet_Ashutosh extends HttpServlet {
private static final long serialVersionUID = 1L;
private static String fid=null;
private static String extension=null;
private static String folder = null;
/**
* @see HttpServlet#HttpServlet()
*/
public FileUploadServlet_Ashutosh() {
super();
// TODO Auto-generated constructor stub
}
private ServletFileUpload uploader = null;
@Override
public void init() throws ServletException{
DiskFileItemFactory fileFactory = new DiskFileItemFactory();
File filesDir = (File) getServletContext().getAttribute("FILES_DIR_FILE");
fileFactory.setRepository(filesDir);
this.uploader = new ServletFileUpload(fileFactory);
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String fileName = request.getParameter("fileName");
if(fileName == null || fileName.equals("")){
throw new ServletException("File Name can't be null or empty");
}
File file = new File(request.getServletContext().getAttribute("FILES_DIR")+folder+File.separator+fid+"."+extension);
if(!file.exists()){
throw new ServletException("File doesn't exists on server.");
}
System.out.println("File location on server::"+file.getAbsolutePath());
ServletContext ctx = getServletContext();
InputStream fis = new FileInputStream(file);
String mimeType = ctx.getMimeType(file.getAbsolutePath());
response.setContentType(mimeType != null? mimeType:"application/octet-stream");
response.setContentLength((int) file.length());
response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
ServletOutputStream os = response.getOutputStream();
byte[] bufferData = new byte[1024];
int read=0;
while((read = fis.read(bufferData))!= -1){
os.write(bufferData, 0, read);
}
os.flush();
os.close();
fis.close();
System.out.println("File downloaded at client successfully");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("Passed 1");
if(!ServletFileUpload.isMultipartContent(request)){
throw new ServletException("Content type is not multipart/form-data");
}
HttpSession session = request.getSession();
System.out.println(session.getAttribute("id"));
if(session.getAttribute("id") == null) { //not logged in
response.getWriter().print(DbHelper.errorJson("Not logged in").toString());
return;
}
response.setContentType("text/html");
System.out.println("Passed 2");
PrintWriter out = response.getWriter();
out.write("<html><head></head><body>");
try {
List<FileItem> fileItemsList = uploader.parseRequest(request);
System.out.println("Passed 3.25");
Map<String, String> parameters = new HashMap<>();
Iterator<FileItem> fileItemsIterator = fileItemsList.iterator();
System.out.println(fileItemsList.size());
while(fileItemsIterator.hasNext()){
FileItem fileItem = fileItemsIterator.next();
System.out.println(fileItem.getFieldName());
if(!fileItem.getFieldName().equals("upload"))
{
parameters.put(fileItem.getFieldName(), fileItem.getString());
continue;
}
String institute=parameters.get("institute");
String userid = (String)session.getAttribute("id");
String query1 = "select institute from institutes where institute = ?";
List<List<Object>> instjs = DbHelper.executeQueryList(query1,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING},
new Object[] {institute});
String inst = instjs.isEmpty()?null:(String)instjs.get(0).get(0);
if(inst==null)
{
String query = "select reputation from users_info where user_id = ?";
List<List<Object>> repjs = DbHelper.executeQueryList(query,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING},
new Object[] {userid});
int rep = repjs.isEmpty()?-1:Integer.valueOf(DbHelper.toint(repjs.get(0).get(0)));
if(rep>=7)
{
String add_inst = "insert into institutes values (?)";
String updjs = DbHelper.executeUpdateJson(add_inst,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING},
new Object[] {institute});
}
else
{
response.getWriter().print
(DbHelper.errorJson("Not enough reputation to add institute").toString());
return;
}
}
while(true)
{
String CHARS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
Random ran = new Random();
fid = "";
while(fid.length()<15)
{
int ind = (int)(ran.nextFloat()*CHARS.length());
fid = fid + CHARS.charAt(ind);
}
String exist = "select * from files where fid = ?";
List<List<Object>> exi = DbHelper.executeQueryList(exist,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING},
new Object[] {fid});
if(exi.isEmpty())
{
break;
}
}
System.out.println("Passed 3.5");
extension="";
int lastdot = fileItem.getName().lastIndexOf(".");
if(lastdot!=-1)
{
extension=fileItem.getName().substring(lastdot+1);
}
Random ran = new Random();
int find=(int)(ran.nextFloat()*10);
String ff = Character.toString((char)(48+find));
folder = File.separator+ff;
System.out.println("FieldName="+parameters.get("file_name"));
System.out.println("FileName="+fileItem.getName());
System.out.println("ContentType="+fileItem.getContentType());
System.out.println("Size in bytes="+fileItem.getSize());
System.out.println("folder = "+folder);
File file = new File(request.getServletContext().getAttribute("FILES_DIR")+folder+File.separator+fid+"."+extension);
String yr=parameters.get("year");
int year=-1;
if(yr!=null)
year=Integer.parseInt(yr);
int fold = find;
String uploaded_by= (String) session.getAttribute("id");
String discipline=parameters.get("discipline");
String subject=parameters.get("subject");
String tags=parameters.get("tags");
System.out.println("Passed 4");
String updatecount = "insert into files values (?,?,?,?,0,0,?,?,?,?,?)";
String upd = DbHelper.executeUpdateJson(updatecount,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING,
DbHelper.ParamType.INT,
DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING,
DbHelper.ParamType.INT
},
new Object[] {fid,parameters.get("file_name"),year,uploaded_by,extension,institute,discipline,subject,fold});
response.getWriter().printf(upd);
if(tags!=null)
{
String tagarr[]=tags.split(",");
for(int i=0;i<tagarr.length;++i)
{
String exist = "select * from tags where tag = ?";
List<List<Object>> exi = DbHelper.executeQueryList(exist,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING},
new Object[] {tagarr[i]});
if(exi.isEmpty())
{
String updatetag = "insert into tags values (?)";
String tagres = DbHelper.executeUpdateJson(updatetag,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING
},
new Object[] {tagarr[i]});
response.getWriter().printf(tagres);
}
String updatefiletags = "insert into file_tags values (?,?)";
String ftres = DbHelper.executeUpdateJson(updatefiletags,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING
},
new Object[] {fid,tagarr[i]});
response.getWriter().printf(ftres);
}
}
System.out.println("Absolute Path at server="+file.getAbsolutePath());
fileItem.write(file);
}
} catch (FileUploadException e) {
out.write("Exception in uploading file. " + e);
response.getWriter().print(DbHelper.errorJson("Exception in File Upload").toString());
System.out.println("error");
return;
} catch (Exception e) {
System.out.println("error");
response.getWriter().print(DbHelper.errorJson("Exception in File Upload").toString());
out.write("Exception in uploading. "+e);
return;
}
out.write("</body></html>");
}
}
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
/**
* Servlet implementation class FileUploadServlet
*/
@WebServlet("/FileUploadServlet_new")
public class FileUploadServlet_new extends HttpServlet {
private static final long serialVersionUID = 1L;
private static String fid=null;
private static String extension=null;
/**
* @see HttpServlet#HttpServlet()
*/
public FileUploadServlet_new() {
super();
// TODO Auto-generated constructor stub
}
private ServletFileUpload uploader = null;
@Override
public void init() throws ServletException{
DiskFileItemFactory fileFactory = new DiskFileItemFactory();
File filesDir = (File) getServletContext().getAttribute("FILES_DIR_FILE");
fileFactory.setRepository(filesDir);
this.uploader = new ServletFileUpload(fileFactory);
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String fileName = request.getParameter("fileName");
if(fileName == null || fileName.equals("")){
throw new ServletException("File Name can't be null or empty");
}
File file = new File(request.getServletContext().getAttribute("FILES_DIR")+File.separator+fid+"."+extension);
if(!file.exists()){
throw new ServletException("File doesn't exists on server.");
}
System.out.println("File location on server::"+file.getAbsolutePath());
ServletContext ctx = getServletContext();
InputStream fis = new FileInputStream(file);
String mimeType = ctx.getMimeType(file.getAbsolutePath());
response.setContentType(mimeType != null? mimeType:"application/octet-stream");
response.setContentLength((int) file.length());
response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
ServletOutputStream os = response.getOutputStream();
byte[] bufferData = new byte[1024];
int read=0;
while((read = fis.read(bufferData))!= -1){
os.write(bufferData, 0, read);
}
os.flush();
os.close();
fis.close();
System.out.println("File downloaded at client successfully");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if(!ServletFileUpload.isMultipartContent(request)){
throw new ServletException("Content type is not multipart/form-data");
}
HttpSession session = request.getSession();
if(session.getAttribute("id") == null) { //not logged in
response.getWriter().print(DbHelper.errorJson("Not logged in").toString());
return;
}
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.write("<html><head></head><body>");
try {
List<FileItem> fileItemsList = uploader.parseRequest(request);
Iterator<FileItem> fileItemsIterator = fileItemsList.iterator();
while(fileItemsIterator.hasNext()){
FileItem fileItem = fileItemsIterator.next();
if(!fileItem.getFieldName().equals("upload"))
{
continue;
}
while(true)
{
String CHARS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
Random ran = new Random();
fid = "";
while(fid.length()<15)
{
int ind = (int)(ran.nextFloat()*CHARS.length());
fid = fid + CHARS.charAt(ind);
}
String exist = "select * from files where fid = ?";
List<List<Object>> exi = DbHelper.executeQueryList(exist,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING},
new Object[] {fid});
if(exi.isEmpty())
{
break;
}
}
extension="";
int lastdot = fileItem.getName().lastIndexOf(".");
if(lastdot!=-1)
{
extension=fileItem.getName().substring(lastdot+1);
}
if(extension == "") {
extension = "pdf";
}
System.out.println("FieldName="+fileItem.getFieldName());
System.out.println("FileName="+fileItem.getName());
System.out.println("ContentType="+fileItem.getContentType());
System.out.println("Size in bytes="+fileItem.getSize());
File file = new File(request.getServletContext().getAttribute("FILES_DIR")+File.separator+fid+"."+extension);
System.out.println("Absolute Path at server="+file.getAbsolutePath());
fileItem.write(file);
out.write("File "+fileItem.getName()+ " uploaded successfully.");
out.write("<br>");
out.write("<a href=\"FileUploadServlet?fileName="+fileItem.getName()+"\">Download "+fileItem.getName()+"</a>");
int year=Integer.parseInt(request.getParameter("year"));
String uploaded_by=session.getAttribute("id").toString();
String institute=request.getParameter("institute");
String discipline=request.getParameter("discipline");
String subject=request.getParameter("subject");
String tags=request.getParameter("tags");
String fileName=request.getParameter("file_name");
String updatecount = "insert into files values (?,?,?,?,0,0,?,?,?,?)";
String upd = DbHelper.executeUpdateJson(updatecount,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING
},
new Object[] {fid,fileName,year,uploaded_by,extension,institute,discipline,subject});
response.getWriter().printf(upd);
String tagarr[]=tags.split(",");
for(int i=0;i<tagarr.length;++i)
{
String updatetag = "insert into tags values (?)";
String tagres = DbHelper.executeUpdateJson(updatetag,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING
},
new Object[] {tagarr[i]});
response.getWriter().printf(tagres);
String updatefiletags = "insert into file_tags values (?,?)";
String ftres = DbHelper.executeUpdateJson(updatefiletags,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING
},
new Object[] {fid,tagarr[i]});
response.getWriter().printf(ftres);
}
}
} catch (FileUploadException e) {
out.write("Exception in uploading file.");
} catch (Exception e) {
out.write("Exception in uploading file.");
}
out.write("</body></html>");
}
}
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet("/LikeNote")
public class LikeNote extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public LikeNote() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
if(session.getAttribute("id") == null) { //not logged in
response.getWriter().print(DbHelper.errorJson("Not logged in").toString());
return;
}
String userid = request.getParameter("user_id");
String fid = request.getParameter("fid");
//part 1 - insert into likes table
String query_1 = "insert into likes values (? ?)";
String json_1 = DbHelper.executeUpdateJson(query_1,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING, DbHelper.ParamType.STRING},
new String[] {userid, fid});
response.getWriter().printf(json_1);
//part 2 - update value in files table
String query_2 = "update files set likes = likes + 1 where fid = ?";
String json_2 = DbHelper.executeQueryJson(query_2,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING},
new Object[] {fid});
response.getWriter().printf(json_2);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
\ No newline at end of file
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* Servlet implementation class LikeNoteServlet
*/
@WebServlet("/LikeNoteServlet")
public class LikeNoteServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public LikeNoteServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
if(session.getAttribute("id") == null) { //not logged in
response.getWriter().print(DbHelper.errorJson("Not logged in").toString());
return;
}
String userid = request.getParameter("user_id");
String fid = request.getParameter("fid");
String exist = "select * from likes where user_id = ? and fid = ?";
List<List<Object>> exi = DbHelper.executeQueryList(exist,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING},
new Object[] {userid,fid});
if(!exi.isEmpty())
{
response.getWriter().
print(DbHelper.errorJson("This user already liked this file").toString());
return;
}
String updatecount = "update files set likes = likes + 1 where fid = ?";
String upd = DbHelper.executeUpdateJson(updatecount,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING},
new Object[] {fid});
String query = "insert into likes values (?,?)";
String res = DbHelper.executeUpdateJson(query,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING},
new Object[] {userid,fid});
response.getWriter().printf(upd);
response.getWriter().printf(res);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
import java.util.*;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* Servlet implementation class LoginServlet
*/
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public LoginServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//doPost(request, response);
HttpSession session = request.getSession();
if(session.getAttribute("id") != null) { // logged in
response.getWriter().print(DbHelper.okJson().toString());
}
else {
response.getWriter().print(DbHelper.errorJson("Not logged in"));
}
return;
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession();
String userid = request.getParameter("user_id");
String password = request.getParameter("password");
String qsalt="select salt, hash from users_info where user_id = ?";
List<List<Object>> saltjs = DbHelper.executeQueryList(qsalt,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING},
new Object[] {userid});
String salt = saltjs.isEmpty()?null:(String)saltjs.get(0).get(0);
int hash = saltjs.isEmpty()?-1:Integer.valueOf(DbHelper.toint(saltjs.get(0).get(1)));
String pconcat = password + salt;
//System.out.println(pconcat.hashCode());
if(salt != null && pconcat.hashCode()==hash)
{
session.setAttribute("id", userid);
response.getWriter().print(DbHelper.okJson().toString());
}
else {
response.getWriter().print(DbHelper.errorJson("Username/password incorrect").toString());
}
}
}
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* Servlet implementation class LogoutServlet
*/
@WebServlet("/LogoutServlet")
public class LogoutServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public LogoutServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession();
if(session.getAttribute("id") == null) { //not logged in
response.getWriter().print(DbHelper.errorJson("Not logged in").toString());
return;
}
session.invalidate();
response.getWriter().println(DbHelper.okJson().toString());
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* Servlet implementation class Profile
*/
@WebServlet("/Profile")
public class Profile extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Profile() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
if(session.getAttribute("id") == null) { //not logged in
response.getWriter().print(DbHelper.errorJson("Not logged in").toString());
return;
}
String uid = (String)session.getAttribute("id");
String query = "select name,email_id,reputation from users_info where user_id=?" ;
String res = DbHelper.executeQueryJson(query,
new DbHelper.ParamType[] {
DbHelper.ParamType.STRING},
new Object[] {uid});
response.getWriter().printf(res);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* Servlet implementation class RemoveFromFavourites
*/
@WebServlet("/RemoveFromFavourites")
public class RemoveFromFavourites extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public RemoveFromFavourites() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
if(session.getAttribute("id") == null) { //not logged in
response.getWriter().print(DbHelper.errorJson("Not logged in").toString());
return;
}
String userid = request.getParameter("user_id");
String fid = request.getParameter("fid");
String exist = "select * from favourites where user_id = ? and fid = ?";
List<List<Object>> exi = DbHelper.executeQueryList(exist,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING},
new Object[] {userid,fid});
if(exi.isEmpty())
{
response.getWriter().
print(DbHelper.errorJson("This user doesn't have this filein favourites in the first place").toString());
return;
}
String query = "delete from favourites where user_id = ? and fid = ?";
String res = DbHelper.executeUpdateJson(query,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING},
new Object[] {userid,fid});
response.getWriter().printf(res);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* Servlet implementation class ReturnFavourites
*/
@WebServlet("/ReturnFavourites")
public class ReturnFavourites extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public ReturnFavourites() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
if(session.getAttribute("id") == null) { //not logged in
response.getWriter().print(DbHelper.errorJson("Not logged in").toString());
return;
}
String userid = (String)session.getAttribute("id");
String query = "select distinct files.fid,filename,year,uploaded_by,"
+ " likes,views,extension,institute,discipline,subject,folder,"
+ " likes.user_id as liked, favourites.user_id as favo "
+ " from favourites natural join files left join likes on likes.user_id=? and likes.fid = files.fid"
+ " where favourites.user_id = ? order by filename";
String js = DbHelper.executeQueryJson(query,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING
},
new Object[] {userid,userid});
response.getWriter().printf(js);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* Servlet implementation class ReturnHistory
*/
@WebServlet("/ReturnHistory")
public class ReturnHistory extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public ReturnHistory() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
if(session.getAttribute("id") == null) { //not logged in
response.getWriter().print(DbHelper.errorJson("Not logged in").toString());
return;
}
String userid = (String)session.getAttribute("id");
String query = "select distinct files.fid,filename,year,uploaded_by,"
+ " likes,views,extension,institute,discipline,subject,folder,"
+ " likes.user_id as liked, favourites.user_id as favo, time_stamp"
+ " from history natural join files left join "
+ " likes on likes.user_id=? and likes.fid=files.fid left join"
+ " favourites on favourites.user_id=? and favourites.fid = files.fid"
+ " where history.user_id = ? order by time_stamp desc";
String js = DbHelper.executeQueryJson(query,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING},
new Object[] {userid,userid,userid});
response.getWriter().printf(js);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* Servlet implementation class ReturnUploads
*/
@WebServlet("/ReturnUploads")
public class ReturnUploads extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public ReturnUploads() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
if(session.getAttribute("id") == null) { //not logged in
response.getWriter().print(DbHelper.errorJson("Not logged in").toString());
return;
}
String userid = (String)session.getAttribute("id");
String query = "select files.fid,filename,year,uploaded_by,likes,views,extension,institute,"
+ " discipline,subject,folder, likes.user_id as liked, favourites.user_id as favo"
+ " from files left join likes on"
+ " likes.fid = files.fid and likes.user_id = ? "
+ " left join favourites on favourites.fid = files.fid and favourites.user_id = ?"
+ " where uploaded_by = ? order by filename";
String js = DbHelper.executeQueryJson(query,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING},
new Object[] {userid,userid,userid});
response.getWriter().printf(js);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
import java.io.IOException;
import java.nio.file.Files;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* Servlet implementation class SearchServlet
*/
@WebServlet("/SearchServlet")
public class SearchServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public SearchServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession();
if(session.getAttribute("id") == null) { //not logged in
response.getWriter().print(DbHelper.errorJson("Not logged in").toString());
return;
}
String searchstr = request.getParameter("search_string");
String institute = request.getParameter("institute");
String discipline = request.getParameter("discipline");
String tag = request.getParameter("tag");
String subject = request.getParameter("subject");
String sort_parameter = request.getParameter("sort_parameter");
String userid = (String)session.getAttribute("id");
System.out.println(tag);
Set<String> sortlist = new HashSet<>();
sortlist.add("likes");
sortlist.add("views");
sortlist.add("year");
if(searchstr==null)
{
searchstr="";
}
if(institute==null)
{
institute="";
}
if(discipline==null)
{
discipline="";
}
if(tag==null)
{
tag="";
}
if(subject==null)
{
subject="";
}
if(sort_parameter==null||!sortlist.contains(sort_parameter));
{
sort_parameter="year";
}
//searchstr = searchstr.toUpperCase();
//tag = tag.toUpperCase();
subject = subject.toUpperCase();
institute = institute.toUpperCase();
discipline = discipline.toUpperCase();
List<DbHelper.ParamType> parr= new ArrayList<DbHelper.ParamType>();
List<Object> oarr= new ArrayList<Object>();
if(searchstr.equals(""))
{
searchstr = "%" + searchstr + "%";
}
parr.add(DbHelper.ParamType.STRING);oarr.add(userid);
parr.add(DbHelper.ParamType.STRING);oarr.add(userid);
parr.add(DbHelper.ParamType.STRING);oarr.add(searchstr);
parr.add(DbHelper.ParamType.STRING);oarr.add("%"+subject+"%");
parr.add(DbHelper.ParamType.STRING);oarr.add("%"+institute+"%");
parr.add(DbHelper.ParamType.STRING);oarr.add("%"+discipline+"%");
String query = "select distinct files.fid,filename,institute,discipline,"
+ " subject,likes,views,year,uploaded_by, likes.user_id as liked, favourites.user_id as favo"
+ " from files left join"
+ " file_tags on files.fid = file_tags.fid left join "
+ " likes on likes.fid=files.fid and likes.user_id=? "
+ " left join favourites on favourites.fid = files.fid and favourites.user_id = ?"
+ " where files.filename ";
if(searchstr.equals("%%"))
{
query = query + " like ";
}
else
{
query = query + " % ";
}
query = query + " ?"
+ " and UPPER(files.subject) like ?"
+ " and UPPER(files.institute) like ? and UPPER(files.discipline) like ? and ( ";
String tagarr[]=tag.split(",");
int N = tagarr.length;
if(tagarr[tagarr.length - 1] == "" && tagarr.length != 1) {
N --;
}
for(int i=0;i<N;++i)
{
parr.add(DbHelper.ParamType.STRING);
if(i>0)
{
query = query+" or ";
}
if(tagarr[i].equals(""))
{
oarr.add("%"+tagarr[i]+"%");
query = query + " file_tags.tag like ? ";
}
else
{
oarr.add(tagarr[i]);
query = query + " file_tags.tag % ? ";
}
}
query = query+ ")";
System.out.println(query);
for(Object ob: oarr)
{
System.out.print(ob + " ");
}
System.out.println();
String res = DbHelper.executeQueryJson(query,parr.toArray(new DbHelper.ParamType[parr.size()]),
oarr.toArray(new Object[oarr.size()]));
response.getWriter().printf(res);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* Servlet implementation class AddToFavourites
*/
@WebServlet("/SwitchFavouritesServlet")
public class SwitchFavouritesServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public SwitchFavouritesServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
if(session.getAttribute("id") == null) { //not logged in
response.getWriter().print(DbHelper.errorJson("Not logged in").toString());
return;
}
String userid = (String)session.getAttribute("id");
String fid = request.getParameter("fid");
String exist = "select * from favourites where user_id = ? and fid = ?";
List<List<Object>> exi = DbHelper.executeQueryList(exist,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING},
new Object[] {userid,fid});
String whoUploaded = "select uploaded_by from files where fid = ?";
List<List<Object>> owjs = DbHelper.executeQueryList(whoUploaded,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING},
new Object[] {fid});
String owner = owjs.isEmpty()?null:(String)owjs.get(0).get(0);
if(!exi.isEmpty())
{
String rem = "delete from favourites where user_id = ? and fid = ?";
String js = DbHelper.executeUpdateJson(rem,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING},
new Object[] {userid,fid});
response.getWriter().printf(js);
if(!userid.equals(owner))
{
String updrep = "update users_info set reputation = reputation - 1 where user_id =?";
String updjs = DbHelper.executeUpdateJson(updrep,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING},
new Object[] {owner});
// response.getWriter().printf(updjs);
}
return;
}
String query = "insert into favourites "
+ " values (?,?)";
String js = DbHelper.executeUpdateJson(query,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING},
new Object[] {userid,fid});
response.getWriter().printf(js);
if(!userid.equals(owner))
{
String updrep = "update users_info set reputation = reputation + 1 where user_id =?";
String updjs = DbHelper.executeUpdateJson(updrep,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING},
new Object[] {owner});
// response.getWriter().printf(updjs);
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* Servlet implementation class LikeNoteServlet
*/
@WebServlet("/SwitchLikeServlet")
public class SwitchLikeServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public SwitchLikeServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
if(session.getAttribute("id") == null) { //not logged in
response.getWriter().print(DbHelper.errorJson("Not logged in").toString());
return;
}
String userid = (String)session.getAttribute("id");
String fid = request.getParameter("fid");
String exist = "select * from likes where user_id = ? and fid = ?";
List<List<Object>> exi = DbHelper.executeQueryList(exist,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING},
new Object[] {userid,fid});
if(!exi.isEmpty())
{
String updatecount = "update files set likes = likes - 1 where fid = ?";
String upd = DbHelper.executeUpdateJson(updatecount,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING},
new Object[] {fid});
String removelike = "delete from likes where user_id = ? and fid = ?";
String rem = DbHelper.executeUpdateJson(removelike,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING},
new Object[] {userid,fid});
//response.getWriter().printf(upd);
response.getWriter().printf(rem);
return;
}
String updatecount = "update files set likes = likes + 1 where fid = ?";
String upd = DbHelper.executeUpdateJson(updatecount,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING},
new Object[] {fid});
String query = "insert into likes values (?,?)";
String res = DbHelper.executeUpdateJson(query,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING},
new Object[] {userid,fid});
//response.getWriter().printf(upd);
response.getWriter().printf(res);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* Servlet implementation class UnlikeNote
*/
@WebServlet("/UnlikeNote")
public class UnlikeNote extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public UnlikeNote() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
if(session.getAttribute("id") == null) { //not logged in
response.getWriter().print(DbHelper.errorJson("Not logged in").toString());
return;
}
String userid = request.getParameter("user_id");
String fid = request.getParameter("fid");
String exist = "select * from likes where user_id = ? and fid = ?";
List<List<Object>> exi = DbHelper.executeQueryList(exist,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING},
new Object[] {userid,fid});
if(exi.isEmpty())
{
response.getWriter().
print(DbHelper.errorJson("This user doesn't liked this file in the first place").toString());
return;
}
String updatecount = "update files set likes = likes - 1 where fid = ?";
String upd = DbHelper.executeUpdateJson(updatecount,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING},
new Object[] {fid});
String query = "delete from likes where user_id = ? and fid = ?";
String res = DbHelper.executeUpdateJson(query,
new DbHelper.ParamType[] {DbHelper.ParamType.STRING,
DbHelper.ParamType.STRING},
new Object[] {userid,fid});
response.getWriter().printf(upd);
response.getWriter().printf(res);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment