CodeGym /جاوا بلاگ /Random-UR /Java servlets کا استعمال کرتے ہوئے آپ کی پہلی درخواست
John Squirrels
سطح
San Francisco

Java servlets کا استعمال کرتے ہوئے آپ کی پہلی درخواست

گروپ میں شائع ہوا۔
سب کو سلام! آپ ویب ڈویلپمنٹ کے بنیادی تصور کے طور پر servlets سے واقف ہو جائیں گے، اور آپ ان کو استعمال کرنے والی ایک سادہ ایپلیکیشن لکھ سکیں گے۔ جاوا سرولیٹس کا استعمال کرتے ہوئے آپ کی پہلی درخواست - 1 غیر ضروری کاموں سے بچنے کے لیے، ہم شروع سے شروع نہیں کریں گے۔ ہم Hibernate کے بارے میں اپنے پچھلے مضمون سے اپنی درخواست پر کام جاری رکھیں گے ۔ لیکن چونکہ ہم ابھی servlets سے واقف ہونا شروع کر رہے ہیں، اس لیے میں نے ایپلی کیشن سے آٹو کلاس سے متعلق ہر چیز کو ہٹا دیا ہے اور صرف یوزر کلاس اور اس میں شامل اعمال کو چھوڑ دیا ہے۔ پروجیکٹ کو اس طرح بنایا جائے گا: جاوا سرولیٹس کا استعمال کرتے ہوئے آپ کی پہلی درخواست - 2تو، سرولیٹس! ویکیپیڈیا کہتا ہے: "جاوا سرولیٹ ایک جاوا سافٹ ویئر کا جزو ہے جو سرور کی صلاحیتوں کو بڑھاتا ہے۔ اگرچہ سرولیٹ کئی قسم کی درخواستوں کا جواب دے سکتے ہیں، لیکن وہ عام طور پر ویب سرورز پر ویب ایپلیکیشنز کی میزبانی کے لیے ویب کنٹینرز کو لاگو کرتے ہیں اور اس طرح سرور کے طور پر اہل ہوتے ہیں۔ سائڈ سرولیٹ ویب API۔" یہ بالکل سچ ہے۔ یہاں، پہلی بار، ہم "کلائنٹ-سرور ایپلیکیشن آرکیٹیکچر" کے تصور کو دیکھ رہے ہیں۔ یہ اپنے مرکز میں کافی آسان ہے۔ کلائنٹ HTTP درخواست بھیج کر سرور تک رسائی حاصل کرتا ہے۔ سرور ضروری ڈیٹا تیار کرتا ہے (مثال کے طور پر، اسے ڈیٹا بیس سے لاتا ہے) اور اسے کلائنٹ کو واپس کرتا ہے۔ سب سے آسان مثال یہ ہے کہ جب آپ کسی مخصوص سوشل نیٹ ورک پر "فرینڈز" بٹن پر کلک کرتے ہیں، اس طرح سرور کو درخواست بھیجی جاتی ہے۔ سرور ڈیٹا بیس میں آپ کے دوستوں کی فہرست کو اپ ڈیٹ کرتا ہے اور اسے آپ (کلائنٹ) کو واپس کرتا ہے۔ HTTP درخواستوں کی فہرست کافی بڑی ہے، لہذا اگر آپ نے پہلے کبھی ان کا سامنا نہیں کیا ہے، تو آپ کے لیے بہتر ہوگا کہ آپ ان کے بارے میں کہیں اور پڑھیں، مثال کے طور پر، یہاں ۔ ہمارا مقصد یہ ہے کہ: سرولیٹس کا استعمال کرتے ہوئے ایک CRUD ایپلیکیشن بنائیں۔ ایپلیکیشن کو HTTP درخواستوں پر کارروائی کرنے والے سرورلیٹ کا استعمال کرتے ہوئے ڈیٹا بیس سے صارفین کو تخلیق، پڑھنے، اپ ڈیٹ کرنے اور حذف کرنے کے قابل ہونا چاہیے۔ ہائبرنیٹ آرٹیکل سے ہماری درخواست پہلے ہی یہ کر سکتی ہے، لیکن اسے جاوا کوڈ سے براہ راست کنٹرول کیا گیا تھا، زیادہ واضح طور پر، main() طریقہ سے۔ اس بار، یہ کلائنٹ ہے جو درخواستیں بھیجے گا، یعنی آپ کو :) سب سے پہلے ہمیں اپنی pom.xml فائل میں نئے انحصار شامل کرنے کی ضرورت ہے۔
<xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.itis4</groupId>
    <artifactId>UsersDaoProject</artifactId>
    <version>1.0-SNAPSHOT</version>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.6</version>
            </plugin>
        </plugins>
    </build>

    <dependencies>
        <!-- PostgreSQL  -->
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>9.4.1212.jre7</version>
        </dependency>

        <!-- Hibernate 5.2.6 Final -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>5.2.6.Final</version>
        </dependency>

        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.3.4.RELEASE</version>
        </dependency>

    </dependencies>

</project>
ہم نے 3 انحصار شامل کیا:
  1. javax.servlet-api لائبریری خود
  2. JSTL ٹیگ لائبریری۔ کلائنٹ سائیڈ، یعنی JSP صفحات بنانے کے لیے اس کی ضرورت ہوگی۔
  3. Spring-WebMVC۔ ہمیں ایک اسپرنگ کلاس کی ضرورت ہوگی، جس کے بارے میں ہم تھوڑی دیر بعد بات کریں گے۔
سرولیٹ کا انتظام سرولیٹ کنٹینر کے ذریعہ کیا جاتا ہے۔ ہمارے معاملے میں، ہم Apache Tomcat استعمال کریں گے۔ یہ کافی مقبول ہے — آپ نے شاید پہلے ہی اس کے بارے میں سنا ہو گا :) سرولیٹ لائف سائیکل درج ذیل مراحل پر مشتمل ہے:
  1. اگر کنٹینر میں کوئی سرولیٹ نہیں ہے:
    • سرولیٹ کلاس کنٹینر کے ذریعہ بھری ہوئی ہے۔
    • کنٹینر سرولیٹ کلاس کی ایک مثال بناتا ہے۔
    • کنٹینر init() طریقہ کو کال کرتا ہے۔ یہ طریقہ سرولیٹ کو شروع کرتا ہے اور اسے پہلے کہا جاتا ہے، اس سے پہلے کہ سرولیٹ درخواستیں پیش کر سکے۔ پوری زندگی کے چکر میں، init() طریقہ صرف ایک بار کہا جاتا ہے۔
  2. کلائنٹ کی درخواست کی خدمت کریں۔ ہر درخواست پر اس کے اپنے الگ تھریڈ پر کارروائی کی جاتی ہے۔ کنٹینر ہر درخواست کے لیے service() طریقہ کو کال کرتا ہے۔ یہ طریقہ آنے والی درخواست کی قسم کا تعین کرتا ہے اور اسے پروسیسنگ کے لیے مناسب طریقہ پر بھیجتا ہے۔ سرولیٹ ڈویلپر کو ان طریقوں کے لیے عمل درآمد فراہم کرنا چاہیے۔ اگر کسی ایسے ہینڈلر کے لیے کوئی درخواست آتی ہے جس پر عمل نہیں ہوتا ہے، تو پیرنٹ کلاس کا طریقہ کال کیا جاتا ہے اور عام طور پر درخواست کنندہ کو غلطی واپس کر دیتا ہے۔

  3. اگر کنٹینر کو سرولیٹ کو ہٹانے کی ضرورت ہے، تو یہ تباہ () طریقہ کو کال کرتا ہے، جو سرولیٹ کو آپریشن سے باہر لے جاتا ہے۔ init() طریقہ کی طرح، اس طریقہ کو بھی پورے سرولیٹ سائیکل کے دوران ایک بار کہا جاتا ہے۔
ہمارا سرولیٹ کافی آسان لگتا ہے:
package servlets;

import models.User;
import services.UserService;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

public class UserSimpleServlet extends HttpServlet {

    private UserService service = new UserService();

    public void init(ServletConfig servletConfig) {
        try {
            super.init(servletConfig);
        } catch (ServletException e) {
            e.printStackTrace();
        }
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        List<User> users = service.findAllUsers();
        req.setAttribute("users", users);
        RequestDispatcher dispatcher = req.getRequestDispatcher("/showUsers.jsp");
        dispatcher.forward(req, resp);

    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {

        String name = req.getParameter("name");
        int age = Integer.parseInt(req.getParameter("age"));
        User user = new User(name, age);
        service.saveUser(user);
        resp.sendRedirect("/users");

    }

    @Override
    protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        int id = Integer.parseInt(req.getParameter("id"));
        User user = service.findUser(id);
        user.setName(req.getParameter("name"));
        user.setAge(Integer.parseInt(req.getParameter("age")));
        service.updateUser(user);
        resp.sendRedirect("/users");
    }

