Skip to main content
  1. Resources/
  2. Study Materials/
  3. Information Technology Engineering/
  4. IT Semester 5/
  5. Advanced Java Programming (4351603)/

એડવાન્સ જાવા પ્રોગ્રામિંગ (4351603) - સમર 2025 સોલ્યુશન

·
Study-Material Solutions Advanced-Java 4351603 2025 Summer Gujarati
Milav Dabgar
Author
Milav Dabgar
Experienced lecturer in the electrical and electronic manufacturing industry. Skilled in Embedded Systems, Image Processing, Data Science, MATLAB, Python, STM32. Strong education professional with a Master’s degree in Communication Systems Engineering from L.D. College of Engineering - Ahmedabad.
Table of Contents

પ્રશ્ન 1(અ) [3 માર્ક્સ]
#

AWT અને Swing વચ્ચેનો તફાવત લખો.

જવાબ:

ટેબલ: AWT વિ. Swing તુલના

વિશેષતાAWTSwing
પ્લેટફોર્મપ્લેટફોર્મ આધારિતપ્લેટફોર્મ સ્વતંત્ર
કોમ્પોનેન્ટ્સહેવી વેઇટલાઇટ વેઇટ
લુક એન્ડ ફીલનેટિવ OS લુકપ્લગેબલ લુક એન્ડ ફીલ
પ્રદર્શનઝડપીAWT કરતાં ધીમું
  • AWT: નેટિવ OS કોમ્પોનેન્ટ્સ વાપરે છે
  • Swing: જાવાના પોતાના કોમ્પોનેન્ટ્સ વાપરે છે
  • પ્લગેબિલિટી: Swing કસ્ટમાઇઝેબલ UI સપોર્ટ કરે છે

મેમરી ટ્રીક: “Swing સ્માર્ટ છે - પ્લેટફોર્મ સ્વતંત્ર અને પ્લગેબલ”

પ્રશ્ન 1(બ) [4 માર્ક્સ]
#

વિવિધ Layout Manager ની યાદી બનાવો. Flow Layout manager ને ઉદાહરણ સાથે સમજાવો.

જવાબ:

Layout Manager ની યાદી:

  • FlowLayout: ડાબેથી જમણે ગોઠવણી
  • BorderLayout: ઉત્તર, દક્ષિણ, પૂર્વ, પશ્ચિમ, કેન્દ્ર
  • GridLayout: સમાન કદના ગ્રિડ સેલ્સ
  • CardLayout: કોમ્પોનેન્ટ્સનો સ્ટેક
  • BoxLayout: એક પંક્તિ અથવા કોલમ

FlowLayout ઉદાહરણ:

import javax.swing.*;
import java.awt.*;

public class FlowExample extends JFrame {
    public FlowExample() {
        setLayout(new FlowLayout());
        add(new JButton("બટન 1"));
        add(new JButton("બટન 2"));
        add(new JButton("બટન 3"));
        setSize(300, 100);
        setVisible(true);
    }
}

મેમરી ટ્રીક: “પાણીની જેમ વહે - ડાબેથી જમણે”

પ્રશ્ન 1(ક) [7 માર્ક્સ]
#

ચેકબૉક્સનો ઉપયોગ કરીને Swing program લખો જે વપરાશકર્તાઓને વિકલ્પોની સૂચિમાંથી બહુવિધ વિકલ્પો પસંદ કરવાની મંજૂરી આપે અને પસંદ કરેલ વિકલ્પો દર્શાવે.

જવાબ:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class CheckboxExample extends JFrame implements ItemListener {
    JCheckBox java, python, cpp;
    JTextArea display;
    
    public CheckboxExample() {
        setLayout(new FlowLayout());
        
        java = new JCheckBox("Java");
        python = new JCheckBox("Python");
        cpp = new JCheckBox("C++");
        
        java.addItemListener(this);
        python.addItemListener(this);
        cpp.addItemListener(this);
        
        display = new JTextArea(5, 20);
        
        add(java);
        add(python);
        add(cpp);
        add(new JScrollPane(display));
        
        setSize(300, 200);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }
    
    public void itemStateChanged(ItemEvent e) {
        String result = "પસંદ કરેલ: ";
        if(java.isSelected()) result += "Java ";
        if(python.isSelected()) result += "Python ";
        if(cpp.isSelected()) result += "C++ ";
        display.setText(result);
    }
    
    public static void main(String[] args) {
        new CheckboxExample();
    }
}

મુખ્ય વિશેષતાઓ:

  • બહુવિધ પસંદગી: વપરાશકર્તાઓ બહુવિધ ચેકબૉક્સ પસંદ કરી શકે
  • રીઅલ-ટાઇમ ડિસ્પ્લે: પસંદ કરેલ આઇટમ્સ તરત જ દર્શાવે
  • ItemListener: ચેકબૉક્સ સ્ટેટ બદલાવ હેન્ડલ કરે

મેમરી ટ્રીક: “બહુવિધ ચેક કરો, બધું દર્શાવો”

પ્રશ્ન 1(ક) OR [7 માર્ક્સ]
#

વિવિધ swing components ની મદદથી Java program લખો.

જવાબ:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class SwingComponents extends JFrame implements ActionListener {
    JTextField nameField;
    JComboBox<String> cityCombo;
    JRadioButton male, female;
    JButton submit;
    JTextArea display;
    
    public SwingComponents() {
        setLayout(new FlowLayout());
        
        add(new JLabel("નામ:"));
        nameField = new JTextField(15);
        add(nameField);
        
        add(new JLabel("શહેર:"));
        cityCombo = new JComboBox<>(new String[]{"મુંબઈ", "દિલ્હી", "બેંગ્લોર"});
        add(cityCombo);
        
        ButtonGroup gender = new ButtonGroup();
        male = new JRadioButton("પુરુષ");
        female = new JRadioButton("સ્ત્રી");
        gender.add(male);
        gender.add(female);
        add(male);
        add(female);
        
        submit = new JButton("સબમિટ");
        submit.addActionListener(this);
        add(submit);
        
        display = new JTextArea(5, 25);
        add(new JScrollPane(display));
        
        setSize(400, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }
    
    public void actionPerformed(ActionEvent e) {
        String name = nameField.getText();
        String city = (String)cityCombo.getSelectedItem();
        String gender = male.isSelected() ? "પુરુષ" : "સ્ત્રી";
        
        display.setText("નામ: " + name + "\nશહેર: " + city + "\nલિંગ: " + gender);
    }
    
    public static void main(String[] args) {
        new SwingComponents();
    }
}

વપરાયેલ કોમ્પોનેન્ટ્સ:

  • JTextField: ટેક્સ્ટ ઇનપુટ
  • JComboBox: ડ્રોપડાઉન પસંદગી
  • JRadioButton: એક પસંદગી
  • JButton: એક્શન ટ્રિગર

મેમરી ટ્રીક: “ટેક્સ્ટ, કોમ્બો, રેડિયો, બટન - સંપૂર્ણ ફોર્મ”

પ્રશ્ન 2(અ) [3 માર્ક્સ]
#

ઉદાહરણ સાથે Swing controls સમજાવો.

જવાબ:

ટેબલ: સામાન્ય Swing Controls

Controlહેતુઉદાહરણ
JButtonક્લિક એક્શન્સnew JButton("મને ક્લિક કરો")
JTextFieldટેક્સ્ટ ઇનપુટnew JTextField(10)
JLabelટેક્સ્ટ દર્શાવવુંnew JLabel("નમસ્કાર")
JCheckBoxબહુવિધ પસંદગીnew JCheckBox("વિકલ્પ")

મૂળભૂત ઉદાહરણ:

JFrame frame = new JFrame();
JButton btn = new JButton("સબમિટ");
frame.add(btn);
frame.setSize(200, 100);
frame.setVisible(true);

મેમરી ટ્રીક: “બટન, ટેક્સ્ટ, લેબલ, ચેક - મૂળભૂત ચાર”

પ્રશ્ન 2(બ) [4 માર્ક્સ]
#

JDBC drivers ની યાદી બનાવો અને કોઈપણ બે સમજાવો.

જવાબ:

JDBC Drivers ની યાદી:

  1. Type 1: JDBC-ODBC Bridge
  2. Type 2: Native API Driver
  3. Type 3: Network Protocol Driver
  4. Type 4: Thin Driver

વિગતવાર સમજૂતી:

Type 1 - JDBC-ODBC Bridge:

  • હેતુ: JDBC કોલ્સને ODBC કોલ્સમાં રૂપાંતરિત કરે
  • ફાયદો: કોઈપણ ODBC ડેટાબેસ સાથે કામ કરે
  • નુકસાન: પ્લેટફોર્મ આધારિત, ધીમી કાર્યક્ષમતા

Type 4 - Thin Driver:

  • હેતુ: શુદ્ધ Java driver, સીધો ડેટાબેસ કમ્યુનિકેશન
  • ફાયદો: પ્લેટફોર્મ સ્વતંત્ર, શ્રેષ્ઠ કાર્યક્ષમતા
  • નુકસાન: ડેટાબેસ વિશિષ્ટ

મેમરી ટ્રીક: “Bridge-Native-Network-Thin: 1-2-3-4”

પ્રશ્ન 2(ક) [7 માર્ક્સ]
#

Object Relational Mapping (ORM) સમજાવો તથા તેના ફાયદા અને tools સમજાવો.

જવાબ:

Object Relational Mapping (ORM): ORM એ તકનીક છે જે ઑબ્જેક્ટ-ઓરિએન્ટેડ પ્રોગ્રામિંગ કન્સેપ્ટ્સને રિલેશનલ ડેટાબેસ સ્ટ્રક્ચર સાથે મેપ કરે છે.

graph LR
    A[Java Object] --> B[ORM Framework]
    B --> C[Database Table]
    C --> B
    B --> A

ટેબલ: ORM ફાયદા

ફાયદોવર્ણન
ઉત્પાદકતાકોડિંગ સમય ઘટાડે
જાળવણીસુધારા અને અપડેટ કરવા સરળ
ડેટાબેસ સ્વતંત્રતાડેટાબેસ સરળતાથી બદલી શકાય
ઑબ્જેક્ટ-ઓરિએન્ટેડOOP કન્સેપ્ટ્સ સાથે કામ કરે

લોકપ્રિય ORM Tools:

  • Hibernate: સૌથી લોકપ્રિય Java ORM
  • JPA: Java Persistence API સ્ટાન્ડર્ડ
  • MyBatis: SQL મેપિંગ ફ્રેમવર્ક
  • EclipseLink: રેફરન્સ ઇમ્પ્લિમેન્ટેશન

વર્કિંગ મોડલ:

  • ObjectsORMTables
  • ઑટોમેટિક SQL જનરેશન
  • Type-safe queries

મેમરી ટ્રીક: “Objects Relate Magically”

પ્રશ્ન 2(અ) OR [3 માર્ક્સ]
#

ઉદાહરણ સાથે MOUSEEVENT અને MOUSELISTENER interface સમજાવો.

જવાબ:

MouseEvent: જ્યારે કોમ્પોનેન્ટ્સ પર માઉસ એક્શન્સ થાય ત્યારે જનરેટ થાય છે.

MouseListener Interface Methods:

  • mouseClicked(): માઉસ બટન ક્લિક
  • mousePressed(): માઉસ બટન દબાવ્યું
  • mouseReleased(): માઉસ બટન છોડ્યું
  • mouseEntered(): માઉસ કોમ્પોનેન્ટમાં પ્રવેશ
  • mouseExited(): માઉસ કોમ્પોનેન્ટમાંથી બહાર

ઉદાહરણ:

public class MouseExample extends JFrame implements MouseListener {
    JLabel label;
    
    public MouseExample() {
        label = new JLabel("મને ક્લિક કરો!");
        label.addMouseListener(this);
        add(label);
        setSize(200, 100);
        setVisible(true);
    }
    
    public void mouseClicked(MouseEvent e) {
        label.setText("ક્લિક થયું!");
    }
    
    // અન્ય methods...
}

મેમરી ટ્રીક: “Click-Press-Release-Enter-Exit”

પ્રશ્ન 2(બ) OR [4 માર્ક્સ]
#

JDBC API ના components ની સૂચિ બનાવો અને સમજાવો.

જવાબ:

ટેબલ: JDBC API Components

Componentહેતુમુખ્ય Classes
DriverManagerડ્રાઇવર્સ મેનેજ કરેDriverManager.getConnection()
Connectionડેટાબેસ કનેક્શનConnection conn
StatementSQL એક્ઝિક્યુશનStatement stmt
ResultSetક્વેરી પરિણામોResultSet rs

Component વિગતો:

  • DriverManager: ડેટાબેસ સાથે કનેક્શન સ્થાપિત કરે
  • Connection: ડેટાબેસ સેશન રજૂ કરે
  • Statement: SQL ક્વેરીઓ એક્ઝિક્યુટ કરે
  • ResultSet: ક્વેરી પરિણામો સાચવે

મૂળભૂત ઉપયોગ:

Connection conn = DriverManager.getConnection(url, user, pass);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM users");

મેમરી ટ્રીક: “ડ્રાઇવર કનેક્ટ કરે, સ્ટેટમેન્ટ એક્ઝિક્યુટ કરે, ResultSet રિટર્ન કરે”

પ્રશ્ન 2(ક) OR [7 માર્ક્સ]
#

હાઇબર્નેટનું આર્કિટેક્ચર દોરો અને સમજાવો.

જવાબ:

graph TB
    A[Java Application] --> B[Hibernate API]
    B --> C[Configuration]
    B --> D[SessionFactory]
    D --> E[Session]
    E --> F[Transaction]
    E --> G[Query]
    E --> H[Criteria]
    I[Mapping Files] --> D
    J[hibernate.cfg.xml] --> C
    E --> K[Database]

આર્કિટેક્ચર કોમ્પોનેન્ટ્સ:

ટેબલ: Hibernate આર્કિટેક્ચર

Componentકાર્ય
Configurationકોન્ફિગ ફાઇલો વાંચે
SessionFactorySession ઑબ્જેક્ટ્સ બનાવે
Sessionડેટાબેસ ઇન્ટરફેસ
Transactionટ્રાન્ઝેક્શન મેનેજ કરે
QueryHQL/SQL ક્વેરીઓ

લેયર વર્ણન:

  • Application Layer: Java ઑબ્જેક્ટ્સ અને બિઝનેસ લોજિક
  • Hibernate Layer: ORM મેપિંગ અને સેશન મેનેજમેન્ટ
  • Database Layer: વાસ્તવિક ડેટા સ્ટોરેજ

મુખ્ય વિશેષતાઓ:

  • ઑટોમેટિક ટેબલ ક્રિએશન: એન્ટિટી ક્લાસીસ આધારે
  • HQL સપોર્ટ: ઑબ્જેક્ટ-ઓરિએન્ટેડ ક્વેરી લેંગ્વેજ
  • કેશિંગ: પ્રથમ અને દ્વિતીય સ્તરની કેશિંગ

મેમરી ટ્રીક: “Config-Factory-Session-Transaction: CFST”

પ્રશ્ન 3(અ) [3 માર્ક્સ]
#

Servlet ની વિવિધ વિશેષતાઓ સમજાવો.

જવાબ:

ટેબલ: Servlet વિશેષતાઓ

વિશેષતાવર્ણન
પ્લેટફોર્મ સ્વતંત્રJVM સાથે કોઈપણ OS પર ચાલે
કાર્યક્ષમતાCGI કરતાં વધુ સારી
મજબૂતJVM મેનેજ્ડ મેમરી
સુરક્ષિતJava સિક્યોરિટી ફીચર્સ

મુખ્ય વિશેષતાઓ:

  • સર્વર-સાઇડ પ્રોસેસિંગ: ક્લાયન્ટ રિક્વેસ્ટ્સ હેન્ડલ કરે
  • પ્રોટોકોલ સ્વતંત્ર: HTTP, FTP, SMTP સપોર્ટ
  • વિસ્તરણીય: સરળતાથી વિસ્તૃત કરી શકાય
  • પોર્ટેબલ: એકવાર લખો, ગમે ત્યાં ચલાવો

મેમરી ટ્રીક: “Platform Performance Robust Secure”

પ્રશ્ન 3(બ) [4 માર્ક્સ]
#

Servlet life cycle સમજાવો.

જવાબ:

graph TD
    A[Servlet Loading] --> B[Servlet Instantiation]
    B --> C[init Method]
    C --> D[service Method]
    D --> E{વધુ Requests?}
    E -->|હા| D
    E -->|ના| F[destroy Method]
    F --> G[Servlet Unloaded]

લાઇફ સાઇકલ તબક્કાઓ:

ટેબલ: Servlet લાઇફ સાઇકલ

તબક્કોMethodહેતુ
લોડિંગક્લાસ લોડિંગJVM servlet ક્લાસ લોડ કરે
ઇન્સ્ટન્શિએશનConstructorservlet ઑબ્જેક્ટ બનાવે
ઇનિશિયલાઇઝેશનinit()એકવારની સેટઅપ
રિક્વેસ્ટ પ્રોસેસિંગservice()રિક્વેસ્ટ્સ હેન્ડલ કરે
વિનાશdestroy()રિસોર્સ સાફ કરે

Method વિગતો:

  • init(): servlet લોડ થાય ત્યારે એકવાર કોલ થાય
  • service(): દરેક રિક્વેસ્ટ માટે કોલ થાય
  • destroy(): servlet અનલોડ થાય ત્યારે કોલ થાય

મેમરી ટ્રીક: “Load-Create-Init-Service-Destroy”

પ્રશ્ન 3(ક) [7 માર્ક્સ]
#

Servlet માં session tracking ઉદાહરણ સાથે સમજાવો.

જવાબ:

Session Tracking પદ્ધતિઓ:

ટેબલ: Session Tracking તકનીકો

પદ્ધતિવર્ણનફાયદા/નુકસાન
Cookiesક્લાયન્ટ-સાઇડ સ્ટોરેજસરળ/ગોપનીયતાના મુદ્દા
URL Rewritingsession ID ઉમેરવુંસાર્વત્રિક/કદરૂપ URLs
Hidden Fieldsફોર્મ-આધારિત ટ્રેકિંગસરળ/ફોર્મ પર આધારિત
HttpSessionસર્વર-સાઇડ ઑબ્જેક્ટસુરક્ષિત/મેમરી ઉપયોગ

HttpSession ઉદાહરણ:

protected void doGet(HttpServletRequest request, 
                    HttpServletResponse response) {
    HttpSession session = request.getSession();
    
    // ડેટા સ્ટોર કરવું
    session.setAttribute("username", "john");
    
    // ડેટા મેળવવું
    String user = (String) session.getAttribute("username");
    
    // Session ની માહિતી
    String sessionId = session.getId();
    boolean isNew = session.isNew();
    
    PrintWriter out = response.getWriter();
    out.println("વપરાશકર્તા: " + user);
    out.println("Session ID: " + sessionId);
}

Session મેનેજમેન્ટ:

  • બનાવટ: request.getSession()
  • સ્ટોરેજ: session.setAttribute()
  • પુનઃપ્રાપ્તિ: session.getAttribute()
  • રદ કરવું: session.invalidate()

મેમરી ટ્રીક: “Cookies-URLs-Hidden-HttpSession: CUHS”

પ્રશ્ન 3(અ) OR [3 માર્ક્સ]
#

Servlet life cycle ની methods સમજાવો.

જવાબ:

લાઇફ સાઇકલ Methods:

ટેબલ: Servlet લાઇફ સાઇકલ Methods

Methodક્યારે કોલ થાયParameters
init()Servlet ઇનિશિયલાઇઝેશનServletConfig config
service()દરેક રિક્વેસ્ટServletRequest req, ServletResponse res
destroy()Servlet cleanupકોઈ નહીં

Method વિગતો:

  • init(ServletConfig config): ઇનિશિયલાઇઝેશન કોડ, ડેટાબેસ કનેક્શન્સ
  • service(req, res): રિક્વેસ્ટ હેન્ડલિંગ, બિઝનેસ લોજિક
  • destroy(): cleanup કોડ, કનેક્શન્સ બંધ કરવા

ઉદાહરણ:

public void init(ServletConfig config) {
    // ડેટાબેસ કનેક્શન ઇનિશિયલાઇઝ કરો
}

public void service(ServletRequest req, ServletResponse res) {
    // રિક્વેસ્ટ હેન્ડલ કરો
}

public void destroy() {
    // કનેક્શન્સ બંધ કરો
}

મેમરી ટ્રીક: “Init-Service-Destroy: ISD”

પ્રશ્ન 3(બ) OR [4 માર્ક્સ]
#

ઉદાહરણ સાથે HTTPSERVLET class સમજાવો.

જવાબ:

HttpServlet Class: HTTP પ્રોટોકોલ માટે ખાસ કરીને GenericServlet ને વિસ્તૃત કરતો abstract class.

HTTP Methods:

ટેબલ: HttpServlet Methods

MethodHTTP Verbહેતુ
doGet()GETડેટા પુનઃપ્રાપ્ત કરવું
doPost()POSTડેટા સબમિટ કરવું
doPut()PUTડેટા અપડેટ કરવું
doDelete()DELETEડેટા દૂર કરવું

ઉદાહરણ:

public class MyServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request,
                        HttpServletResponse response) {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<h1>GET Request</h1>");
    }
    
    protected void doPost(HttpServletRequest request,
                         HttpServletResponse response) {
        String name = request.getParameter("name");
        response.getWriter().println("નમસ્કાર " + name);
    }
}

