P3 java(2)
P3 java(2)
: 03
Name: Sahib zubair temkar Date: / /
Class: TY BSC IT Subject: Advanced Java Technology Roll No.: 22
import java.io.*;
import javax.servlet.*;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.http.*;
@MultipartConfig
public class FileUploadServlet extends HttpServlet {
@Override
public void doPost(HttpServletRequest req, HttpServletResponse res) throws
ServletException, IOException {
res.setContentType("text/html");
PrintWriter out = res.getWriter();
String path = req.getParameter("destination");
Part filePart = req.getPart("file");
String filename = filePart.getSubmittedFileName().toString();
out.print("<br><br><hr> filename: " + filename);
OutputStream os = null;
InputStream is = null;
try {
os = new FileOutputStream(new File(path + File.separator + filename));
is = filePart.getInputStream();
intread = 0;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("APPLICATION/OCTET-STREAM");
String filename = request.getParameter("filename");
ServletContext context = getServletContext();
PrintWriter out;
//ServletOutputStream out = response.getOutputStream(); // any of the two works
try (InputStream is = context.getResourceAsStream("/" + filename)) {
//ServletOutputStream out = response.getOutputStream(); // any of the two works
out = response.getWriter();
response.setHeader("Content-Disposition", "attachment; filename=\"" + filename
+ "\""); int i;
while ((i = is.read()) != - 1) {
out.write(i);
}
}
out.close();
}
}
Output:
index.html
<html>
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<h1>Welcome to Quiz Servlet </h1>
<h1><a href="QuizServlet" >CLICK TO START QUIZ</a></h1>
</body>
</html>
QuizServlet.java
package mypack;
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<form action=ShowResult >");
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con=
DriverManager.getConnection("jdbc:derby://localhost:1527/quizdb", "root",
"123456789");
Statement stmt = con.createStatement();
ResultSet res = stmt.executeQuery("select * from quiz");
out.println("<table border=1 >");
int qno = 0;
while (res.next()) {
qno++;
out.println("<tr><td>" + res.getString(1) + "</td>");
out.println("<td>" + res.getString(2) + "</td></tr>");
out.println("<tr><td><input type=radio name=" + qno + "value=" +
res.getString(3) + "></td><td>" + res.getString(3) + "</td></tr>");
out.println("<tr><td><input type=radio name=" + qno + "value=" +
res.getString(4) + "></td><td>" + res.getString(4) + "</td></tr>");
out.println("<tr><td><input type=radio name=" + qno + "value=" +
res.getString(5) + "></td><td>" + res.getString(5) + "</td></tr>");
out.println("<tr><td><input type=radio name=" + qno + "value=" +
res.getString(6) + "></td><td>" + res.getString(6) + "</td></tr>");
}
} catch (Exception e) {
out.println(e);
}
out.println("</table>");
out.println("<input type=reset >");
out.println("<input type=submit value=SUBMIT >");
out.println("</form>");
}
}
ShowResult.java
package mypack;
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con =
DriverManager.getConnection("jdbc:derby://localhost:1527/quizdb", "root",
"123456789");
Statement stmt = con.createStatement();
ResultSet res = stmt.executeQuery("select ans from quiz");
int count = 0, qno = 0;
while (res.next()) {
if (res.getString(1).equals(request.getParameter("" + (++qno)))) {
count++;
out.println("<h1>Correct </h1>");
} else {
out.println("<h1>Incorrect </h1>");
}
}
out.println("<h1>Your Score is " + count + " </h1>");
} catch (Exception e) {
out.println(e);
}
}
}
Output:
Aim: C) Create simple Servlet application to demonstrate Non-Blocking Read
Operation. Code:
index.html
<html>
<head>
<title>Non Blocking IO</title>
<meta charset="UTF-8">
<meta http-equiv="Refresh" content="0; URL=NonBlockingServlet">
</head>
<body>
</body>
</html>
NonBlockingServlet.java
package nonblkapp;
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
try (PrintWriter out = response.getWriter()) {
out.println("<h1>FileReader</h1>");
String filename = "/WEB-INF/booklist.txt";
ServletContext c = getServletContext();
InputStream in = c.getResourceAsStream(filename);
String path = "http://" + request.getServerName() + ":" +
request.getServerPort() + request.getContextPath()
+"/ReadingNonBloclingServlet";
URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setChunkedStreamingMode(2);
conn.setDoOutput(true);
conn.connect();
if (in != null) {
InputStreamReader inr = new InputStreamReader(in);
BufferedReader br = new BufferedReader(inr);
String text = "";
System.out.println("Reading started. .. ");
BufferedWriter bw = new BufferedWriter(new
OutputStreamWriter(conn.getOutputStream()));
while ((text = br.readLine()) != null) {
out.print(text + "<br>");
try {
Thread.sleep(1000);
out.flush();
} catch (InterruptedException ex) {
}
}
out.print("reading completed. ..");
bw.flush();
bw.close();
}
}
}
}
ReadingListener.java
package nonblkapp;
import java.io.IOException;
import javax.servlet.AsyncContext;
import javax.servlet.ReadListener;
import javax.servlet.ServletInputStream;
ReadingListener(ServletInputStream in,AsyncContext c) {
input = in;
ac = c;
}
@Override
public void onDataAvailable() throws IOException {
}
@Override
public void onAllDataRead() throws IOException {
ac.complete();
}
@Override
public void onError(final Throwable t) {
ac.complete();
t.printStackTrace();
}
}
ReadingNonBlockingServlet.java
package nonblkapp;
import java.io.IOException;
import javax.servlet.AsyncContext;
import javax.servlet.ServletException;
import javax.servlet.ServletInputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
AsyncContext ac = request.startAsync();
ServletInputStream in = request.getInputStream();
in.setReadListener(new ReadingListener(in, ac));
}
}
Output: