Вы находитесь на странице: 1из 38

www.ignousolvedassignments.

com

Course Code : MCS-051


Course Title : Advanced Internet Technologies
Assignment Number : MCA(5)/051/Assign/2012
Maximum Marks : 100
Weightage : 25%
Last Dates for Submission : 15th October, 2012 (For July 2012 Session)
15th April, 2013 (For January 2013 Session)
There are nine questions in this assignment. Each question carries 10 marks. Rest 20 marks are for
viva voce. Answer all the questions. You may use illustrations and diagrams to enhance the
explanations. Please go through the guidelines regarding assignments given in the Programme Guide
for the format of presentation.
Q 1: Write an online student registration application using JSP/servlet and JDBC. Use the following
table to store student information. (10 marks)
STUDENT_REG
ENR-ID, SNAME, REG-YEAR, ADDRESS
Solution :

<html>
<body bgcolor="#999966">
<form action="/userregister/Registration " method=post>
<table cellpadding=4 cellspacing=2 border=0>
<th bgcolor="#999966" colspan=2>
<font size=5>REGISTRATION</font>
<br><font size=1><sup></sup></font><hr>
</th><tr bgcolor="#999966"><td valign=top>
<b>Enrolment Id<sup>*</sup></b>
<br><input type="text" name="enrid" value="" size=15 maxlength=20>

www.ignousolvedassignments.com
</td><td valign=top><b>Student Name<sup>*</sup></b>
<br><input type="text" name="sname" value="" size=15 maxlength=20></td>
</tr><tr bgcolor="#999966">
<td valign=top><b> Registration Year <sup>*</sup></b>
<br><input type="text" name="regyear " value="" size=25
maxlength=125><br></td><td valign=top>
<b>Address<sup>*</sup></b> <br>
<input type="text" name="address" value="" size=5 maxlength=6></td>
</tr><tr bgcolor="#999966"><td valign=top colspan=2>
<td align=left colspan=2><hr>
<input type="submit" value="Submit"></td></tr>
</table></center>
</form>
</body>
</html>
Registration .java
package myservlets;
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Registration extends HttpServlet{
public void init(ServletConfig config) throws ServletException{
super.init(config);
}

www.ignousolvedassignments.com
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException{
String connectionURL = "jdbc:mysql://localhost/jsp";
Connection connection=null;
ResultSet rs;
res.setContentType("text/html");
PrintWriter out = res.getWriter();
String uId = req.getParameter("enrid");
String fname = req.getParameter("sname");
String sname = req.getParameter("regyear");
String address1 = req.getParameter("address");
try {
Class.forName("org.gjt.mm.mysql.Driver");
connection = DriverManager.getConnection(connectionURL, "root", "root");
String sql = "insert into userprofile values (?,?,?,?,?,?,?,?)";
PreparedStatement pst = connection.prepareStatement(sql);
pst.setString(1, enrid);
pst.setString(2, sname);
pst.setString(3, regyear);
pst.setString(4, address);
int numRowsChanged = pst.executeUpdate();
out.println(" Welcome : ");
out.println(" '"+fname+"'");
pst.close();
}

www.ignousolvedassignments.com
catch(ClassNotFoundException e){
out.println("Couldn't load database driver: " + e.getMessage());
}
catch(SQLException e){
out.println("SQLException caught: " + e.getMessage());
}
catch (Exception e){
out.println(e);
}
finally {
try {
if (connection != null) connection.close();
}
catch (SQLException ignored){
out.println(ignored);
}
}
}
}
web.xml file for this program:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/webapp_2_5.xsd"
version="2.5">

www.ignousolvedassignments.com
<description>
User Registration and Login Example.
</description>
<display-name>User Registration and Login Example</display-name>
<servlet>
<servlet-name>Registration</servlet-name>
<servlet-class>myservlets.Registration</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Registration</servlet-name>
<url-pattern>/Registration</url-pattern>
</servlet-mapping>
</web-app>

Q 2: What is a custom tag in JSP? Create a custom tag that will accept a full name and convert into
initials. For example Surendra Kumar Sharma should be displayed as S.K. Sharma. Please use proper
error handling feature.
Solution :
The standard JSP tags for invoking operations on JavaBeans components and performing request
dispatching simplify JSP page development and maintenance. JSP technology also provides a mechanism
for encapsulating other types of dynamic functionality in custom tags, which are extensions to the JSP
language. Custom tags are usually distributed in the form of a tag library, which defines a set of related
custom tags and contains the objects that implement the tags.
Some examples of tasks that can be performed by custom tags include operations on implicit objects,
processing forms, accessing databases and other enterprise services such as e-mail and directories, and
performing flow control. JSP tag libraries are created by developers who are proficient at the Java
programming language and expert in accessing data and other services, and are used by Web
application designers who can focus on presentation issues rather than being concerned with how to
access enterprise services. As well as encouraging division of labor between library developers and