મુખ્ય વિશેષતાઓ:

  • HTTP-વિશિષ્ટ: વેબ એપ્લિકેશન માટે ડિઝાઇન કરેલ
  • Method handling: વિવિધ HTTP verbs માટે અલગ methods
  • Request/Response: HttpServletRequest અને HttpServletResponse

મેમરી ટ્રીક: “Get-Post-Put-Delete: GPPD”

પ્રશ્ન 3(ક) OR [7 માર્ક્સ]
#

GET અને POST method નો તફાવત લખો અને POST method નો ઉપયોગ કરીને Servlet બનવા માટેનો java code લખો.

જવાબ:

ટેબલ: GET વિ. POST તુલના

વિશેષતાGETPOST
ડેટા સ્થાનURL parametersRequest body
ડેટા મર્યાદામર્યાદિત (~2KB)અમર્યાદિત
સુરક્ષાઓછી સુરક્ષિતવધુ સુરક્ષિત
કેશિંગકેશેબલકેશેબલ નથી
બુકમાર્કિંગશક્યશક્ય નથી

POST Method Servlet ઉદાહરણ:

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class LoginServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request,
                         HttpServletResponse response) 
                         throws ServletException, IOException {
        
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        
        // ફોર્મ ડેટા મેળવવું
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        
        // ઓળખપત્રો ચકાસવા
        if("admin".equals(username) && "123".equals(password)) {
            out.println("<h2>લોગિન સફળ!</h2>");
            out.println("<p>આવકાર છે " + username + "</p>");
        } else {
            out.println("<h2>લોગિન નિષ્ફળ!</h2>");
            out.println("<p>અયોગ્ય ઓળખપત્રો</p>");
        }
        
        out.close();
    }
}