    @Override
    protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws IOException {
        int id = Integer.parseInt(req.getParameter("id"));
        service.deleteUser(service.findUser(id));
        resp.sendRedirect("/users");
    }
}
جیسا کہ آپ دیکھ سکتے ہیں، اس میں init() طریقہ ہے، جو اوپر بیان کیا گیا ہے، اور 4 طریقوں کو لاگو کرتا ہے جو چار HTTP درخواستوں کے ساتھ موافق ہیں: doPost()، doGet()، doPut() اور doDelete()۔ وہ ہمیں صارفین بنانے، پڑھنے، اپ ڈیٹ کرنے اور حذف کرنے دیتے ہیں۔ طریقے javax.servlet.http.HttpServletRequest اور javax.servlet.http.HttpServletResponse کلاسز کی مثالوں کو بطور ان پٹ قبول کرتے ہیں، یعنی سرور کو بھیجی گئی درخواستیں اور کلائنٹ کی طرف سے موصول ہونے والے جوابات۔ اندرونی طور پر، طریقے UserService کلاس کے متعلقہ طریقوں کو کہتے ہیں، اور کلائنٹ کے لیے جواب تیار کیا جاتا ہے اور اسے /users URL پر بھیج دیا جاتا ہے۔ مثال کے طور پر، doGet() طریقہ میں، ہمیں تمام صارفین کی فہرست ملتی ہے۔ اس کے بعد، ہم ایک RequestDispatcher آبجیکٹ بناتے ہیں، جو ہمیں HTTP درخواست میں اشیاء کو شامل کرنے اور اسے ایک مخصوص وسائل پر بھیجنے دیتا ہے (مثال کے طور پر، کلائنٹ JSP صفحہ پر)۔ doPut() طریقہ میں (جو صارف کے ڈیٹا کو اپ ڈیٹ کرتا ہے)، ہم ایک HTTP درخواست پر کارروائی کرتے ہیں، آئی ڈی، نام اور عمر کے پیرامیٹرز کو نکالتے ہیں، مخصوص آئی ڈی والے صارف کو تلاش کرتے ہیں، اسے درخواست میں نام اور عمر تفویض کرتے ہیں، اور واپس کرتے ہیں۔ /صارفین کے صفحے پر۔ لیکن ان تمام طریقوں کو صحیح طریقے سے کام کرنے کے لیے، ہمیں سرولیٹ کو ترتیب دینے کی ضرورت ہے۔ ایسا کرنے کے لیے، ہم WEB-INF فولڈر میں web.xml فائل استعمال کرتے ہیں۔
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1"
         xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">

    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

    <servlet>
        <servlet-name>UserSimpleServlet</servlet-name>
        <servlet-class>servlets.UserSimpleServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>UserSimpleServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    <filter>
        <filter-name>hiddenHttpMethodFilter</filter-name>
        <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>hiddenHttpMethodFilter</filter-name>
        <servlet-name>UserSimpleServlet</servlet-name>
    </filter-mapping>