www.ignousolvedassignments.com
library users, custom tags increase productivity by encapsulating recurring tasks so that they can be
reused across more than one application.

Q 3: What is Servlet Collaboration? Explain two ways used for Servlet Collaboration through an
example.
Solution :
Servlet collaboration is all about sharing information among the servlets. Collaborating servlets is to pass
the common information that is to be shared directly by one servlet to another through various
invocations of the methods. To perform these operations, each servlet need to know the other servlet
with which it is collaborated.
The collaboration can be done by redirecting a servlet from another or loading the servlets from the
ServletContext access methods. This can also be achieved by the methods forward() and include() of
RequestDispatcher or by sendRedirect() method.
Two ways used for Servlet Collaboration
1 - Collaboration Through the System Properties List
One simple way for servlets to share information is by using Java's system-wide Properties list, found in
the java.lang.System class. This Properties list holds the standard system properties, such as java.version
and path.separator, but it can also hold application-specific properties. Servlets can use the properties
list to hold the information they need to share. A servlet can add (or change) a property by calling:
System.getProperties().put("key", "value");
That servlet, or another servlet running in the same JVM, can later get the value of the property by
calling:
String value = System.getProperty("key");
The property can be removed by calling:
System.getProperties().remove("key");
It's best if the key for a property includes a prefix that contains the name of the servlet's package and
the name of the collaboration group. For example, "com.oreilly.servlet.ShoppingCart".
The Properties class is intended to be String based, meaning that each key and value is supposed to be
a String. This limitation, though, isn't commonly enforced and can (although it's quite a hack) be ignored
by servlets that want to store and retrieve non-String objects. Such servlets can take advantage of the

www.ignousolvedassignments.com
fact that the Properties class extends the Hashtable class, so the Properties list can (quite rudely) be
treated as a Hashtable when storing keys and values. For example, a servlet can add or change
a property object by calling:
System.getProperties().put(keyObject, valueObject); // hack
It can retrieve the property object by calling:
SomeObject valueObject = (SomeObject)System.getProperties().get(keyObject);
It can remove the property object by calling:
System.getProperties().remove(keyObject);
This misuse of the Properties list causes the getProperty(), list() and save() methods of the Properties
class to throw ClassCastException objects when they naturally--but erroneouslyassume each key and
value to be a String. For this reason, if there's any chance these methods might be called, you should
instead use one of the techniques for servlet collaboration we describe later in the chapter. Also,
remember the class files for keyObject and valueObject should be found in the server's classpath, not in
the default servlet directory where they would be loaded, and perhaps reloaded, by the special servlet
class loaders.
There are three more caveats to using the system Properties list for servlet collaboration: the
information isn't naturally persistent between server restarts, the information can be viewed (and
modified or deleted) by other classes executing in the servlet's JVM, and some servlet security managers
may not grant servlets access to the system property list.
2 - Collaboration Through Inheritance
Perhaps the easiest technique for servlet collaboration is through inheritance. Each servlet interested in
collaborating can extend the same class and inherit the same shared information. This simplifies the
code for the collaborating servlets and limits access to the shared information to the proper subclasses.
The common superclass can hold a reference to the shared information, or it can hold the shared
information itself.
Inheriting a shared reference
A common superclass can hold any number of references to shared business objects that are easily
made available to its subclasses. Example 11 shows such a superclass, usable for our burrito inventory
example.
Example A superclass holding a reference to shared information
import javax.servlet.*;

www.ignousolvedassignments.com
import javax.servlet.http.*;
public class BurritoInventorySuperclass extends HttpServlet {
protected static BurritoInventory inventory = new BurritoInventory();
}
This BurritoInventorySuperclass creates a
new BurritoInventory instance. BurritoInventoryProducer and BurritoInventoryConsumer can then
subclass BurritoInventorySuperclass and inherit a reference to this instance. The code for the
revised BurritoInventoryConsumer is shown in Example 12 to clarify.
Example 12. Using an inherited business object
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class BurritoInventoryConsumer extends BurritoInventorySuperclass {
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("text/html");
PrintWriter out = res.getWriter();
out.println("<HTML>");
out.println("<HEAD><TITLE>Burrito Inventory Consumer</TITLE></HEAD>");
out.println("<BODY><BIG>");
if (inventory.makeBurrito()) {
out.println("Your burrito will be ready in 3 minutes.");
}
else {
out.println("We're low on ingredients.<BR>");

www.ignousolvedassignments.com
out.println("Looks like you're gonna starve.");
}
out.println("</BIG></BODY></HTML>");
}
}
The BurritoInventory class doesn't have to be a singleton anymore. The subclasses naturally inherit the
same instance. Again, the class file for BurritoInventorySuperclass should be put in the server's classpath
to keep it from being reloaded.
Inheriting the shared information
In addition to holding shared references, a common superclass can hold shared information itself and
optionally make it available through inherited business logic methods. Example
13 shows BurritoInventorySuperclass rewritten using this technique. It's essentially an alternate form
of BurritoInventoryServlet.
Example 13 A superclass holding its own shared information
public class BurritoInventorySuperclass extends HttpServlet {
// How many "servings" of each item do we have?
private static int cheese = 0;
private static int rice = 0;
private static int beans = 0;
private static int chicken = 0;
// Add to the inventory as more servings are prepared.
protected static void addCheese(int added) { cheese += added; }
protected static void addRice(int added) { rice += added; }
protected static void addBeans(int added) { beans += added; }
protected static void addChicken(int added) { chicken += added; }

www.ignousolvedassignments.com
// Called when it's time to make a burrito.
// Returns true if there are enough ingredients to make the burrito,
// false if not. Decrements the ingredient count when there are enough.
synchronized static protected boolean makeBurrito() {
// ...etc...
}
// ...The rest matches BurritoInventoryServlet...
There are only two differences between this servlet superclass and BurritoInventoryServlet. First, all
the variables and methods are now static. This guarantees that there's just one inventory kept for all the
subclasses. Second, all the methods are now protected. This makes them available only to subclasses.
By inheriting from a superclass that contains the shared
information, BurritoInventoryProducer and BurritoInventoryConsumer can call the inventory methods
directly. For example,BurritoInventoryProducer can add items to the inventory with this code:
// Add the items to the inventory
addCheese(cheese);
addRice(rice);
addBeans(beans);
addChicken(chicken);

Q 4: Write a MDB (Message Driven Bean) for news agency that has to capture the data from various
news sources. The newly written MDB should accept the XML format of the news. The XML data
needs to be parsed and stored in the database. The news format is as follows:
<news_id> </ news_id>
<sources> </source>
<date>

</date>

<type_of_news> </type_of_news>

www.ignousolvedassignments.com
<priority> <priority>
<news_content> </news_content>

Solution :
<%@page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*"
errorPage=""%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<style type="text/css">
<!-.style1 { font-family:"Times New Roman", Times, serif; color: #99CC00;}
.style2 { font-family:"Times New Roman", Times, serif; color: #99CC00; }
.style3 { color: #FFFFFF;}
.style4 { font-size:14px; color: #0099FF; }
.style5 { color: #0099FF;}
.style6 { font-size:14px; color: #00CCFF;}
.style7 { color: #00CCFF; }
body { background-color:#FFFFFF;}
</style>
</head>
<body>
<h1 class="style1">Daily News</h1>

www.ignousolvedassignments.com
<form name="form1" method="post" action="">
<span class="style2">News Id.:</span>
<input type="text" name="textfield">
</form>
<form name="form2" method="post" action="">
<p><span class="style4">Source:</span><span class="style5"></span><span class="style3">aa</span>
<input type="text" name="textfield3">
</p>
<p><span class="style5">Date:<span class="style3">:</span></span><span
class="style3">aaaa</span>
<input type="text" name="textfield2">
</p>
</form>
<form name="form3" method="post" action="">
<span class="style6">Type of news</span>
<input type="text" name="textfield4">
</form>
<form name="form4" method="post" action="">
<p class="style7">News content</p>
<p>
<textarea name="textarea" rows="4"></textarea>
</p>
</form>
<p>&nbps;</p>
</body>

www.ignousolvedassignments.com
</html>

Q 5: Write an application to create a XML document from a telephone directory database. The XML
document should contain the name of a customer, address, telephone number and the last twelve
months bill payment summary.
Solution :
<?xml version="1.0" ?>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!-- customer - customer.xml
-->
<!-- Storing the customer details in XML document
-->
<customer>
<customer.name>
<fname>Shyam</fname>
<mname>Narendra</mname>
<lname>Patel</lname>
</ customer.name>
< customer.add>
<city>Vadodara</city>
<state>Gujarat</state>
<zip>390 001</zip>
</employee.add>
<customer.phone>
<number>079-65254789</number>
</customer.phone>

www.ignousolvedassignments.com
<summary>We found Mr. Patel is a good customer he paid all the bills on time.</summary>
</customer>

Q 6: Create a mini bank application, where the new bank customer can register
and opt for different bank accounts.
The application should capture the customer details and depending upon
the type of the account, it should ask about their employment details (e.g. for saving account,
there should be salary details and for commercial account,
there should be business turnover). Put the necessary validation also.
You are required to use Servelet, JSP and JDBC.
Solution :
newACRequestPage.jsp
<html>
<head> <title>New AC Request-Indian Bank</title>
<script LANGUAGE="JavaScript">
function validateForm()
{
if(document.newACRequest.fname.value.length == 0)
{
alert("Enter First Name!");
document.newACRequest.fname.focus();
return false;
}
if(document.newACRequest.lname.value.length == 0)
{
alert("Enter last name!");
document.newACRequest.lname.focus();
return false;

www.ignousolvedassignments.com

}
if(document.newACRequest.caddress.value.length == 0)
{
alert ("Enter Current address!");
document.newACRequest.caddress.focus();
return false;
}
if(document.newACRequest.paddress.value.length == 0)
{
alert ("Enter permanant address!");
document.newACRequest.paddress.focus();
return false;
}
if((document.newACRequest.mobile.value.length == 0) ||
(document.newACRequest.mobile.value.length < 10))
{
alert("Enter 10 digit mobile number");
document.newACRequest.mobile.focus();
return false;
}
if((document.newACRequest.empstatus.value == "yes") &&
(document.newACRequest.empyer.value.length == 0))
{
alert ("If employment status is -YES-, please enter Employer.");
document.newACRequest.empyer.focus();
return false;

www.ignousolvedassignments.com

}
if((document.newACRequest.empstatus.value == "yes") &&
(document.newACRequest.ctc.value.length == 0))
{
alert ("If employment status is -YES-, please enter Employer.");
document.newACRequest.ctc.focus();
return false;
}
if(document.newACRequest.actype.value == "1")
{
alert ("Select type of account.");
document.newACRequest.actype.focus();
return false;
}
if(document.newACRequest.bto.value.length == 0)
{
alert ("Enter Business turn over");
document.newACRequest.bto.focus();
return false;
}
return true;
}
</SCRIPT>
</head>
<body><br><br>

www.ignousolvedassignments.com

<center><B><U>Indian Bank</U></B></center><br>
<center><B><U>New AC Request Window</U></B></center><br>
<form name="newACRequest" action="newACRequest" method="post" onsubmit="return
validateForm();">
Personal Details: <hr size=2>
<table align="left" border="0">
<tr>
<td>First Name</td>
<td><input type="text" name="fname" class="input" maxlength="5" size="25" ></td>
</tr>
<tr>
<td>Middle Name</td><td>
<input type="text" name="mname"class="input" maxlength="5" size="25" ></td>
</tr>
<tr>
<td>Last Name</td>
<td><input type="text" name="lname" class="input" maxlength="10" size="25"></td>
</tr>
<tr>
<td>Current Address</td>
<td><textarea name="caddress" class="input" cols="21" rows="3"></textarea></td>
</tr>
<tr>
<td>Permanant Address</td>
<td><textarea name="paddress" class="input" cols="21" rows="3"></textarea></td>

www.ignousolvedassignments.com

</tr>
<tr>
<td>Mobile Number</td>
<td><input type="text" name="mobile" class="input" maxlength="10" size="25"></td>
</tr>
</table><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
Employment Details: <hr size=2>
<table align="left" border="0">
<tr>
<td>Employment Status::</td>
<td><input type="radio" name="empstatus" value="yes">Yes&nbsp;&nbsp;<input
type="radio" name="empstatus" value="no" checked>No</td>
</tr>
<tr>
<td>Employer</td>
<td><input type="text" name="empyer" class="input" maxlength="10" size="25"></td>
</tr>
<tr>
<td>CTC</td>
<td><input type="text" name="ctc" class="input" maxlength="10" size="25"></td>
</tr>
</table><br><br><br><br><br><br>
New AC Details: <hr size=2>
<table align="left" border="0">
<tr>

www.ignousolvedassignments.com

<td>Select Type of Account</td>


<td><select name="actype"><option value="1">--Select--</option><option
value="commercial">Commercial</option><option value="Savings">Savings</option><option
value="Current">Current</option></select></td>
</tr>
<tr>
<td>Business Turn Over (in INR)</td>
<td><input type="text" name="bto" class="input" maxlength="10" size="25"></td>
</tr>
</table><br><br><br><br><br><br>
<input type="submit" value="Register" class="button">&nbsp;<input type="reset"
value="Reset" class="button">
</form>
</body>
</html>
newACRequest servlet
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
public class login extends HttpServlet {
protected void processRequest(HttpServletRequest request,HttpServletResponse
response)throws ServletException, IOException
{
response.setContentType("text/html;charset=UTF-8");

www.ignousolvedassignments.com

PrintWriter printwriter = response.getWriter();


HttpSession session=request.getSession(true);
Connection connection = null;
Statement statement = null;
ResultSet resultset = null;
String fname

= request.getParameter("fname");

String mname

= request.getParameter("mname");

String lname

= request.getParameter("lname");

String caddress

= request.getParameter("caddress");

String paddress

= request.getParameter("paddress");

String mobile

= request.getParameter("mobile");

String empstatus
String empyer
String ctc
String actype
String bto

= request.getParameter("empstatus");
= request.getParameter("empyer");

= request.getParameter("ctc");
= request.getParameter("actype");
= request.getParameter("bto");

try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
connection = DriverManager.getConnection("jdbc:odbc:MYDSN","scott","tiger");
statement = connection.createStatement();
PreparedStatement preparedstatement = connection.prepareStatement("insert into
new_request(FNAME,MNAME,LNAME,CADDRESS,PADDRESS,MOBILE,EMPSTATUS,EMPLOYER,CTC,
AC_TYPE,BTO)
values (?,?,?,?,?,?,?,?,?,?,?)");
preparedstatement.setString(1, fname);

www.ignousolvedassignments.com

preparedstatement.setString(2, mname);
preparedstatement.setString(3, lname);
preparedstatement.setString(4, caddress );
preparedstatement.setString(5, paddress);
preparedstatement.setString(6, mobile);
preparedstatement.setString(7, empstatus);
preparedstatement.setString(8, empyer);
preparedstatement.setString(9, ctc );
preparedstatement.setString(10, actype);
preparedstatement.setString(11, bto);
preparedstatement.execute();
printwriter.println("<center>New Request updated successfully! Thanks for visiting Indian
Bank!</center>);
catch(Exception exception)
{
printwriter.println(exception.getMessage());
}

}
/** Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

www.ignousolvedassignments.com

processRequest(request, response);
}

/** Handles the HTTP <code>POST</code> method.


* @param request servlet request
* @param response servlet response
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}

/** Returns a short description of the servlet.


*/
public String getServletInfo() {
return "Short description";
}
}

Q 7: (i) Describe the use of SSL Authentication in Java Clients with the help of sample code.
Solution :
How to write various types of SSL clients. Examples of the following types of SSL clients are
provided:
SSL Client Sample
SSL Client License Requirement: Any stand-alone Java client that uses WebLogic SSL classes to

www.ignousolvedassignments.com

invoke an Enterprise JavaBean (EJB) must use the BEA license file. When you run your client
application, set the following system properties on the command line:
bea.home=license_file_directory
java.protocol.handler.pkgs=com.certicom.net.ssl
Where license_file_directory refers to the directory that contains the BEA license file (license.bea).
Here is an example of a run command that uses the default location of the license file (c:\bea):
java -Dbea.home=c:\bea \
-Djava.protocol.handler.pkgs=com.certicom.net.ssl my_app
SSLClient Sample
The SSLClient sample demonstrates how to use the WebLogic SSL library to make outgoing SSL
connections using URL and URLConnection objects. It shows both how to do this from a standalone
application as well as from a servlet in WebLogic Server.
Note: When making an outgoing SSL connection, a WebLogic Server instance uses the server's
certificate. When communicating to either the same or another WebLogic Server instance with
twoway
SSL, the originating server's certificate will be verified against the client root CA list in the
receiving WebLogic Server instance.
List-1 shows a sample SSLClient. This code is taken from the SSLClient.java file located
at SAMPLES_HOME\server\examples\src\examples\security\sslclient.
Listing 1 SSL Client Sample Code
package examples.security.sslclient;
import java.io.File;
import java.net.URL;
import java.io.IOException;
import java.io.InputStream;

www.ignousolvedassignments.com

import java.io.FileInputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import java.util.Hashtable;
import java.security.Provider;
import javax.naming.NamingException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.servlet.ServletOutputStream;
import weblogic.net.http.*;
import weblogic.jndi.Environment;
/** SSLClient is a short example of how to use the SSL library of
* WebLogic to make outgoing SSL connections. It shows both how to
* do this from a stand-alone application as well as from within
* WebLogic (in a Servlet).
*
* Be careful to notice that the WebLogic Server, when making an
* outgoing SSL connection, will use that instance of the server's
* certificate. When communicating to either the same or another
* WebLogic Server with two-way SSL, the originating server's
* certificate will be verified against the client root CA list in
* the receiving WebLogic Server.
*
* @author Copyright 1999-2002 by BEA Systems, Inc. All Rights Reserved.
*/

www.ignousolvedassignments.com

public class SSLClient {


public void SSLClient() {}
public static void main (String [] argv)
throws IOException {
if ((!((argv.length == 4) || (argv.length == 5))) ||
(!(argv[0].equals("wls")))
){
System.out.println("example: java SSLClient wls
server2.weblogic.com 80 443 /examplesWebApp/SnoopServlet.jsp");
System.exit(-1);
}
try {
System.out.println("----");
if (argv.length == 5) {
if (argv[0].equals("wls"))
wlsURLConnect(argv[1], argv[2], argv[3], argv[4], System.out);
} else { // for null query, default page returned...
if (argv[0].equals("wls"))
wlsURLConnect(argv[1], argv[2], argv[3], null, System.out);
}
System.out.println("----");
} catch (Exception e) {
e.printStackTrace();
printSecurityProviders(System.out);
System.out.println("----");

www.ignousolvedassignments.com

}
}
private static void printOut(String outstr, OutputStream stream) {
if (stream instanceof PrintStream) {
((PrintStream)stream).print(outstr);
return;
} else if (stream instanceof ServletOutputStream) {
try {
((ServletOutputStream)stream).print(outstr);
return;
} catch (IOException ioe) {
System.out.println(" IOException: "+ioe.getMessage());
}
}
System.out.print(outstr);
}
private static void printSecurityProviders(OutputStream stream) {
StringBuffer outstr = new StringBuffer();
outstr.append(" JDK Protocol Handlers and Security Providers:\n");
outstr.append(" java.protocol.handler.pkgs - ");
outstr.append(System.getProperties().getProperty(
"java.protocol.handler.pkgs"));
outstr.append("\n");
Provider[] provs = java.security.Security.getProviders();
for (int i=0; i<provs.length; i++)

www.ignousolvedassignments.com

outstr.append(" provider[" + i + "] - " + provs[i].getName() +


" - " + provs[i].getInfo() + "\n");
outstr.append("\n");
printOut(outstr.toString(), stream);
}
private static void tryConnection(java.net.HttpURLConnection connection,
OutputStream stream)
throws IOException {
connection.connect();
String responseStr = "\t\t" +
connection.getResponseCode() + " -- " +
connection.getResponseMessage() + "\n\t\t" +
connection.getContent().getClass().getName() + "\n";
connection.disconnect();
printOut(responseStr, stream);
}
/*
* This method contains an example of how to use the URL and
* URLConnection objects to create a new SSL connection, using
* WebLogic SSL client classes.
*/
public static void wlsURLConnect(String host, String port,
String sport, String query,
OutputStream out) {
try {

www.ignousolvedassignments.com

if (query == null)
query = "/examplesWebApp/index.jsp";
// The following protocol registration is taken care of in the
// normal startup sequence of WebLogic. It can be turned off
// using the console SSL panel.
//
// We duplicate it here as a proof of concept in a stand alone
// java application. Using the URL object for a new connection
// inside of WebLogic would work as expected.
java.util.Properties p = System.getProperties();
String s = p.getProperty("java.protocol.handler.pkgs");
if (s == null) {
s = "weblogic.net";
} else if (s.indexOf("weblogic.net") == -1) {
s += "|weblogic.net";
}
p.put("java.protocol.handler.pkgs", s);
System.setProperties(p);
printSecurityProviders(out);
// end of protocol registration
printOut(" Trying a new HTTP connection using WLS client classes \n\thttp://" + host + ":" + port + query + "\n", out);
URL wlsUrl = null;
try {
wlsUrl = new URL("http", host, Integer.valueOf(port).intValue(), query);

www.ignousolvedassignments.com

weblogic.net.http.HttpURLConnection connection =
new weblogic.net.http.HttpURLConnection(wlsUrl);
tryConnection(connection, out);
} catch (Exception e) {
printOut(e.getMessage(), out);
e.printStackTrace();
printSecurityProviders(System.out);
System.out.println("----");
}
printOut(" Trying a new HTTPS connection using WLS client classes \n\thttps://" + host + ":" + sport + query + "\n", out);
wlsUrl = new URL("https", host, Integer.valueOf(sport).intValue(), query);
weblogic.net.http.HttpsURLConnection sconnection =
new weblogic.net.http.HttpsURLConnection(wlsUrl);
// Only when you have configured a two-way SSL connection, i.e.
// Client Certs Requested and Enforced is selected in Two Way Client Cert
// Behavior field in the Server Attributes
// that are located on the Advanced Options pane under Keystore & SSL
// tab on the server, the following private key and the client cert chain
// is used.
File ClientKeyFile = new File ("clientkey.pem");
File ClientCertsFile = new File ("client2certs.pem");
if (!ClientKeyFile.exists() || !ClientCertsFile.exists())
{
System.out.println("Error : clientkey.pem/client2certs.pem

www.ignousolvedassignments.com

is not present in this directory.");


System.out.println("To create it run - ant createmycerts.");
System.exit(0);
}
InputStream [] ins = new InputStream[2];
ins[0] = new FileInputStream("client2certs.pem");
ins[1] = new FileInputStream("clientkey.pem");
String pwd = "clientkey";
sconnection.loadLocalIdentity(ins[0], ins[1], pwd.toCharArray());
tryConnection(sconnection, out);
} catch (Exception ioe) {
printOut(ioe.getMessage(), out);
ioe.printStackTrace();
}
}
}

(ii) Describe the components of a digital certificate .


Solution :
Digital Certificates are part of a technology called Public Key Infrastructure or PKI. Digital certificates
have been described as virtual ID cards. This is a useful analogy. There are many ways that digital
certificates and ID cards really are the same. Both ID cards and client digital certificates contain
information aboutyou, such as your name, and information about the organization that issued the
certificate or card to you.
Universities generally issue institutional ID cards only after ensuring or validating that you are a
bona fide student, faculty, or staff member. In PKI terms, this is called the registration process
verifying that you are eligible to receive a certificate and verifying the information in it. Similar to an

www.ignousolvedassignments.com

important ID card, once a digital certificate is issued, it should be managed with care. Just as you
would not lend someone else your ID card allowing entry into a secure facility, you should never
lend someone your digital certificate. If your certificate or ID card is lost or stolen, it should be
reported to the issuing office so that it can be invalidated and a new one issued.
How is a digital certificate created?
In creating digital certificates a unique cryptographic key pair is generated. One of these keys is
referred to as a public key and the other as a private key. Then the certification authority
generally on your campuscreates a digital certificate by combining information about you and the
issuing organization with the public key and digitally signing the whole thing. This isvery much like
an organizations ID office filling out an ID card for you and then signing it to make it official.
In PKI terms, the public key for an individual is put into a digital document, along with information
about that individual, and then the digital document is signed by the organizations certification
authority. This signed document can be transmitted to anyone and used to identify the subject of
the certificate.
However, the private key of the original key pair must be securely managed and never given to
anyone else. As the private key is a very large prime number, it is not something an individual
memorizes; rather, the private key must be stored on some device, such as a laptop computer, PDA,
or USB key ring.
If you send a copy of your certificate to another computer to authenticate yourself, what keeps
someone with access to that computer from reusing it later to pretend to be you? Unlike an ID card
which is valuable by itself, the digital certificate is useless without the associated private key. That is
why protecting the private key is so important. The private key must never be given to anyone else
nor left somewhere outside of control by the owner.
An added value of digital certificates is that they provide a higher level of security than what we
currently have with PIN and password combinations. Users still use passwords, but only on their
local computer to protect their digital certificates. If one loses the device on which a digital
certificate is stored, a person holding the certificate would still need the password to unlock the
certificate

Q 8:(i) Assume that there is a table named Fecully in Oracle with fields
(f_id, f_name, f_room, f_ department). Write a code using servlet
which will display all the fields of a faculty table is tabular manner.
Solution :

www.ignousolvedassignments.com

import java.sql.*;
import org.apache.commons.dbcp.BasicDataSource;
public class GetAllRowsDBCP {
public static void main(String[] args) {
System.out.println("Getting All Rows from a table!\n");
BasicDataSource bds = new BasicDataSource();
bds.setDriverClassName("com.mysql.jdbc.Driver");
bds.setUrl("jdbc:mysql://localhost:3306/mydb");
bds.setUsername("root");
bds.setPassword("");
try {
Connection con = bds.getConnection();
try {
Statement st = con.createStatement();
ResultSet res = st.executeQuery("SELECT * FROM faculty");
System.out.println("faculty id: " + "\t\t" + "faculty name: "+ "\t\t" +faculty room+ "\t\t" +faculty
department);
while (res.next()) {
String fid = res.getInt("f_id");
String fname = res.getString("f_name");
String froom = res.getString("f_room")
String fdept = res.getString("f_department");
System.out.println(fid + "\t\t" + fname+ "\t\t" +froom+ "\t\t" +fdept);
}
con.close();

www.ignousolvedassignments.com

} catch (SQLException s) {
System.out.println("SQL code does not execute.");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

(ii) Describe 5 benefits of EJB architecture to an application developer.


Solution :
Benefits of EJB technology
Some of the benefits of using enterprise beans are:
Component portability
The EJB architecture provides a simple, elegant component container model. Java server
components can be developed once and deployed in any EJB-compliant server.
Architecture independence
The EJB architecture is independent of any specific platform, proprietary protocol, or middleware
infrastructure. Applications developed for one platform can be redeployed on other platforms.
Developer productivity
The EJB architecture improves the productivity of application developers by standardizing and
automating the use of complex infrastructure services such as transaction management and
security checking. Developers can create complex applications by focusing on business logic
rather than environmental and transactional issues.
Customization

www.ignousolvedassignments.com
Enterprise bean applications can be customized without access to the source code. Application
behaviour and runtime settings are defined through attributes that can be changed when the
enterprise bean is deployed.
Multitier technology
The EJB architecture overlays existing infrastructure services.
Versatility and scalability
The EJB architecture can be used for small-scale or large-scale business transactions. As
processing requirements grow, the enterprise beans can be migrated to more powerful operating
environments.
In addition to these general benefits of using EJB technology, there are specific benefits of using
enterprise beans with CICS. For example:
Superior workload management
You can balance client connections across a set of cloned listener regions.
You can use CICSPlex SM or the CICS distributed routing program to balance OTS transactions
across a set of cloned AORs.
Superior transaction management
Enterprise beans in a CICS EJB server benefit from CICS transaction management servicesfor
example:
Shunting
System log management
Performance optimizations
Runaway detection
Deadlock detection
TCLASS management
Monitoring and statistics

www.ignousolvedassignments.com
Q9: (i) List the features of Semantic database.
Solution :
Semantic Database Design
Optimal Processing Algorithms
Efficient Storage Techniques
Application Schema Design Methodology
ODBC/SQL Compliance
Semantic SQL
Internet/WEB Enabled
Exceptional usability and flexibility
Shorter application design and programming cycle
Provides user control via an intuitive structure of information
Empowers end-users to pose complex ad hoc decision support queries
Superior efficiency-Highest level of optimization
Massive reduction in storage size for large applications, such as Data Warehouses
Directly supports conceptual data model of the enterprise
Internet-integrated
Semantic view mirrors real world
Complex relations made simple
Queries made simple, very short
Shorter application programs
No restrictions on data
Very efficient full indexing
Full indexing -- indexing on every attribute and relationship
Flexible classification of objects

www.ignousolvedassignments.com
Lazy queries
Compaction of sparse data
No keys are needed
Automatic consistency of database
Better concurrency control
Multi-processor parallelism
Interoperability (ODBC, SQL)
No tuning required
Benchmarks

(ii) What are the challenges in designing multimedia database?


Solution :
Many inherent characteristics of multimedia data have direct and indirect impacts on the design
of MMDBs. These include : the huge size of MMDBs, temporal nature, richness of content, complexity of
representation and subjective interpretation. The major challenges in designing multimedia databases
arise from several requirements they need to satisfy such as the following:
1. Manage different types of input, output, and storage devices. Data input can be from a variety of
devices such as scanners, digital camera for images, microphone, MIDI devices for audio, video cameras.
Typical output devices are high-resolution monitors for images and video, and speakers for audio.
2. Handle a variety of data compression and storage formats. The data encoding has a variety of formats
even within a single application. For instance, in medical applications, the MRI images of brain has
lossless or very stringent quality of lossy coding technique, while the X-ray images of bones can be less
stringent. Also, the radiological image data, the ECG data, other patient data, etc. have widely varying
formats.
3. Support different computing platforms and operating systems. Different users operate computers and
devices suited to their needs and tastes. But they need the same kind of user-level view of the database.
4. Integrate different data models. Some data such as numeric and textual data are best handled using a
relational database model, while some others such as video documents are better handled using an
object-oriented database model. So these two models should coexist together in MMDBs.

www.ignousolvedassignments.com
5. Offer a variety of user-friendly query systems suited to different kinds of media. From a user point of
view, easy-to-use queries and fast and accurate retrieval of information is highly desirable. The query for
the same item can be in different forms. For example, a portion of interest in a video can be queried by
using either
1) a few sample video frames as an example,
2) a clip of the corresponding audio track or
3) a textual description using keywords.
6. Handle different kinds of indices. The inexact and subjective nature of multimedia data has rendered
keyword-based indices and exact and range searches used in traditional databases ineffective. For
example, the retrieval of records of persons based on social security number is precisely defined, but the
retrieval of records of persons having certain facial features from a database of facial images requires,
content-based queries and similarity-based retrievals. This requires indices that are content dependent,
in addition to key-word indices.
7. Develop measures of data similarity that correspond well with perceptual similarity. Measures of
similarity for different media types need to be quantified to correspond well with the perceptual
similarity of objects of those data types. These need to be incorporated into the search process
8. Provide transparent view of geographically distributed data. MMDBs are likely to be a distributed
nature. The media data resides in many different storage units possibly spread out geographically. This
is partly due to the changing nature of computation and computing resources from centralized to
networked and distributed.
9. Adhere to real-time constraints for the transmission of media data. Video and audio are inherently
temporal in nature. For example, the frames of a video need to be presented at the rate of at least 30
frames/sec. for the eye to perceive continuity in the video.
10. Synchronize different media types while presenting to user. It is likely that different media types
corresponding to a single multimedia object are stored in different formats, on different devices, and
have different rates of transfer. Thus they need to be periodically synchronized for presentation.
The recent growth in using multimedia data in applications has been phenomenal. Multimedia
databases are essential for efficient management and effective use of huge amounts of data. The
diversity of applications using multimedia data, the rapidly changing technology, and the inherent
complexities in the semantic representation, interpretation and comparison for similarity pose many
challenges. MMDBs are still in their infancy. Today's MMDBs are closely bound to narrow application
areas. The experiences acquired from developing and using novel multimedia applications will help
advance the multimedia database technology.

www.ignousolvedassignments.com
For More Ignou Solved Assignments Please Visit - www.ignousolvedassignments.com
Connect on Facebook www.facebook.com/IgnouSolvedAssignmentscom
Subscribe and Get Solved Assignments Direct to your Inbox http://feedburner.google.com/fb/a/mailverify?uri=ignousolvedassignments_com

Вам также может понравиться