HTML ફોર્મ:

<form method="post" action="LoginServlet">
    વપરાશકર્તા નામ: <input type="text" name="username"><br>
    પાસવર્ડ: <input type="password" name="password"><br>
    <input type="submit" value="લોગિન">
</form>

મુખ્ય તફાવતો:

  • GET: ડેટા URL માં, દેખાય છે, મર્યાદિત કદ
  • POST: ડેટા body માં, છુપાયેલ, અમર્યાદિત કદ

મેમરી ટ્રીક: “GET મેળવે, POST સુરક્ષિત કરે”

પ્રશ્ન 4(અ) [3 માર્ક્સ]
#

JSP Implicit Objects ની યાદી બનાવો અને કોઈપણ બે સમજાવો.

જવાબ:

JSP Implicit Objects યાદી:

  1. request (HttpServletRequest)
  2. response (HttpServletResponse)
  3. session (HttpSession)
  4. application (ServletContext)
  5. out (JspWriter)
  6. page (Object)
  7. pageContext (PageContext)
  8. config (ServletConfig)
  9. exception (Throwable)

વિગતવાર સમજૂતી:

request Object:

  • પ્રકાર: HttpServletRequest
  • હેતુ: રિક્વેસ્ટ ડેટા અને parameters ને એક્સેસ કરવું
  • ઉદાહરણ: String name = request.getParameter("name");

