એડવાન્સ જાવા પ્રોગ્રામિંગ (4351603) - સમર 2025 સોલ્યુશન
એડવાન્સ જાવા પ્રોગ્રામિંગ (4351603) સમર 2025 પરીક્ષા માટે સોલ્યુશન ગાઇડ
પ્રશ્ન 1(અ) [3 માર્ક્સ]
AWT અને Swing વચ્ચેનો તફાવત લખો.
જવાબ:
ટેબલ: AWT વિ. Swing તુલના
| વિશેષતા | AWT | Swing |
|---|---|---|
| પ્લેટફોર્મ | પ્લેટફોર્મ આધારિત | પ્લેટફોર્મ સ્વતંત્ર |
| કોમ્પોનેન્ટ્સ | હેવી વેઇટ | લાઇટ વેઇટ |
| લુક એન્ડ ફીલ | નેટિવ OS લુક | પ્લગેબલ લુક એન્ડ ફીલ |
| પ્રદર્શન | ઝડપી | AWT કરતાં ધીમું |
- AWT: નેટિવ OS કોમ્પોનેન્ટ્સ વાપરે છે
- Swing: જાવાના પોતાના કોમ્પોનેન્ટ્સ વાપરે છે
- પ્લગેબિલિટી: Swing કસ્ટમાઇઝેબલ UI સપોર્ટ કરે છે
મેમરી ટ્રીક: "Swing સ્માર્ટ છે - પ્લેટફોર્મ સ્વતંત્ર અને પ્લગેબલ"
પ્રશ્ન 1(બ) [4 માર્ક્સ]
વિવિધ Layout Manager ની યાદી બનાવો. Flow Layout manager ને ઉદાહરણ સાથે સમજાવો.
જવાબ:
Layout Manager ની યાદી:
- FlowLayout: ડાબેથી જમણે ગોઠવણી
- BorderLayout: ઉત્તર, દક્ષિણ, પૂર્વ, પશ્ચિમ, કેન્દ્ર
- GridLayout: સમાન કદના ગ્રિડ સેલ્સ
- CardLayout: કોમ્પોનેન્ટ્સનો સ્ટેક
- BoxLayout: એક પંક્તિ અથવા કોલમ
FlowLayout ઉદાહરણ:
Java
મેમરી ટ્રીક: "પાણીની જેમ વહે - ડાબેથી જમણે"
પ્રશ્ન 1(ક) [7 માર્ક્સ]
ચેકબૉક્સનો ઉપયોગ કરીને Swing program લખો જે વપરાશકર્તાઓને વિકલ્પોની સૂચિમાંથી બહુવિધ વિકલ્પો પસંદ કરવાની મંજૂરી આપે અને પસંદ કરેલ વિકલ્પો દર્શાવે.
જવાબ:
Java
મુખ્ય વિશેષતાઓ:
- બહુવિધ પસંદગી: વપરાશકર્તાઓ બહુવિધ ચેકબૉક્સ પસંદ કરી શકે
- રીઅલ-ટાઇમ ડિસ્પ્લે: પસંદ કરેલ આઇટમ્સ તરત જ દર્શાવે
- ItemListener: ચેકબૉક્સ સ્ટેટ બદલાવ હેન્ડલ કરે
મેમરી ટ્રીક: "બહુવિધ ચેક કરો, બધું દર્શાવો"
પ્રશ્ન 1(ક) OR [7 માર્ક્સ]
વિવિધ swing components ની મદદથી Java program લખો.
જવાબ:
Java
વપરાયેલ કોમ્પોનેન્ટ્સ:
- JTextField: ટેક્સ્ટ ઇનપુટ
- JComboBox: ડ્રોપડાઉન પસંદગી
- JRadioButton: એક પસંદગી
- JButton: એક્શન ટ્રિગર
મેમરી ટ્રીક: "ટેક્સ્ટ, કોમ્બો, રેડિયો, બટન - સંપૂર્ણ ફોર્મ"
પ્રશ્ન 2(અ) [3 માર્ક્સ]
ઉદાહરણ સાથે Swing controls સમજાવો.
જવાબ:
ટેબલ: સામાન્ય Swing Controls
| Control | હેતુ | ઉદાહરણ |
|---|---|---|
| JButton | ક્લિક એક્શન્સ | new JButton("મને ક્લિક કરો") |
| JTextField | ટેક્સ્ટ ઇનપુટ | new JTextField(10) |
| JLabel | ટેક્સ્ટ દર્શાવવું | new JLabel("નમસ્કાર") |
| JCheckBox | બહુવિધ પસંદગી | new JCheckBox("વિકલ્પ") |
મૂળભૂત ઉદાહરણ:
Java
મેમરી ટ્રીક: "બટન, ટેક્સ્ટ, લેબલ, ચેક - મૂળભૂત ચાર"
પ્રશ્ન 2(બ) [4 માર્ક્સ]
JDBC drivers ની યાદી બનાવો અને કોઈપણ બે સમજાવો.
જવાબ:
JDBC Drivers ની યાદી:
- Type 1: JDBC-ODBC Bridge
- Type 2: Native API Driver
- Type 3: Network Protocol Driver
- 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 એ તકનીક છે જે ઑબ્જેક્ટ-ઓરિએન્ટેડ પ્રોગ્રામિંગ કન્સેપ્ટ્સને રિલેશનલ ડેટાબેસ સ્ટ્રક્ચર સાથે મેપ કરે છે.
ટેબલ: ORM ફાયદા
| ફાયદો | વર્ણન |
|---|---|
| ઉત્પાદકતા | કોડિંગ સમય ઘટાડે |
| જાળવણી | સુધારા અને અપડેટ કરવા સરળ |
| ડેટાબેસ સ્વતંત્રતા | ડેટાબેસ સરળતાથી બદલી શકાય |
| ઑબ્જેક્ટ-ઓરિએન્ટેડ | OOP કન્સેપ્ટ્સ સાથે કામ કરે |
લોકપ્રિય ORM Tools:
- Hibernate: સૌથી લોકપ્રિય Java ORM
- JPA: Java Persistence API સ્ટાન્ડર્ડ
- MyBatis: SQL મેપિંગ ફ્રેમવર્ક
- EclipseLink: રેફરન્સ ઇમ્પ્લિમેન્ટેશન
વર્કિંગ મોડલ:
- Objects → ORM → Tables
- ઑટોમેટિક SQL જનરેશન
- Type-safe queries
મેમરી ટ્રીક: "Objects Relate Magically"
પ્રશ્ન 2(અ) OR [3 માર્ક્સ]
ઉદાહરણ સાથે MOUSEEVENT અને MOUSELISTENER interface સમજાવો.
જવાબ:
MouseEvent: જ્યારે કોમ્પોનેન્ટ્સ પર માઉસ એક્શન્સ થાય ત્યારે જનરેટ થાય છે.
MouseListener Interface Methods:
- mouseClicked(): માઉસ બટન ક્લિક
- mousePressed(): માઉસ બટન દબાવ્યું
- mouseReleased(): માઉસ બટન છોડ્યું
- mouseEntered(): માઉસ કોમ્પોનેન્ટમાં પ્રવેશ
- mouseExited(): માઉસ કોમ્પોનેન્ટમાંથી બહાર
ઉદાહરણ:
Java
મેમરી ટ્રીક: "Click-Press-Release-Enter-Exit"
પ્રશ્ન 2(બ) OR [4 માર્ક્સ]
JDBC API ના components ની સૂચિ બનાવો અને સમજાવો.
જવાબ:
ટેબલ: JDBC API Components
| Component | હેતુ | મુખ્ય Classes |
|---|---|---|
| DriverManager | ડ્રાઇવર્સ મેનેજ કરે | DriverManager.getConnection() |
| Connection | ડેટાબેસ કનેક્શન | Connection conn |
| Statement | SQL એક્ઝિક્યુશન | Statement stmt |
| ResultSet | ક્વેરી પરિણામો | ResultSet rs |
Component વિગતો:
- DriverManager: ડેટાબેસ સાથે કનેક્શન સ્થાપિત કરે
- Connection: ડેટાબેસ સેશન રજૂ કરે
- Statement: SQL ક્વેરીઓ એક્ઝિક્યુટ કરે
- ResultSet: ક્વેરી પરિણામો સાચવે
મૂળભૂત ઉપયોગ:
Java
મેમરી ટ્રીક: "ડ્રાઇવર કનેક્ટ કરે, સ્ટેટમેન્ટ એક્ઝિક્યુટ કરે, ResultSet રિટર્ન કરે"
પ્રશ્ન 2(ક) OR [7 માર્ક્સ]
હાઇબર્નેટનું આર્કિટેક્ચર દોરો અને સમજાવો.
જવાબ:
આર્કિટેક્ચર કોમ્પોનેન્ટ્સ:
ટેબલ: Hibernate આર્કિટેક્ચર
| Component | કાર્ય |
|---|---|
| Configuration | કોન્ફિગ ફાઇલો વાંચે |
| SessionFactory | Session ઑબ્જેક્ટ્સ બનાવે |
| Session | ડેટાબેસ ઇન્ટરફેસ |
| Transaction | ટ્રાન્ઝેક્શન મેનેજ કરે |
| Query | HQL/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 સમજાવો.
જવાબ:
લાઇફ સાઇકલ તબક્કાઓ:
ટેબલ: Servlet લાઇફ સાઇકલ
| તબક્કો | Method | હેતુ |
|---|---|---|
| લોડિંગ | ક્લાસ લોડિંગ | JVM servlet ક્લાસ લોડ કરે |
| ઇન્સ્ટન્શિએશન | Constructor | servlet ઑબ્જેક્ટ બનાવે |
| ઇનિશિયલાઇઝેશન | 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 Rewriting | session ID ઉમેરવું | સાર્વત્રિક/કદરૂપ URLs |
| Hidden Fields | ફોર્મ-આધારિત ટ્રેકિંગ | સરળ/ફોર્મ પર આધારિત |
| HttpSession | સર્વર-સાઇડ ઑબ્જેક્ટ | સુરક્ષિત/મેમરી ઉપયોગ |
HttpSession ઉદાહરણ:
Java
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 કોડ, કનેક્શન્સ બંધ કરવા
ઉદાહરણ:
Java
મેમરી ટ્રીક: "Init-Service-Destroy: ISD"
પ્રશ્ન 3(બ) OR [4 માર્ક્સ]
ઉદાહરણ સાથે HTTPSERVLET class સમજાવો.
જવાબ:
HttpServlet Class: HTTP પ્રોટોકોલ માટે ખાસ કરીને GenericServlet ને વિસ્તૃત કરતો abstract class.
HTTP Methods:
ટેબલ: HttpServlet Methods
| Method | HTTP Verb | હેતુ |
|---|---|---|
| doGet() | GET | ડેટા પુનઃપ્રાપ્ત કરવું |
| doPost() | POST | ડેટા સબમિટ કરવું |
| doPut() | PUT | ડેટા અપડેટ કરવું |
| doDelete() | DELETE | ડેટા દૂર કરવું |
ઉદાહરણ:
Java
મુખ્ય વિશેષતાઓ:
- 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 તુલના
| વિશેષતા | GET | POST |
|---|---|---|
| ડેટા સ્થાન | URL parameters | Request body |
| ડેટા મર્યાદા | મર્યાદિત (~2KB) | અમર્યાદિત |
| સુરક્ષા | ઓછી સુરક્ષિત | વધુ સુરક્ષિત |
| કેશિંગ | કેશેબલ | કેશેબલ નથી |
| બુકમાર્કિંગ | શક્ય | શક્ય નથી |
POST Method Servlet ઉદાહરણ:
Java
HTML ફોર્મ:
HTML
મુખ્ય તફાવતો:
- GET: ડેટા URL માં, દેખાય છે, મર્યાદિત કદ
- POST: ડેટા body માં, છુપાયેલ, અમર્યાદિત કદ
મેમરી ટ્રીક: "GET મેળવે, POST સુરક્ષિત કરે"
પ્રશ્ન 4(અ) [3 માર્ક્સ]
JSP Implicit Objects ની યાદી બનાવો અને કોઈપણ બે સમજાવો.
જવાબ:
JSP Implicit Objects યાદી:
- request (HttpServletRequest)
- response (HttpServletResponse)
- session (HttpSession)
- application (ServletContext)
- out (JspWriter)
- page (Object)
- pageContext (PageContext)
- config (ServletConfig)
- 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 | હેતુ |
|---|---|---|
| Forward | RequestDispatcher | કંટ્રોલ ટ્રાન્સફર કરવું |
| Include | RequestDispatcher | કન્ટેન્ટ ઇન્ક્લુડ કરવું |
| Redirect | HttpServletResponse | નવી રિક્વેસ્ટ |
Forward ઉદાહરણ:
Servlet કોડ:
Java
JSP કોડ (display.jsp):
jsp
પગલાઓ:
- ડેટા પ્રોસેસ servlet માં
- Attributes સેટ કરવા request માં
- RequestDispatcher મેળવવું JSP path સાથે
- Forward JSP ને
મેમરી ટ્રીક: "Process-Set-Get-Forward: PSGF"
પ્રશ્ન 4(અ) OR [3 માર્ક્સ]
JSP scripting elements ની યાદી બનાવો અને સમજાવો.
જવાબ:
ટેબલ: JSP Scripting Elements
| Element | Syntax | હેતુ | ઉદાહરણ |
|---|---|---|---|
| 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 સમજાવો.
જવાબ:
લાઇફ સાઇકલ તબક્કાઓ:
ટેબલ: JSP લાઇફ સાઇકલ
| તબક્કો | Method | હેતુ |
|---|---|---|
| Translation | - | JSP થી Java servlet |
| Compilation | - | Java થી bytecode |
| Initialization | jspInit() | રિસોર્સ સેટઅપ |
| Request Processing | _jspService() | રિક્વેસ્ટ હેન્ડલ કરવા |
| Destruction | jspDestroy() | 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:
ટેબલ: Cookie Attributes
| Attribute | હેતુ | ઉદાહરણ |
|---|---|---|
| Name | Cookie identifier | username |
| Value | Cookie ડેટા | john123 |
| Domain | વેલિડ ડોમેન | .example.com |
| Path | વેલિડ પાથ | /shop/ |
| Max-Age | એક્સપાયરી ટાઇમ | 3600 સેકંડ |
Cookie ઉદાહરણ:
Cookie બનાવવું (Servlet):
Java
Cookie વાંચવી (Servlet):
Java
Cookie ફાયદા:
- વપરાશકર્તા વ્યક્તિકરણ: પસંદગીઓ યાદ રાખવી
- Session tracking: state જાળવવા
- Analytics: વપરાશકર્તા વર્તન ટ્રેક કરવું
મેમરી ટ્રીક: "Create-Set-Add-Read: CSAR"
પ્રશ્ન 5(અ) [3 માર્ક્સ]
JSP અને Servlet વચ્ચેનો તફાવત લખો.
જવાબ:
ટેબલ: JSP વિ. Servlet તુલના
| વિશેષતા | JSP | Servlet |
|---|---|---|
| ડેવલપમેન્ટ | HTML + Java | શુદ્ધ Java |
| કમ્પાઇલેશન | ઑટોમેટિક | મેન્યુઅલ |
| જાળવણી | સરળ | વધુ જટિલ |
| કાર્યક્ષમતા | ધીમી (પ્રથમ રિક્વેસ્ટ) | ઝડપી |
| હેતુ | Presentation layer | Business 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 Ready | Health checks, metrics, monitoring |
મુખ્ય વિશેષતાઓ:
- ઝડપી ડેવલપમેન્ટ: ન્યૂનતમ કોન્ફિગરેશન જરૂરી
- Microservices: microservice આર્કિટેક્ચર માટે પરફેક્ટ
- XML નહીં: Convention over configuration
- Cloud Ready: cloud platforms પર સરળ deployment
ઉદાહરણ:
Java
મેમરી ટ્રીક: "Auto Embedded Starter Production"
પ્રશ્ન 5(ક) [7 માર્ક્સ]
Spring framework નું આર્કિટેક્ચર સમજાવો.
જવાબ:
આર્કિટેક્ચર લેયર્સ:
ટેબલ: Spring Framework Modules
| Module | Components | હેતુ |
|---|---|---|
| Core Container | Core, Beans, Context | IoC અને DI |
| Data Access | JDBC, ORM, JMS | ડેટાબેસ ઓપરેશન્સ |
| Web MVC | Web, Servlet, MVC | વેબ એપ્લિકેશન્સ |
| AOP | Aspects, Weaving | Cross-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 ના ફાયદા
| ફાયદો | JSP | Servlet મર્યાદા |
|---|---|---|
| સહેલું ડેવલપમેન્ટ | HTML + Java ટેગ્સ | Java માં જટિલ HTML |
| ઑટોમેટિક કમ્પાઇલેશન | ઑટો-કમ્પાઇલ્ડ | મેન્યુઅલ કમ્પાઇલેશન |
| ડિઝાઇનર ફ્રેન્ડલી | વેબ ડિઝાઇનર્સ કામ કરી શકે | Java જ્ઞાન જરૂરી |
| જાળવણી | સુધારવા સરળ | કોડ બદલાવ માટે recompilation |
મુખ્ય ફાયદા:
- ડિઝાઇન અને લોજિકનું વિભાજન: HTML અને Java અલગ
- ઝડપી ડેવલપમેન્ટ: ઝડપી prototyping અને development
- ઓછો કોડ: out.println() statements ની જરૂર નહીં
- બિલ્ટ-ઇન ઑબ્જેક્ટ્સ: Implicit objects તરત મળે
ઉદાહરણ તુલના:
JSP કોડ:
jsp
Servlet કોડ:
Java
મેમરી ટ્રીક: "Easy Auto Designer Maintenance"
પ્રશ્ન 5(બ) OR [4 માર્ક્સ]
Spring Boot ના ફાયદા સમજાવો.
જવાબ:
ટેબલ: Spring Boot ફાયદા
| ફાયદો | વર્ણન | લાભ |
|---|---|---|
| ઑટો કોન્ફિગરેશન | Classpath આધારે ઑટોમેટિક સેટઅપ | ઘટેલ કોન્ફિગરેશન |
| Embedded Server | બિલ્ટ-ઇન Tomcat/Jetty | બાહ્ય deployment નહીં |
| Starter POMs | પ્રી-કોન્ફિગર્ડ dependencies | સરળ dependency management |
| Actuator | Production monitoring | Health 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
ઉદાહરણ:
Java
મેમરી ટ્રીક: "Auto Embedded Starter Production"
પ્રશ્ન 5(ક) OR [7 માર્ક્સ]
MVC આર્કિટેક્ચર સમજાવો.
જવાબ:
MVC (Model-View-Controller) આર્કિટેક્ચર:
MVC કોમ્પોનેન્ટ્સ:
ટેબલ: MVC કોમ્પોનેન્ટ્સ
| Component | જવાબદારી | ઉદાહરણ |
|---|---|---|
| Model | ડેટા અને બિઝનેસ લોજિક | Entity classes, DAOs |
| View | વપરાશકર્તા ઇન્ટરફેસ | JSP, HTML, Templates |
| Controller | રિક્વેસ્ટ હેન્ડલિંગ | Servlets, Spring Controllers |
વિગતવાર સમજૂતી:
Model:
- ડેટા અને બિઝનેસ લોજિક રજૂ કરે
- ડેટાબેસ ઓપરેશન્સ
- ડેટા વેલિડેશન
- બિઝનેસ નિયમોનું અમલીકરણ
View:
- Presentation layer
- વપરાશકર્તા ઇન્ટરફેસ કોમ્પોનેન્ટ્સ
- વપરાશકર્તાઓને ડેટા દર્શાવવું
- વપરાશકર્તા ઇનપુટ એકત્રિત કરવું
Controller:
- વપરાશકર્તા રિક્વેસ્ટ્સ હેન્ડલ કરે
- Model અને View વચ્ચે સંકલન
- વપરાશકર્તા ઇનપુટ પ્રોસેસ કરવું
- યોગ્ય View પસંદ કરવું
MVC ફ્લો:
Spring MVC ઉદાહરણ:
Controller:
Java
Model:
Java
View (JSP):
jsp
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 ફ્લો કંટ્રોલ કરે"