JavaRush /جاوا بلاگ /Random-UR /Java servlets کا استعمال کرتے ہوئے آپ کی پہلی درخواست

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

گروپ میں شائع ہوا۔
سب کو سلام! اس مضمون میں، آپ servlets کے بنیادی ویب ڈویلپمنٹ تصور سے واقف ہو جائیں گے اور ان کا استعمال کرتے ہوئے ایک سادہ ایپلیکیشن لکھنے کے قابل ہو جائیں گے۔ غیر ضروری اقدامات سے بچنے کے لیے، ہم شروع سے شروع نہیں کریں گے، اور Hibernate کے بارے میںجاوا سرولیٹس کا استعمال کرتے ہوئے آپ کی پہلی درخواست - 1 میرے پچھلے مضمون سے اپنی درخواست پر کام جاری رکھیں گے ۔ تاہم، چونکہ ہم ابھی servlets کے ساتھ شروعات کر رہے ہیں، میں نے ایپلیکیشن سے آٹو کلاس سے متعلق ہر چیز کو ہٹا دیا ہے اور صرف یوزر کلاس اور اس کے اعمال کو چھوڑ دیا ہے۔ پروجیکٹ کا ڈھانچہ اس طرح نظر آئے گا: تو، سرولیٹ! ویکیپیڈیا کہتا ہے: "سرولیٹ ایک جاوا انٹرفیس ہے جس کے نفاذ سے سرور کی فعالیت میں توسیع ہوتی ہے۔ ایک سرولیٹ درخواست کے جواب کے اصول کے ذریعے کلائنٹس کے ساتھ بات چیت کرتا ہے۔" اور واقعی یہ ہے۔ یہاں ہم سب سے پہلے "کلائنٹ سرور ایپلیکیشن آرکیٹیکچر" کے تصور کا سامنا کرتے ہیں۔ اس کا جوہر کافی آسان ہے اور ایک تصویر میں فٹ بیٹھتا ہے ( یہاں سے لیا گیا ہے )۔ جاوا سرولیٹس کا استعمال کرتے ہوئے آپ کی پہلی درخواست - 2
جاوا سرولیٹس کا استعمال کرتے ہوئے آپ کی پہلی درخواست - 3
کلائنٹ ایک HTTP درخواست بھیج کر سرور سے رابطہ کرتا ہے۔ سرور ضروری ڈیٹا تیار کرتا ہے (مثال کے طور پر، اسے ڈیٹا بیس سے وصول کرتا ہے) اور اسے کلائنٹ کو واپس کرتا ہے۔ سب سے آسان مثال: کسی مخصوص سوشل نیٹ ورک پر آپ "فرینڈز" بٹن پر کلک کرتے ہیں اور اس طرح سرور کو درخواست بھیجتے ہیں۔ سرور ڈیٹا بیس میں آپ کے دوستوں کی فہرست چیک کرتا ہے اور آپ (کلائنٹ) کو واپس کرتا ہے۔ HTTP درخواستوں کی فہرست کافی بڑی ہے، لیکن اگر آپ نے کبھی ان کا سامنا نہیں کیا ہے، تو بہتر سمجھنے کے لیے ان کے بارے میں پڑھنا بہتر ہے، مثال کے طور پر، یہاں ۔ ہمارا کام یہ ہے کہ: servlets کا استعمال کرتے ہوئے 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 درخواستوں کے ساتھ ملتے ہیں - doGet()، doPost()، doPut() اور doDelete()۔ ان میں سے ہر ایک ہمیں بالترتیب صارفین کو وصول کرنے، تخلیق کرنے، ترمیم کرنے اور حذف کرنے کی اجازت دے گا۔ طریقے javax.servlet.http.HttpServletRequest اور javax.servlet.http.HttpServletResponse کلاسز کے ان پٹ آبجیکٹ کے طور پر لیتے ہیں - یعنی سرور کو بھیجی گئی درخواست اور کلائنٹ کو موصول ہونے والا جواب۔ طریقوں کے اندر، UserService کلاس کے ضروری طریقوں پر عمل درآمد کیا جاتا ہے، کلائنٹ کے لیے جواب تیار کیا جاتا ہے، اور پھر اسے /users ایڈریس پر بھیج دیا جاتا ہے۔ مثال کے طور پر، 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۔ پھر یوزر سرولیٹ کے لیے میپنگ "/صارف" (یعنی پروسیسنگ صارفین سے متعلق درخواستیں) ہوگی، اور آٹو سرولیٹ کے لیے یہ "/آٹو" ہوگی۔ اور آخر میں، <filter>۔ یہ اندرونی طور پر کلاس org.springframework.web.filter.HiddenHttpMethodFilter کے ایک آبجیکٹ کی وضاحت کرتا ہے۔ مضمون بہار سے متعلق نہیں ہے، لہذا میں اس کے بارے میں تفصیل سے بات نہیں کروں گا. میں صرف یہ کہوں کہ یہ ہماری درخواست کے ساتھ صرف ایک اضافی خصوصیت کے طور پر منسلک ہے۔ نقطہ یہ ہے کہ ہم کلائنٹ سائیڈ بنانے کے لیے JSP صفحات استعمال کریں گے۔ ہمارا ڈیٹا صفحہ پر صارفین کی فہرست کے ساتھ ایک میز کے طور پر دکھایا جائے گا۔ JSP صفحات کے اندر، HTML <form/> ٹیگز استعمال کیے جائیں گے۔ اور <form/> سے ڈیٹا بھیجنے کے لیے صرف HTTP GET اور POST درخواستیں استعمال کی جا سکتی ہیں۔ یعنی، تینوں کارروائیوں کے لیے - اپ ڈیٹ کرنا، حذف کرنا اور صارف بنانا - ہمیں صرف POST درخواستیں استعمال کرنا ہوں گی۔ PUT اور DELETE درخواستوں کا استعمال ہمارے لیے دستیاب نہیں ہوگا۔ اور، اصولی طور پر، یہ بالکل عام اور لاگو کرنا آسان ہے، لیکن HiddenHttpMethodFilter کلاس ہمیں ان کو استعمال کرنے کی اجازت دیتی ہے۔ اس سے ایپلی کیشن میں آپریشنز کے درمیان فرق قاری پر مزید واضح ہو جائے گا۔ آخر میں، آئیے کلائنٹ کی طرف چلتے ہیں۔ اس کی نمائندگی پانچ JSP صفحات کرتے ہیں۔ index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Здравствуйте!</title>
</head>
<body>
Если вы хотите начать работу с базой данных пользователей - <br>
нажмите кнопку ниже:

<form action = "users" method="get">
    <input type="submit" value="Начать работу с базой данных">
</form>
</body>
</html>
addUser.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Добавить нового пользователя</title>
</head>
<body>
<form action = "/users" method="post">
    <input required type="text" name="name" placeholder="Name">
    <input required type="text" name="age" placeholder="Возраст">
    <input type="submit" value="Сохранить">
</form>
</body>
</html>
deleteUser.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Удалить пользователя</title>
</head>
<body>

Вы действительно хотите удалить пользователя ${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="Удалить">
</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>Список пользователей</title>
</head>
<body>
<table border="2">
    <tr>
        <td>ID</td>
        <td>Name</td>
        <td>Возраст</td>
        <td>Действия</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="Изменить" style="float:left">
                </form>
                <form action="deleteUser.jsp" method="post">
                    <input type="hidden" name="id" value="${user.getId()}">
                    <input type="submit" value="Удалить" style="float:left">
                </form></td>
        </tr>
    </c:forEach>
</table>

<form action = "addUser.jsp">
    <input type="submit" value="Добавить нового пользователя">
</form>
</body>
</html>
updateUser.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Изменить данные пользователя</title>
</head>
<body>

Редактировать пользователя

<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="Обновить">
</form>

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