</web-app>
اس فائل میں تمام ٹیگز کافی بدیہی ہیں، لیکن آئیے ان کو ترتیب سے دیکھیں۔ <welcome-file-list> - JSP کے آغاز کا صفحہ اشارہ کیا گیا ہے، جو ایپلیکیشن شروع ہونے پر پہلے کھولا جائے گا۔ ہمارے معاملے میں، یہ index.jsp ہے۔ <servlet> - ہماری UserSimpleServlet کلاس کی بطور سرولیٹ رجسٹریشن۔ <servlet-mapping> - ایک بہت اہم ٹیگ۔ یہ ان URLs کی وضاحت کرتا ہے جن پر سرولیٹ کے ذریعے کارروائی کی جائے گی۔ ہمارے معاملے میں، یہ تمام URLs ہیں، لہذا ہم صرف "/" کی نشاندہی کرتے ہیں۔ لیکن اگر ہمارے پاس صارفین اور ان کی کاروں (آٹو) کو شامل کرنے والی ایپلی کیشن ہوتی، تو ہم دوسرا سرولیٹ (SimpleAutoServlet) بنا سکتے ہیں۔ پھر یوزر سرولیٹ کی میپنگ "/users" ہوگی (یعنی صارفین کے بارے میں درخواستیں)، اور آٹو سرولیٹ کی میپنگ "/autos" ہوگی۔ اور آخر میں، <filter>۔ اندرونی طور پر، یہ org.springframework.web.filter.HiddenHttpMethodFilter کلاس کی ایک مثال کی وضاحت کرتا ہے۔ یہ مضمون بہار کے بارے میں نہیں ہے، اس لیے میں اسے تفصیل سے بیان نہیں کروں گا۔ میں صرف یہ کہوں گا کہ یہ ہماری ایپلیکیشن پر صرف ایک اضافی خصوصیت کے طور پر شامل ہے۔ بات یہ ہے کہ ہم کلائنٹ سائیڈ بنانے کے لیے JSP پیجز استعمال کرنے جا رہے ہیں۔ ہمارا ڈیٹا صفحہ پر صارفین کی فہرست کے ساتھ ایک میز کے طور پر دکھایا جائے گا۔ JSP صفحات کے اندر، <form/> HTML ٹیگز استعمال کیے جائیں گے۔ لیکن <form/> سے ڈیٹا بھیجنے کے لیے صرف HTTP GET اور POST درخواستیں استعمال کی جا سکتی ہیں۔ دوسرے الفاظ میں، تینوں کارروائیوں کے لیے — اپ ڈیٹ کرنا، حذف کرنا، اور صارف بنانا — ہمیں صرف POST درخواستیں استعمال کرنا ہوں گی۔ PUT اور DELETE درخواستوں کا استعمال ہمارے لیے ایک آپشن نہیں ہوگا۔ اصولی طور پر، یہ بالکل عام اور لاگو کرنا آسان ہے، لیکن HiddenHttpMethodFilter کلاس ہمیں ان کا استعمال کرنے دیتی ہے۔ اس طرح، قاری زیادہ واضح طور پر ایپلی کیشن میں کارروائیوں کے درمیان فرق کو دیکھے گا۔ آخر میں، آئیے کلائنٹ کی طرف چلتے ہیں۔ اس کی نمائندگی پانچ JSP صفحات کرتے ہیں۔ index.jsp.
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Hello!</title>
</head>
<body>
If you want to start working with the user database,<br>
click the button below:

<form action = "users" method="get">
    <input type="submit" value="Start working with database">
</form>
</body>
</html>
addUser.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Add new user</title>
</head>
<body>
<form action = "/users" method="post">
    <input required type="text" name="name" placeholder="Name">
    <input required type="text" name="age" placeholder="Age">
    <input type="submit" value="Save">
</form>
</body>
</html>
deleteUser.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Delete user</title>
</head>
<body>

Are you sure you want to delete the user ${param.id}?

&lform action="/users/${param.id}" method="post">
    <input type="hidden" name="id" value="${param.id}">
    <input type="hidden" name="_method" value="delete">
    <input type="submit" value="Delete">
</form>

</body>
</html>
showUsers.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>User list</title>
</head>
<body>
<table border="2">
    <tr>
        <td>ID</td>
        <td>Name</td>
        <td>Age</td>
        <td>Actions</td>
    </tr>
    <c:forEach items="${users}" var = "user">
        <tr>
            <td>${user.getId()}</td>
            <td>${user.getName()}</td>
            <td>${user.getAge()}</td>
            <td>
                <form action = "updateUser.jsp" method="post">
                    <input type="hidden" name="id" value="${user.getId()}">
                    <input type="hidden" name="name" value="${user.getName()}">
                    <input type="hidden" name="age" value="${user.getAge()}">
                    <input type="submit" value="Modify" style="float:left">
                </form>
                <form action="deleteUser.jsp" method="post">
                    <input type="hidden" name="id" value="${user.getId()}">
                    <input type="submit" value="Delete" style="float:left">
                </form></td>
        </tr>
    </c:forEach>
</table>

<form action = "addUser.jsp">
    <input type="submit" value="Add new user">
</form>
</body>
</html>
updateUser.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Modify user data</title>
</head>
<body>

Edit user

<form action="/users/${param.id}" method="post">
    <input type="hidden" name = "id" value="${param.id}">
    <input type="text" name="name" value="${param.name}" placeholder=${param.name}>
    <input type="text" name="age" value="${param.age}" placeholder=${param.age}>
    <input type="hidden" name="_method" value="put">
    <input type="submit" value="Update">
</form>