session Object:

  • પ્રકાર: HttpSession
  • હેતુ: રિક્વેસ્ટ્સ પર વપરાશકર્તા-વિશિષ્ટ ડેટા સ્ટોર કરવું
  • ઉદાહરણ: session.setAttribute("user", username);

મેમરી ટ્રીક: “Request Response Session Application Out”

પ્રશ્ન 4(બ) [4 માર્ક્સ]
#

JSP ની વિવિધ વિશેષતાઓ સમજાવો.

જવાબ:

ટેબલ: JSP વિશેષતાઓ

વિશેષતાવર્ણનફાયદો
સહેલું ડેવલપમેન્ટHTML + Javaઝડપી કોડિંગ
પ્લેટફોર્મ સ્વતંત્રએકવાર લખો, ગમે ત્યાં ચલાવોપોર્ટેબિલિટી
કોમ્પોનેન્ટ-આધારિતપુનઃઉપયોગ્ય કોમ્પોનેન્ટ્સજાળવણીયોગ્યતા
સુરક્ષિતJava સિક્યોરિટી મોડલસુરક્ષિત એક્ઝિક્યુશન

મુખ્ય વિશેષતાઓ:

  • Separation of Concerns: ડિઝાઇન અને લોજિક અલગ
  • વિસ્તરણીય: કસ્ટમ ટેગ્સ અને લાઇબ્રેરીઓ
  • કમ્પાઇલ્ડ: કાર્યક્ષમતા માટે servlets માં ટ્રાન્સલેટ
  • Expression Language: સરળ સિન્ટેક્સ

JSP એલિમેન્ટ્સ:

  • Directives: <%@ %>
  • Declarations: <%! %>
  • Expressions: <%= %>
  • Scriptlets: <% %>

મેમરી ટ્રીક: “Easy Platform Component Secure”

પ્રશ્ન 4(ક) [7 માર્ક્સ]
#

Servlet માંથી JSP કઇ રીતે કોલ થશે તે ઉદાહરણ સાથે સમજાવો.

જવાબ:

Servlet માંથી JSP કોલ કરવાની પદ્ધતિઓ:

ટેબલ: JSP કોલિંગ પદ્ધતિઓ

પદ્ધતિInterfaceહેતુ
ForwardRequestDispatcherકંટ્રોલ ટ્રાન્સફર કરવું
IncludeRequestDispatcherકન્ટેન્ટ ઇન્ક્લુડ કરવું
RedirectHttpServletResponseનવી રિક્વેસ્ટ

Forward ઉદાહરણ:

Servlet કોડ:

public class DataServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request,
                        HttpServletResponse response) 
                        throws ServletException, IOException {
        
        // ડેટા પ્રોસેસ કરવું
        String username = "જોન ડો";
        int age = 25;
        
        // Attributes સેટ કરવા
        request.setAttribute("username", username);
        request.setAttribute("age", age);
        
        // JSP ને ફોરવર્ડ કરવું
        RequestDispatcher dispatcher = 
            request.getRequestDispatcher("display.jsp");
        dispatcher.forward(request, response);
    }
}

JSP કોડ (display.jsp):

<%@ page language="java" contentType="text/html" %>
<html>
<head><title>વપરાશકર્તા માહિતી</title></head>
<body>
    <h2>વપરાશકર્તા માહિતી</h2>
    <p>નામ: <%= request.getAttribute("username") %></p>
    <p>ઉંમર: <%= request.getAttribute("age") %></p>
</body>
</html>

પગલાઓ:

  1. ડેટા પ્રોસેસ servlet માં
  2. Attributes સેટ કરવા request માં
  3. RequestDispatcher મેળવવું JSP path સાથે
  4. Forward JSP ને

મેમરી ટ્રીક: “Process-Set-Get-Forward: PSGF”

પ્રશ્ન 4(અ) OR [3 માર્ક્સ]
#

JSP scripting elements ની યાદી બનાવો અને સમજાવો.

જવાબ:

ટેબલ: JSP Scripting Elements

ElementSyntaxહેતુઉદાહરણ
Directive<%@ %>પેજ સેટિંગ્સ<%@ page import="java.util.*" %>
Declaration<%! %>methods/variables વ્યાખ્યા<%! int count = 0; %>
Expression<%= %>વેલ્યુઝ આઉટપુટ<%= new Date() %>
Scriptlet<% %>Java કોડ<% for(int i=0; i<5; i++) { %>

વિગતવાર સમજૂતી:

Directives:

  • Page directive: પેકેજીઝ ઇમ્પોર્ટ, કન્ટેન્ટ ટાઇપ સેટ કરવા
  • Include directive: અન્ય ફાઇલો ઇન્ક્લુડ કરવા
  • Taglib directive: કસ્ટમ ટેગ લાઇબ્રેરીઓ

Declarations:

  • Instance variables અને methods વ્યાખ્યાયિત કરવા
  • servlet class ના ભાગ બને છે

મેમરી ટ્રીક: “Direct Declare Express Script”

પ્રશ્ન 4(બ) OR [4 માર્ક્સ]
#

JSP life cycle સમજાવો.

જવાબ:

graph TD
    A[JSP Page Request] --> B[Servlet માં Translation]
    B --> C[Bytecode માં Compilation]
    C --> D[Servlet Loading]
    D --> E[jspInit Method]
    E --> F[_jspService Method]
    F --> G{વધુ Requests?}
    G -->|હા| F
    G -->|ના| H[jspDestroy Method]

લાઇફ સાઇકલ તબક્કાઓ:

ટેબલ: JSP લાઇફ સાઇકલ

તબક્કોMethodહેતુ
Translation-JSP થી Java servlet
Compilation-Java થી bytecode
InitializationjspInit()રિસોર્સ સેટઅપ
Request Processing_jspService()રિક્વેસ્ટ હેન્ડલ કરવા
DestructionjspDestroy()Cleanup

મુખ્ય મુદ્દાઓ:

  • Translation: JSP engine JSP ને servlet માં કન્વર્ટ કરે
  • Compilation: Java compiler .class ફાઇલ બનાવે
  • Execution: Servlet container કમ્પાઇલ થયેલ servlet એક્ઝિક્યુટ કરે

મેમરી ટ્રીક: “Translate-Compile-Init-Service-Destroy”

પ્રશ્ન 4(ક) OR [7 માર્ક્સ]
#

Cookie શું છે? ઉદાહરણ સાથે cookie નું working સમજાવો.

જવાબ:

Cookie વ્યાખ્યા: Cookie એ વેબ બ્રાઉઝર દ્વારા ક્લાયન્ટના કમ્પ્યુટર પર સ્ટોર કરવામાં આવતા ડેટાનો નાનો ભાગ છે.

Cookie Working Process:

sequenceDiagram
    participant Client
    participant Server
    Client->>Server: HTTP Request
    Server->>Client: HTTP Response + Set-Cookie
    Client->>Server: HTTP Request + Cookie
    Server->>Client: HTTP Response (cookie ડેટા વાપરે)

ટેબલ: Cookie Attributes

Attributeહેતુઉદાહરણ
NameCookie identifierusername
ValueCookie ડેટાjohn123
Domainવેલિડ ડોમેન.example.com
Pathવેલિડ પાથ/shop/
Max-Ageએક્સપાયરી ટાઇમ3600 સેકંડ

Cookie ઉદાહરણ:

Cookie બનાવવું (Servlet):

public class SetCookieServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request,
                        HttpServletResponse response) {
        
        // Cookie બનાવવી
        Cookie userCookie = new Cookie("username", "john123");
        userCookie.setMaxAge(60 * 60 * 24); // 1 દિવસ
        userCookie.setPath("/");
        
        // Response માં ઉમેરવી
        response.addCookie(userCookie);
        
        response.getWriter().println("Cookie સફળતાપૂર્વક સેટ થઈ!");
    }
}

Cookie વાંચવી (Servlet):

public class GetCookieServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request,
                        HttpServletResponse response) {
        
        Cookie[] cookies = request.getCookies();
        String username = null;
        
        if(cookies != null) {
            for(Cookie cookie : cookies) {
                if("username".equals(cookie.getName())) {
                    username = cookie.getValue();
                    break;
                }
            }
        }
        
        response.getWriter().println("પાછા આવવા બદલ આભાર, " + username);
    }
}

Cookie ફાયદા:

  • વપરાશકર્તા વ્યક્તિકરણ: પસંદગીઓ યાદ રાખવી
  • Session tracking: state જાળવવા
  • Analytics: વપરાશકર્તા વર્તન ટ્રેક કરવું

મેમરી ટ્રીક: “Create-Set-Add-Read: CSAR”

પ્રશ્ન 5(અ) [3 માર્ક્સ]
#

JSP અને Servlet વચ્ચેનો તફાવત લખો.

જવાબ:

ટેબલ: JSP વિ. Servlet તુલના

વિશેષતાJSPServlet
ડેવલપમેન્ટHTML + Javaશુદ્ધ Java
કમ્પાઇલેશનઑટોમેટિકમેન્યુઅલ
જાળવણીસરળવધુ જટિલ
કાર્યક્ષમતાધીમી (પ્રથમ રિક્વેસ્ટ)ઝડપી
હેતુPresentation layerBusiness logic

મુખ્ય તફાવતો:

  • JSP: presentation માટે સારી, વેબ ડિઝાઇનર્સ માટે સરળ
  • Servlet: business logic માટે સારી, વધુ કંટ્રોલ
  • કોડિંગ: JSP HTML અને Java મિક્સ કરે, Servlet શુદ્ધ Java
  • કમ્પાઇલેશન: JSP ઑટો-કમ્પાઇલ, Servlet મેન્યુઅલ કમ્પાઇલેશન જરૂરી

મેમરી ટ્રીક: “JSP Presentation માટે, Servlet Logic માટે”

પ્રશ્ન 5(બ) [4 માર્ક્સ]
#

Spring Boot શું છે? અને તેના ફાયદા સમજાવો.

જવાબ:

Spring Boot વ્યાખ્યા: Spring Boot એ ફ્રેમવર્ક છે જે ઑટો-કોન્ફિગરેશન અને embedded servers પ્રદાન કરીને Spring-આધારિત એપ્લિકેશનોનું ડેવલપમેન્ટ સરળ બનાવે છે.

ટેબલ: Spring Boot ફાયદા

ફાયદોવર્ણન
ઑટો કોન્ફિગરેશનSpring એપ્લિકેશનો ઑટોમેટિક કોન્ફિગર કરે
Embedded Serversબિલ્ટ-ઇન Tomcat, Jetty સપોર્ટ
Starter Dependenciesપ્રી-કોન્ફિગર્ડ dependency સેટ્સ
Production ReadyHealth checks, metrics, monitoring

મુખ્ય વિશેષતાઓ:

  • ઝડપી ડેવલપમેન્ટ: ન્યૂનતમ કોન્ફિગરેશન જરૂરી
  • Microservices: microservice આર્કિટેક્ચર માટે પરફેક્ટ
  • XML નહીં: Convention over configuration
  • Cloud Ready: cloud platforms પર સરળ deployment

ઉદાહરણ:

@SpringBootApplication
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}

મેમરી ટ્રીક: “Auto Embedded Starter Production”

પ્રશ્ન 5(ક) [7 માર્ક્સ]
#

Spring framework નું આર્કિટેક્ચર સમજાવો.

જવાબ:

graph TB
    A[Spring Framework Architecture]
    A --> B[Core Container]
    A --> C[Data Access/Integration]
    A --> D[Web MVC]
    A --> E[AOP]
    A --> F[Test]
    
    B --> B1[Core]
    B --> B2[Beans]
    B --> B3[Context]
    B --> B4[Expression]
    
    C --> C1[JDBC]
    C --> C2[ORM]
    C --> C3[JMS]
    C --> C4[Transaction]
    
    D --> D1[Web]
    D --> D2[Servlet]
    D --> D3[Portlet]
    D --> D4[Struts]

આર્કિટેક્ચર લેયર્સ:

ટેબલ: Spring Framework Modules

ModuleComponentsહેતુ
Core ContainerCore, Beans, ContextIoC અને DI
Data AccessJDBC, ORM, JMSડેટાબેસ ઓપરેશન્સ
Web MVCWeb, Servlet, MVCવેબ એપ્લિકેશન્સ
AOPAspects, WeavingCross-cutting concerns

મુખ્ય કન્સેપ્ટ્સ:

  • IoC (Inversion of Control): ફ્રેમવર્ક ઑબ્જેક્ટ બનાવટ કંટ્રોલ કરે
  • DI (Dependency Injection): Dependencies ઑટોમેટિક inject થાય
  • AOP (Aspect-Oriented Programming): Modular cross-cutting concerns
  • MVC: Model-View-Controller પેટર્ન

Spring Container:

  • BeanFactory: મૂળભૂત container
  • ApplicationContext: વધારાની ફીચર્સ સાથે એડવાન્સ container

કોન્ફિગરેશન પદ્ધતિઓ:

  • XML Configuration: પરંપરાગત અભિગમ
  • Annotation Configuration: આધુનિક અભિગમ
  • Java Configuration: Type-safe કોન્ફિગરેશન

મેમરી ટ્રીક: “Core Data Web AOP Test”

પ્રશ્ન 5(અ) OR [3 માર્ક્સ]
#

Servlet ની સરખામણીમાં JSP ના ફાયદા લખો.

જવાબ:

ટેબલ: Servlet પર JSP ના ફાયદા

ફાયદોJSPServlet મર્યાદા
સહેલું ડેવલપમેન્ટHTML + Java ટેગ્સJava માં જટિલ HTML
ઑટોમેટિક કમ્પાઇલેશનઑટો-કમ્પાઇલ્ડમેન્યુઅલ કમ્પાઇલેશન
ડિઝાઇનર ફ્રેન્ડલીવેબ ડિઝાઇનર્સ કામ કરી શકેJava જ્ઞાન જરૂરી
જાળવણીસુધારવા સરળકોડ બદલાવ માટે recompilation

મુખ્ય ફાયદા:

  • ડિઝાઇન અને લોજિકનું વિભાજન: HTML અને Java અલગ
  • ઝડપી ડેવલપમેન્ટ: ઝડપી prototyping અને development
  • ઓછો કોડ: out.println() statements ની જરૂર નહીં
  • બિલ્ટ-ઇન ઑબ્જેક્ટ્સ: Implicit objects તરત મળે

ઉદાહરણ તુલના:

JSP કોડ:

<html>
<body>
    <h1>આવકાર છે <%= request.getParameter("name") %></h1>
</body>
</html>

Servlet કોડ:

out.println("<html>");
out.println("<body>");
out.println("<h1>આવકાર છે " + request.getParameter("name") + "</h1>");
out.println("</body>");
out.println("</html>");

મેમરી ટ્રીક: “Easy Auto Designer Maintenance”

પ્રશ્ન 5(બ) OR [4 માર્ક્સ]
#

Spring Boot ના ફાયદા સમજાવો.

જવાબ:

ટેબલ: Spring Boot ફાયદા

ફાયદોવર્ણનલાભ
ઑટો કોન્ફિગરેશનClasspath આધારે ઑટોમેટિક સેટઅપઘટેલ કોન્ફિગરેશન
Embedded Serverબિલ્ટ-ઇન Tomcat/Jettyબાહ્ય deployment નહીં
Starter POMsપ્રી-કોન્ફિગર્ડ dependenciesસરળ dependency management
ActuatorProduction monitoringHealth checks અને metrics

વિગતવાર ફાયદા:

1. ઑટો કોન્ફિગરેશન:

  • Dependencies આધારે Spring application ઑટોમેટિક કોન્ફિગર કરે
  • Boilerplate configuration કોડ ઘટાડે
  • Convention over configuration અભિગમ

2. Embedded Servers:

  • બાહ્ય application servers ની જરૂર નહીં
  • java -jar સાથે applications સરળતાથી ચલાવી શકાય
  • સરળ deployment પ્રક્રિયા

3. Starter Dependencies:

  • પ્રી-કોન્ફિગર્ડ dependency સેટ્સ
  • Version compatibility મેનેજ થાય
  • ઝડપી પ્રોજેક્ટ સેટઅપ

4. Production ફીચર્સ:

  • Health endpoints
  • Metrics collection
  • Application monitoring

ઉદાહરણ:

@SpringBootApplication
@RestController
public class HelloApp {
    @GetMapping("/hello")
    public String hello() {
        return "નમસ્કાર Spring Boot!";
    }
    
    public static void main(String[] args) {
        SpringApplication.run(HelloApp.class, args);
    }
}

મેમરી ટ્રીક: “Auto Embedded Starter Production”

પ્રશ્ન 5(ક) OR [7 માર્ક્સ]
#

MVC આર્કિટેક્ચર સમજાવો.

જવાબ:

MVC (Model-View-Controller) આર્કિટેક્ચર:

graph LR
    A[View] --> B[Controller]
    B --> C[Model]
    C --> A
    D[User] --> A
    A --> D

MVC કોમ્પોનેન્ટ્સ:

ટેબલ: MVC કોમ્પોનેન્ટ્સ

Componentજવાબદારીઉદાહરણ
Modelડેટા અને બિઝનેસ લોજિકEntity classes, DAOs
Viewવપરાશકર્તા ઇન્ટરફેસJSP, HTML, Templates
Controllerરિક્વેસ્ટ હેન્ડલિંગServlets, Spring Controllers

વિગતવાર સમજૂતી:

Model:

  • ડેટા અને બિઝનેસ લોજિક રજૂ કરે
  • ડેટાબેસ ઓપરેશન્સ
  • ડેટા વેલિડેશન
  • બિઝનેસ નિયમોનું અમલીકરણ

View:

  • Presentation layer
  • વપરાશકર્તા ઇન્ટરફેસ કોમ્પોનેન્ટ્સ
  • વપરાશકર્તાઓને ડેટા દર્શાવવું
  • વપરાશકર્તા ઇનપુટ એકત્રિત કરવું

Controller:

  • વપરાશકર્તા રિક્વેસ્ટ્સ હેન્ડલ કરે
  • Model અને View વચ્ચે સંકલન
  • વપરાશકર્તા ઇનપુટ પ્રોસેસ કરવું
  • યોગ્ય View પસંદ કરવું

MVC ફ્લો:

sequenceDiagram
    participant User
    participant View
    participant Controller
    participant Model
    
    User->>View: વપરાશકર્તા Input
    View->>Controller: Request
    Controller->>Model: ડેટા Process કરવું
    Model->>Controller: ડેટા Return કરવું
    Controller->>View: View પસંદ કરવું
    View->>User: Response

Spring MVC ઉદાહરણ:

Controller:

@Controller
public class StudentController {
    @Autowired
    private StudentService studentService;
    
    @GetMapping("/students")
    public ModelAndView getStudents() {
        List<Student> students = studentService.getAllStudents();
        ModelAndView mv = new ModelAndView("students");
        mv.addObject("studentList", students);
        return mv;
    }
}

Model:

@Entity
public class Student {
    @Id
    private int id;
    private String name;
    private String email;
    
    // getters અને setters
}

View (JSP):

<html>
<body>
    <h2>વિદ્યાર્થી યાદી</h2>
    <c:forEach items="${studentList}" var="student">
        <p>${student.name} - ${student.email}</p>
    </c:forEach>
</body>
</html>

MVC ફાયદા:

  • Separation of Concerns: જવાબદારીઓનું સ્પષ્ટ વિભાજન
  • જાળવણીયોગ્યતા: જાળવવા અને સુધારવા સરળ
  • પુનઃઉપયોગિતા: કોમ્પોનેન્ટ્સ પુનઃઉપયોગ કરી શકાય
  • ટેસ્ટેબિલિટી: દરેક કોમ્પોનેન્ટ સ્વતંત્ર રીતે ટેસ્ટ કરી શકાય
  • સમાંતર ડેવલપમેન્ટ: વિવિધ ટીમો વિવિધ કોમ્પોનેન્ટ્સ પર કામ કરી શકે

વેબ એપ્લિકેશન્સમાં MVC:

  • Model: ડેટાબેસ entities, બિઝનેસ લોજિક
  • View: JSP pages, HTML templates
  • Controller: Servlets, Spring controllers

વપરાયેલ ડિઝાઇન પેટર્ન્સ:

  • Front Controller: રિક્વેસ્ટ્સ માટે એક પ્રવેશ બિંદુ
  • Observer Pattern: Model View ને ફેરફારોની જાણ આપે
  • Strategy Pattern: સમાન Model માટે વિવિધ Views

મેમરી ટ્રીક: “Model ડેટા મેનેજ કરે, View ડેટા દર્શાવે, Controller ફ્લો કંટ્રોલ કરે”

Related

Advanced Java Programming (4351603) - Summer 2025 Solution
Study-Material Solutions Advanced-Java 4351603 2025 Summer
Advanced Java Programming (4351603) - Summer 2024 Solution
Study-Material Solutions Advanced-Java 4351603 2024 Summer
Cyber Security (4353204) - Summer 2025 Solution
15 mins
Study-Material Solutions Cyber-Security 4353204 2025 Summer
Microwave and Radar Communication (4351103) - Summer 2025 Solution
Study-Material Solutions Microwave 4351103 2025 Summer
Data Structure and Application (1333203) - Summer 2025 Solution
16 mins
Study-Material Solutions Data-Structure 1333203 2025 Summer
Database Management (4331603) - Summer 2025 Solution
Study-Material Solutions Database-Management 4331603 2025 Summer