জাভা ওয়েব অ্যাপস কেন .do এক্সটেনশন ব্যবহার করে? এটা কোথা থেকে এসেছে?


114

আমি সবসময় ভাবছি যে কেন এত বেশি জাভা বিকাশকারীরা তাদের ওয়েব কন্ট্রোলার (এমভিসি) সংস্থানগুলির জন্য এক্সটেনশন হিসাবে ".do" ব্যবহার করেন। উদাহরণ: http://example.com/register.do

এমনকি স্প্রিং এমভিসি এবং স্ট্রটস প্রকল্পগুলিতে এটি দেখেছি বলে এটি ফ্রেমওয়ার্ক নির্দিষ্ট বলে মনে হয় না। এই ".ডো" এক্সটেনশন অনুশীলনটি কোথা থেকে এসেছে। কেন এটি বাড়ানো হয়নি তার পরিবর্তে? আমার মনে হচ্ছে আমি এতে জাভা ওয়ার্ল্ড মেমো মিস করেছি।

ব্যক্তিগতভাবে আমি কোনও এক্সটেনশন পছন্দ করি না।


4
".Do" থেকে মাইগ্রেট করতে এবং বন্ধুত্বপূর্ণ ইউআরএলএস রাখতে চান এমন লোকদের জন্য বন্ধুত্বপূর্ণ নোট এক্সটেনশনটির পরিবর্তে সার্ভলেট পাথটি ব্যবহার করুন অর্থাত্ / কর / লগইন করুন এবং তারপরে / কর / লগইন ==> / লগইন করতে টাকি ফিল্টার ইউআরএল পুনর্লিখন ব্যবহার করুন।
অ্যাডাম জেন্ট

সত্য, ইউআরএল পুনর্লিখন (এটি মোড_উইরাইট বা টাকির ফিল্টারের মাধ্যমে) কৌশলটি করতে পারে do
পাস্কেল থিভেন্ট

1
এটি বেশ বোকামি, এবং এর জন্য কোনও অজুহাত নেই।
অপরিবর্তনীয়

উত্তর:


75

আমার জানা মতে, এই সম্মেলনটি স্ট্রুট 1 দ্বারা ছড়িয়ে পড়েছে। ব্যবহারকারী গাইড এটিকে এভাবে রাখে:

5.4.2 অ্যাকশনসারলেট ম্যাপিং কনফিগার করুন

দ্রষ্টব্য: এই বিভাগের উপাদানগুলি স্ট্রুটসের জন্য নির্দিষ্ট নয়। সার্ভালেট ম্যাপিংয়ের কনফিগারেশনটি জাভা সার্লেলেট নির্দিষ্টকরণে সংজ্ঞায়িত করা হয়েছে। এই বিভাগটি একটি অ্যাপ্লিকেশন কনফিগার করার সর্বাধিক সাধারণ উপায় বর্ণনা করে।

ইউআরএল সংজ্ঞায়িত করার জন্য দুটি সাধারণ পন্থা রয়েছে যা নিয়ামক সার্লেট - প্রেফিক্স ম্যাচিং এবং এক্সটেনশান মিলের মাধ্যমে প্রক্রিয়া করা হবে। প্রতিটি পদ্ধতির জন্য উপযুক্ত ম্যাপিং এন্ট্রি নীচে বর্ণিত হবে।

উপসর্গের মিলের অর্থ হ'ল আপনি যে সমস্ত ইউআরএল শুরু করতে চান (প্রসঙ্গ পাথ অংশের পরে) একটি নির্দিষ্ট মান এই সার্লেলে পাস করতে চান। এই জাতীয় এন্ট্রি দেখতে এই রকম হতে পারে:

<servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>/do/*</url-pattern>
</servlet-mapping>

এর অর্থ হ'ল /logonআগে বর্ণিত পথটির সাথে মিলের জন্য একটি অনুরোধ ইউআরআই এর মতো দেখতে পাওয়া যেতে পারে:

http://www.mycompany.com/myapplication/do/logon

যেখানে /myapplicationআপনার অ্যাপ্লিকেশন মোতায়েন করা হচ্ছে সেই প্রসঙ্গের পথটি।

অন্যদিকে এক্সটেনশন ম্যাপিং, ইউআরআই-কে অনুরোধ করে অক্ষরগুলির সংজ্ঞায়িত সেট দ্বারা একটি পিরিয়ডের সাথে শেষ হওয়ার পরে একটি ক্রিয়াকলাপ সার্লেটটিতে অনুরোধ করে। উদাহরণস্বরূপ, জেএসপি প্রসেসিং সার্ভলেটটিকে *.jspপ্যাটার্নটিতে ম্যাপ করা হয়েছে যাতে অনুরোধ করা প্রতিটি জেএসপি পৃষ্ঠা প্রক্রিয়া করার জন্য বলা হয়। এক্সটেনশনটি ব্যবহার করতে *.do(যা বোঝায় "কিছু করুন") ম্যাপিং এন্ট্রিটি দেখতে এই রকম হবে:

<servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>

এবং /logonপূর্বে বর্ণিত পথটির সাথে ইউআরআইয়ের অনুরোধটি দেখতে এইরকম হতে পারে:

http://www.mycompany.com/myapplication/logon.do

সতর্কতা - আপনি যদি <servlet-mapping>নিয়ামক সার্লেটের জন্য একাধিক উপাদান নির্ধারণ করেন তবে ফ্রেমওয়ার্কটি সঠিকভাবে কাজ করবে না ।

সতর্কতা - আপনি যদি সংস্করণ 1.1 থেকে নতুন মডিউল সমর্থন ব্যবহার করছেন তবে আপনার সচেতন হওয়া উচিত যে কেবল এক্সটেনশান ম্যাপিং সমর্থন করে।

এবং আমি মনে করি এই কনভেনশনটি রাখা হয়েছে (কখনও কখনও স্ট্রুটস 1 প্রতিস্থাপনের পরেও ইউআরএল পরিবর্তন না করা , কখনও কখনও লোকেরা এতে খুশি হয়েছিল বলে)।


2
আমি অনুভব করেছি এটি স্ট্রুটস ১। এত দীর্ঘ সময় আগে আমি অবশ্যই ভুলে গিয়েছিলাম। সেগুলি জাভা ওয়েব দেবের পক্ষে খুব ভাল দিন ছিল না।
অ্যাডাম জেন্ট

4
@ অ্যাডাম সেই সময় (2001), আমি স্ট্রুট 1 এর সাথে খুশি ছিলাম। আজ, এটি ব্যবহার করে আমার কাঁদবে।
পাস্কেল থিভেন্ট

5
2001 সালে আমরা স্ট্রুট 1 পাওয়ার জন্য খুব আউট!
থরবজর্ন রাভন অ্যান্ডারসন

2
স্ট্রুটস 2 এর সাথে আমরা সবাই খুশি হতে পারি!
আলিরেজা ফাত্তাহী

9

আপনার স্ট্রুট সার্লেটটি ওয়েব। এক্সএমএলে * .do এ স্ট্রट्स সার্লেলে ইউআরএলগুলি ম্যাপ করার জন্য একটি সাধারণ অনুশীলন ছিল। উদাহরণ স্বরূপ:

<!-- Standard Action Servlet Mapping -->
<servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>

এটির জন্য সম্মেলন ছাড়া আসলে কোনও কারণ নেই। আপনি যদি কোনও এক্সটেনশান ব্যবহার না করেন তবে আপনার ছবিতে এবং এমন কোনও স্ট্যাটিক সামগ্রী যাতে আপনার সেভলেটে প্রেরণ না করে এমনভাবে হ্যান্ডেল করার জন্য আপনাকে কিছু জাদু করতে হবে। প্রায়শই এটি একটি ফ্রন্টিং ওয়েব সার্ভারের লোড ব্যালান্সারের হয়ে যায়।


2
আমি জানি না এটি যাদু হওয়া সম্পর্কে। এর মধ্যে একটি মাস্টার প্রেরণ সার্ভলেট রয়েছে এবং সম্ভবত / মাইসারলেট / উপসর্গটি এড়াতে কিছু ইউআরএল পুনর্লিখন করছে। টুকির ইউআরএল পুনরায় লেখা দেখুন।
অ্যাডাম জেন্ট

-2

সিকিউরিটির একটি টিপ!

আপনার নিয়ামকের জন্য কিছু অস্বাভাবিক এক্সটেনশন ব্যবহার করা ভাল অনুশীলন, এইভাবে অনুপ্রবেশকারীদের সাইট সম্পর্কে কিছু তথ্য সন্ধান করতে আরও সময় ব্যয় করতে হবে।

সুতরাং যদি আপনি ডিফল্ট এক্সটেনশান এবং আপনার ফ্রেমওয়ার্কের কয়েকটি স্ট্যাটিকস পরিবর্তন করেন যা আপনার হাত প্রকাশ করতে পারে তবে আপনার এমভিসি কাঠামো সম্পূর্ণ অজানা হতে পারে।

এমনকি এক্সটেনশন পরিবর্তন করুন phpবা aspxভাল ধারণা হতে পারে।

আসলে এটি নিরবচ্ছিন্নভাবে সুরক্ষা, তবে এটি ভাল সুরক্ষার বিপরীত নয়। ইতিমধ্যে সুরক্ষিত সিস্টেমের উপরে অস্পষ্টতা দ্বারা সুরক্ষা স্তর স্থাপন সহায়তা করতে পারে। সুরক্ষার জন্য আকর্ষণীয় উপকারিতা এবং কনসগুলি হ'ল আবদ্ধকরণ এবং যখন সেগুলি উভয়ই ইন্টারনেটে ব্যবহার করা যায়।


5
অস্পষ্টতার দ্বারা এটি সুরক্ষা।
টিজিও

সত্যিই এটি হতাশ
ব্র্যান্ডন জি

4
অস্পষ্টতা ভাল সুরক্ষার বিপরীত নয়। ক্লায়েন্টদের জানার দরকার শূন্য রয়েছে এমন তথ্য প্রকাশ করতে অস্বীকার করা একটি ভাল অনুশীলন। আমার সংস্থায় আমরা সমস্ত ওয়েবসারভার এবং অ্যাপ্লিকেশন সার্ভারের শিরোনামগুলি আউট স্ক্রাব করেছি এবং এটি একটি মেক-আপ স্ট্রিং দিয়ে প্রতিস্থাপন করেছি। এমনকি অস্পষ্ট সাইটগুলি যে পরিমাণ দুর্বলতা স্ক্যান করে তার পরিমাণ বাদাম, নিজেকে কোনও লক্ষ্য থেকে কম করতে আপনি যা কিছু করতে পারেন তা ইতিবাচক।
এক্সপি 84

ডিফল্টরূপে, প্রতিক্রিয়া শিরোনামগুলি জিনিসগুলি বের করার জন্য যথেষ্ট হবে।
কান্নান রামমূর্তি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.