</body>
</html>
ایک JSP (JavaServer صفحہ) صفحہ دو قسم کے متن پر مشتمل ہوتا ہے: جامد ماخذ ڈیٹا جسے متن کے طور پر فارمیٹ کیا جا سکتا ہے (HTML، SVG، WML، یا XML)، اور JSP عناصر جو متحرک مواد کی تعمیر کے لیے استعمال ہوتے ہیں۔ آپ کو یہ سمجھنے میں مدد کرنے کے لیے کہ JSP صفحہ کیا ہے، میں نے ایک بہت اچھے مضمون سے ایک حوالہ نقل کیا ہے۔ "بنیادی طور پر، پہلی بار جب جے ایس پی کی درخواست کی جاتی ہے، یہ ایک سرولیٹ میں بدل جاتا ہے اور ایک سرولیٹ کے طور پر کام کرتا ہے۔ یہ سمجھنا بہت ضروری ہے۔ ایک JSP صفحہ HTML صفحہ کی طرح نہیں ہوتا ہے - ایک ابتدائی پروگرامر کو واضح طور پر سمجھنا چاہیے کہ یہ ایک اور سرولیٹ ہے۔ — یہ صرف اتنا ہے کہ آپ کو یہ پروگرام نہیں کرنا پڑتا ہے کہ یہ کیسے ظاہر ہوتا ہے۔ اسے آسانی سے تیار کیا جا سکتا ہے۔ اور جہاں ضروری ہو ڈیٹا شامل کریں۔ لیکن چونکہ JSP صفحہ HTML کی یاد دلاتا ہے، اس لیے ڈیزائنر کو ظاہر ہے کہ یہ آسان ہو گا۔ اور ایک بار پھر ابتدائیوں پر سختی سے زور دیتے ہوئے، JSP صفحہ ایک SERVLET ہے ۔ یہ سرور پر تمام ڈیٹا کو شامل کرنے کے ساتھ تیار کیا جاتا ہے۔ یہیں سے تمام ڈیٹا داخل کیا جاتا ہے۔ اور براؤزر میں، صارف کو تیار شدہ HTML صفحہ ملتا ہے، جس میں جاوا کے آثار نہیں ہیں۔" آپ یقین کر سکتے ہیں کہ JSP صفحہ واقعی ایک سرولیٹ ہے، کیونکہ ہر صفحہ کا ایک طریقہ ہوتا ہے جس پر عمل درآمد کی ضرورت ہوتی ہے۔ مثال کے طور پر، index.jsp اشارہ کرتا ہے کہ جب آپ "ڈیٹا بیس کے ساتھ کام کرنا شروع کریں" کے بٹن پر کلک کریں گے، تو حاصل کرنے کا طریقہ عمل میں آئے گا (طریقہ = "حاصل کریں")۔ addUser.jsp صفحہ، جو کہ نئے صارفین بنانے کا ذمہ دار ہے، جب آپ سیو بٹن پر کلک کرتے ہیں تو پوسٹ کا طریقہ (طریقہ = "پوسٹ") پر عمل درآمد کرتا ہے۔ باقی JSP صفحہ باقاعدہ جامد HTML مارک اپ سے بنا ہے، اس لیے ہم اس پر غور نہیں کریں گے۔ یہ ایک اور مضمون کا موضوع ہے اور انٹرنیٹ پر اس موضوع پر کافی چیزیں موجود ہیں۔ لہذا، ہم نے اپنی درخواست بنائی ہے! اب ہمیں اسے عملی جامہ پہنانے کی ضرورت ہے! ایسا کرنے کے لیے، ہمیں اوپر ذکر کردہ Apache Tomcat سرولیٹ کنٹینر کی ضرورت ہے۔ آپ سرکاری ویب سائٹ سے کنٹینر ڈاؤن لوڈ کرسکتے ہیں (میں ورژن 8 استعمال کرتا ہوں)۔ اگلا، ہمیں Tomcat کے ذریعے اپنی ایپلیکیشن چلانے کے لیے IDEA میں ایک کنفیگریشن بنانے کی ضرورت ہے۔ ایسا کرنے کے لیے، "کنفیگریشنز میں ترمیم کریں" ٹیب کو کھولیں، جاوا سرولیٹس کا استعمال کرتے ہوئے آپ کی پہلی درخواست - 3ایک نئی کنفیگریشن بنائیں، جاوا سرولیٹس کا استعمال کرتے ہوئے آپ کی پہلی درخواست - 4اور "Tomcat Server Local" کو منتخب کریں۔ "ایپلی کیشن سرور" ٹیب پر، Tomcat فولڈر کے راستے کی وضاحت کریں جاوا سرولیٹس کا استعمال کرتے ہوئے آپ کی پہلی درخواست - 5اگلا، "تعیناتی" ٹیب پر جائیں۔ جاوا سرولیٹس کا استعمال کرتے ہوئے آپ کی پہلی درخواست - 6یہاں، ہم مقامی سرور پر اپنی درخواست کی تعیناتی کو ترتیب دیتے ہیں۔ "+" دبائیں، "آرٹیفیکٹ" کو منتخب کریں -> YourProjectName:war (ہم درخواست کو جنگی فائل میں بنائیں گے)۔ جاوا سرولیٹس کا استعمال کرتے ہوئے آپ کی پہلی درخواست - 7اور یہ اس کا خلاصہ ہے! "سرور" صفحہ پر، آپ دیکھ سکتے ہیں کہ ہماری درخواست http://localhost:8080/ پر چلے گی۔ کنفیگریشن کو محفوظ کریں اور اسے ایک نام دیں (میں اپنی تشکیل کو "ٹومی" کہتا ہوں)۔ اس کے بعد، IDEA میں Maven ٹیب پر (دائیں طرف)، ہم اپنے پروجیکٹ کو جنگی فائل میں بنانے کے لیے وار پلگ ان کا استعمال کریں گے (Plugins -> war -> war: war)۔ جاوا سرولیٹس کا استعمال کرتے ہوئے آپ کی پہلی درخواست - 8تعمیر مکمل ہونے کے بعد، ایپلیکیشن چلائیں اور انتظار کریں۔ کامیابی! ابتدائی صفحہ شروع کیا گیا۔ اب ہم "ڈیٹا بیس کے ساتھ کام کرنا شروع کریں" کے بٹن پر کلک کریں۔ ہمارا index.jsp ایک GET درخواست تیار کرے گا جس پر سرور کے ذریعے کارروائی کی جائے گی۔ سرور ایک جواب تیار کرے گا اور اسے تمام موجودہ صارفین کی فہرست کی شکل میں ہمیں واپس کرے گا (یہ فرض کرتے ہوئے کہ ڈیٹا بیس میں صارفین موجود ہیں)۔ اور وہ وہاں ہیں! کہ وہاں آپ کے پاس ہے! آپ نے اپنی پہلی درخواست Java servlets کا استعمال کرتے ہوئے لکھی۔ جاوا سرولیٹس کا استعمال کرتے ہوئے آپ کی پہلی درخواست - 9 یہ اتنا برا نہیں تھا، کیا یہ تھا؟ :) ہوم ورک کے لیے، آپ پچھلے مضمون سے کار کی فعالیت کو بحال کر سکتے ہیں ۔ دوسرے لفظوں میں، کاروں کے لیے ایک علیحدہ سرولیٹ اور JSP پیجز بنائیں، اور ایپلیکیشن کو سکھائیں کہ کس طرح صارف کی کاروں کی فہرست بنائی جائے، صارف میں نئی ​​کاریں شامل کی جائیں، اور ان میں ترمیم کرکے حذف کریں۔ PS Servlets اور JavaServer Pages بلکہ قدیم ٹیکنالوجیز ہیں۔ انٹرنیٹ پر، آپ کو اکثر ایسے تبصرے مل سکتے ہیں جیسے "اس پرانے ردی کی کس کو ضرورت ہے؟" جواب کافی آسان ہے: بنیادی طور پر وہ لوگ جو حقیقی پروجیکٹس پر کام کریں گے، جہاں انہیں ممکنہ طور پر بہت سارے کوڈ کا سامنا کرنا پڑ سکتا ہے جو ان ٹیکنالوجیز کو استعمال کرتے ہیں۔ اور یہاں تک کہ یہ سمجھے بغیر کہ یہ کیسے کام کرتا ہے، پھر بھی "پرانے ردی" کو کاٹ کر کسی نئی چیز میں تبدیل کرنا مزہ آتا ہے :) JSP اور servlets کے مزید گہرائی سے مطالعہ کے لیے، آپ کتاب " Head First Servlets and JSP" سے رجوع کر سکتے ہیں ۔ یہ انہی مصنفین کی طرف سے مشہور سپر کتاب "ہیڈ فرسٹ جاوا" کے طور پر لکھا گیا تھا، جسے بہت سے لوگ معیار کی ضمانت کے طور پر لیں گے :) مجھے امید ہے کہ یہ مضمون مددگار ثابت ہوا ہے! آپ کی توجہ کا شکریہ، اور سیکھنے میں اچھی قسمت!
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION