Απαντήσεις επιστημόνων html. Περιγραφή του αντικειμένου Response. Ρωτήστε τον καθηγητή Markup
Δημιουργία απόκρισης από τους ελεγκτές
Αφού ο ελεγκτής ολοκληρώσει την επεξεργασία του αιτήματος, συνήθως χρειάζεται να δημιουργήσει μια απάντηση. Όταν δημιουργούμε έναν ελεγκτή χαμηλού επιπέδου εφαρμόζοντας απευθείας τη διεπαφή IController, πρέπει να αναλαμβάνουμε την ευθύνη για κάθε πτυχή της επεξεργασίας αιτημάτων, συμπεριλαμβανομένης της δημιουργίας απάντησης στον πελάτη.
Για παράδειγμα, για να στείλετε μια απάντηση HTML, θα χρειαστεί να δημιουργήσετε και να συνθέσετε τα δεδομένα HTML και στη συνέχεια να τα στείλετε στον πελάτη χρησιμοποιώντας τη μέθοδο Response.Write(). Ομοίως, για να ανακατευθύνετε το πρόγραμμα περιήγησης του χρήστη σε άλλη διεύθυνση URL, θα χρειαστεί να καλέσετε τη μέθοδο Response.Redirect() και να της μεταβιβάσετε την απαιτούμενη διεύθυνση URL. Και οι δύο προσεγγίσεις παρουσιάζονται στον παρακάτω κώδικα, ο οποίος δείχνει επεκτάσεις της κλάσης BasicController που δημιουργήσαμε σε προηγούμενο άρθρο υλοποιώντας τη διεπαφή IController:
Χρήση System.Web.Mvc; χρησιμοποιώντας System.Web.Routing; Χώρος ονομάτων ControllersAndActions.Controllers ( δημόσια κλάση BasicController: IController ( public void Execute(RequestContext requestContext) ( string controller = (string)requestContext.RouteData.Values["controller"]; string action = (string)request[ContextContext"Values. "]; if (action.ToLower() == "redirect") ( requestContext.HttpContext.Response.Redirect("/Derived/Index"); ) else ( requestContext.HttpContext.Response.Write(string.Format("Controller : (0), Μέθοδος δράσης: (1)", ελεγκτής, ενέργεια)); ) ) ) )
Η ίδια προσέγγιση μπορεί να εφαρμοστεί στην περίπτωση κληρονομιάς ενός ελεγκτή από την κλάση Controller. Η κλάση HttpResponseBase, η οποία επιστρέφεται όταν η ιδιότητα requestContext.HttpContext.Response διαβάζεται στη μέθοδο Execute(), είναι προσβάσιμη μέσω της ιδιότητας Controller.Response, όπως φαίνεται στο παρακάτω παράδειγμα, η οποία επεκτείνει την κλάση DerivedController, που δημιουργήθηκε επίσης νωρίτερα από κληρονομώντας από την κλάση Controller:
Χρήση του συστήματος. χρησιμοποιώντας System.Web; χρησιμοποιώντας System.Web.Mvc; namespace ControllersAndActions.Controllers ( δημόσια κλάση DerivedController: Controller ( public ActionResult Index() ( // ... ) public void ProduceOutput() ( if (Server.MachineName == "ProfessorWeb") Response.Redirect("/Basic/Index" ); else Response.Write("Controller: Παράγωγο, Μέθοδος Ενέργειας: ProduceOutput"); ) ) )
Η μέθοδος ProduceOutput() χρησιμοποιεί την τιμή της ιδιότητας Server.MachineName για να αποφασίσει ποια απάντηση θα σταλεί στον πελάτη. ("ProfessorWeb" είναι το όνομα της μηχανής ανάπτυξης μου.)
Αν και αυτή η προσέγγιση δημιουργίας απάντησης στον χρήστη λειτουργεί, υπάρχουν αρκετά προβλήματα με αυτήν:
Οι κλάσεις ελεγκτών πρέπει να περιέχουν πληροφορίες δομής HTML ή URL, γεγονός που καθιστά δύσκολη την ανάγνωση και τη συντήρηση των κλάσεων.
Ένας ελεγκτής που παράγει απόκριση απευθείας στην έξοδο είναι δύσκολο να δοκιμαστεί σε μονάδα. Θα χρειαστεί να δημιουργήσετε εικονικές υλοποιήσεις του αντικειμένου Response και στη συνέχεια να μπορείτε να επεξεργαστείτε την έξοδο από τον ελεγκτή για να προσδιορίσετε τι είναι. Αυτό μπορεί να σημαίνει, για παράδειγμα, την ανάγκη ανάλυσης της σήμανσης HTML σε λέξεις-κλειδιά, που είναι μια μακρά και κουραστική διαδικασία.
Η επεξεργασία των μικρών λεπτομερειών κάθε απάντησης με αυτόν τον τρόπο είναι περίπλοκη και επιρρεπής σε σφάλματα. Σε ορισμένους προγραμματιστές αρέσει ο απόλυτος έλεγχος που παρέχεται από την κατασκευή ενός ελεγκτή χαμηλού επιπέδου, αλλά αυτό συνήθως περιπλέκεται πολύ γρήγορα.
Ευτυχώς, το MVC Framework διαθέτει ένα εύχρηστο εργαλείο που λύνει όλα αυτά τα προβλήματα - τα αποτελέσματα των ενεργειών. Οι ακόλουθες ενότητες εξηγούν την έννοια των αποτελεσμάτων ενεργειών και δείχνουν διάφορους τρόπους με τους οποίους μπορεί να χρησιμοποιηθεί για τη δημιουργία αποκρίσεων από ελεγκτές.
Αποτελέσματα ενεργειών
Τα αποτελέσματα ενεργειών στο MVC Framework χρησιμοποιούνται για τον διαχωρισμό των δηλώσεων πρόθεσης από την εκτέλεση της πρόθεσης (συγγνώμη για την ταυτολογία). Η ιδέα θα φαίνεται απλή μόλις το καταλάβετε, αλλά χρειάζεται λίγος χρόνος για να την κατανοήσετε λόγω κάποιας έμμεσης.
Αντί να ασχολούνται απευθείας με το αντικείμενο Response, οι μέθοδοι ενεργειών επιστρέφουν ένα αντικείμενο μιας κλάσης που προέρχεται από Αποτέλεσμα δράσης, το οποίο περιγράφει ποια θα πρέπει να είναι η απάντηση από τον ελεγκτή - για παράδειγμα, απόδοση μιας αναλυτικής προβολής ή ανακατεύθυνση σε άλλη διεύθυνση URL ή μέθοδο ενέργειας. Ωστόσο (αυτή είναι η ίδια η έμμεση) η απάντηση δεν παράγεται άμεσα. Αντίθετα, δημιουργείται ένα αντικείμενο ActionResult, το οποίο το MVC Framework επεξεργάζεται για να παράγει το αποτέλεσμα μετά την κλήση της μεθόδου δράσης.
Ένα σύστημα αποτελεσμάτων ενεργειών είναι ένα παράδειγμα του μοτίβου σχεδίασης εντολών. Αυτό το μοτίβο αντιπροσωπεύει σενάρια στα οποία αποθηκεύετε και μεταβιβάζετε αντικείμενα που περιγράφουν τις λειτουργίες που εκτελούνται.
Όταν το MVC Framework λαμβάνει ένα αντικείμενο ActionResult από μια μέθοδο ενέργειας, καλεί Μέθοδος ExecuteResult()., που ορίζεται στην κλάση αυτού του αντικειμένου. Στη συνέχεια, η υλοποίηση των αποτελεσμάτων ενέργειας λειτουργεί στο αντικείμενο Response, δημιουργώντας έξοδο που ταιριάζει με την πρόθεσή σας. Για να το δείξουμε στην πράξη, ας δημιουργήσουμε έναν φάκελο Infrastructure και ας προσθέσουμε ένα νέο αρχείο κλάσης σε αυτόν που ονομάζεται CustomRedirectResult.cs με μια προσαρμοσμένη υλοποίηση ActionResult που φαίνεται στο παρακάτω παράδειγμα:
Χρήση System.Web.Mvc; ControlersAndActionalsAndactions.infrastructure (Δημόσια τάξη CustomRedirectresult: ActionResult (δημόσια URL String (get; set;) δημόσια override void executeResult (controlercontext context) (fullUrl); ) ) )
Αυτή η κλάση βασίζεται στον τρόπο που λειτουργεί η κλάση System.Web.Mvc.RedirectResult. Ένα από τα πλεονεκτήματα ανοιχτή πηγήΤο MVC Framework έχει να κάνει με τη δυνατότητα να εξερευνήσετε τις εσωτερικές λειτουργίες του οτιδήποτε. Η κλάση CustomRedirectResult είναι πολύ πιο απλή από το αντίστοιχο MVC, αλλά είναι επαρκής για τους σκοπούς αυτού του άρθρου.
Κατά τη δημιουργία της κλάσης RedirectResult, μεταβιβάζουμε τη διεύθυνση URL στην οποία πρέπει να ανακατευθυνθεί ο χρήστης. Η μέθοδος ExecuteResult(), η οποία θα εκτελεστεί από το MVC Framework όταν ολοκληρωθεί η μέθοδος ενέργειας, λαμβάνει το αντικείμενο Response για το αίτημα μέσω του παρεχόμενου αντικειμένου ControllerContext του Framework και καλεί είτε τη μέθοδο RedirectPermanent() είτε τη μέθοδο Redirect() (αυτό είναι τι ακριβώς έγινε μέσα στην υλοποίηση χαμηλού επιπέδου του IController στο παράδειγμα νωρίτερα στο άρθρο).
Η χρήση της κλάσης CustomRedirectResult απεικονίζεται στο παρακάτω παράδειγμα, το οποίο δείχνει τις αλλαγές που έγιναν στον ελεγκτή Παράγωγο:
// ... χρησιμοποιώντας ControllersAndActions.Infrastructure; namespace ControllersAndActions.Controllers ( δημόσια κλάση DerivedController: Controller ( public ActionResult Index() ( // ... ) public ActionResult ProduceOutput() ( if (Server.MachineName == "MyMachineName") επιστρέφει νέο CustomRedirectResult "/Ba Url Ευρετήριο" ); else ( Response.Write("Controller: Παράγωγο, Μέθοδος ενέργειας: ProduceOutput"); return null; ) ) ) )
Σημειώστε ότι αναγκαστήκαμε να αλλάξουμε το αποτέλεσμα της μεθόδου ενέργειας για να επιστρέψουμε το ActionResult. Επιστρέφουμε null εάν δεν θέλουμε το MVC Framework να κάνει τίποτα όταν εκτελείται η μέθοδος ενεργειών μας, κάτι που κάναμε αν δεν επιστρεφόταν η παρουσία CustomRedirectResult.
Ελεγκτές και ενέργειες δοκιμής μονάδων
Πολλά μέρη του πλαισίου MVC έχουν σχεδιαστεί για να διευκολύνουν τη δοκιμή της μονάδας και αυτό ισχύει ιδιαίτερα για ενέργειες και ελεγκτές. Υπάρχουν διάφοροι λόγοι για αυτήν την υποστήριξη:
Μπορείτε να δοκιμάσετε ενέργειες και ελεγκτές εκτός του διακομιστή web. Τα αντικείμενα περιβάλλοντος είναι προσβάσιμα μέσω των βασικών τους κλάσεων (όπως το HttpRequestBase), το οποίο είναι εύκολο να χλευαστεί.
Για να ελέγξετε τα αποτελέσματα μιας μεθόδου ενέργειας, δεν χρειάζεται να αναλύσετε τη σήμανση HTML. Για να βεβαιωθείτε ότι λαμβάνετε τα αναμενόμενα αποτελέσματα, μπορείτε να επιθεωρήσετε το επιστρεφόμενο αντικείμενο ActionResult.
Δεν απαιτείται εξομοίωση αιτημάτων πελατών. Το σύστημα δέσμευσης μοντέλων του MVC Framework σάς επιτρέπει να γράφετε μεθόδους ενεργειών που λαμβάνουν δεδομένα στις παραμέτρους τους. Για να δοκιμάσετε μια μέθοδο ενεργειών, απλώς την καλείτε απευθείας και παρέχετε τις κατάλληλες τιμές παραμέτρων.
Μελλοντικά άρθρα σχετικά με τη δημιουργία δεδομένων από ελεγκτές θα σας δείξουν πώς να δημιουργήσετε δοκιμές μονάδων για ΔΙΑΦΟΡΕΤΙΚΟΙ ΤΥΠΟΙαποτελέσματα των ενεργειών.
Μην ξεχνάτε ότι η δοκιμή μονάδας είναι μόνο μέρος της εικόνας. Η σύνθετη συμπεριφορά σε μια εφαρμογή εμφανίζεται όταν οι μέθοδοι ενεργειών καλούνται διαδοχικά. Η δοκιμή μονάδας λειτουργεί καλύτερα όταν συνδυάζεται με άλλες προσεγγίσεις δοκιμών.
Τώρα που γνωρίζετε πώς λειτουργεί το ειδικό αποτέλεσμα μιας ενέργειας ανακατεύθυνσης, μπορείτε να μεταβείτε στο αντίστοιχο που προσφέρει το πλαίσιο MVC, το οποίο είναι πιο ισχυρό και έχει ελεγχθεί διεξοδικά από τη Microsoft. Απαιτείται αλλαγήΟ παράγωγος ελεγκτής δίνεται παρακάτω:
// ... public ActionResult ProduceOutput() ( επιστροφή νέου RedirectResult("/Basic/Index"); ) // ...
Η δήλωση υπό όρους έχει αφαιρεθεί από τη μέθοδο ενεργειών, πράγμα που σημαίνει ότι μετά την εκκίνηση της εφαρμογής και την πλοήγηση σε μια διεύθυνση URL όπως /Derived/ProduceOutput, το πρόγραμμα περιήγησης θα ανακατευθυνθεί σε μια διεύθυνση URL όπως /Βασικό/Ευρετήριο. Για να απλοποιηθεί ο κώδικας της μεθόδου ενέργειας, η κλάση Controller περιλαμβάνει μεθόδους ευκολίας για δημιουργία διάφοροι τύποιΑντικείμενα ActionResult. Έτσι, για παράδειγμα, μπορούμε να επιτύχουμε το ίδιο αποτέλεσμα όπως στο παραπάνω παράδειγμα επιστρέφοντας το αποτέλεσμα της μεθόδου Redirect():
// ... public ActionResult ProduceOutput() ( return Redirect("/Basic/Index"); ) // ...
Δεν υπάρχει τίποτα ιδιαίτερα περίπλοκο στο σύστημα αποτελεσμάτων ενεργειών, αλλά τελικά βοηθά στην παραγωγή απλούστερου, καθαρότερου, πιο συνεπούς κώδικα που είναι εύκολο να διαβαστεί και να δοκιμάζεται μονάδα. Για παράδειγμα, στην περίπτωση ανακατεύθυνσης, μπορείτε απλώς να ελέγξετε ότι η μέθοδος ενέργειας επιστρέφει μια παρουσία RedirectResult της οποίας η ιδιότητα Url περιέχει τον αναμενόμενο στόχο.
Το MVC Framework ορίζει πολλούς ενσωματωμένους τύπους αποτελεσμάτων ενεργειών, οι οποίοι περιγράφονται στον παρακάτω πίνακα:
Τύπος | Περιγραφή | Βοηθητικές Μέθοδοι της Τάξης Ελεγκτών |
---|---|---|
Προβολή Αποτελεσμάτων | Αποδίδει το καθορισμένο ή τυπικό πρότυπο προβολής |
Θέα() |
Αποτέλεσμα Μερικής Προβολής | Αποδίδει το καθορισμένο ή τυπικό πρότυπο μερικής προβολής |
PartialView() |
RedirectToRouteResult | Εκδίδει μια ανακατεύθυνση HTTP 301 ή 302 σε μια μέθοδο ενέργειας ή καθορισμένη καταχώρηση διαδρομής, δημιουργώντας μια διεύθυνση URL σύμφωνα με τη διαμόρφωση δρομολόγησης |
RedirectToAction() RedirectToActionPermanent() RedirectToRoute() RedirectToRoutePermanent() |
RedirectResult | Εκδίδει μια ανακατεύθυνση HTTP 301 ή 302 στη δεδομένη διεύθυνση URL |
Διευθύνω πάλιν() RedirectPermanent() |
Περιεχόμενο Αποτέλεσμα | Επιστρέφει μη μορφοποιημένα δεδομένα κειμένου στο πρόγραμμα περιήγησης, ορίζοντας επιπλέον την κεφαλίδα τύπου περιεχομένου |
Περιεχόμενο() |
Αποτέλεσμα αρχείου | Μεταφέρει δυαδικά δεδομένα (όπως ένα αρχείο στο δίσκο ή μια συστοιχία byte στη μνήμη) απευθείας στο πρόγραμμα περιήγησης |
Αρχείο() |
JsonResult | Σειροποιεί ένα αντικείμενο .NET σε JSON και το στέλνει ως απόκριση. Οι απαντήσεις αυτού του τύπου δημιουργούνται συχνότερα όταν χρησιμοποιούνται εργαλεία Web API και AJAX |
Json() |
JavaScriptResult | Στέλνει ένα απόσπασμα από το πρωτότυπο Κώδικας JavaScript, το οποίο πρέπει να εκτελεστεί από το πρόγραμμα περιήγησης |
JavaScript() |
HttpUnauthorizedResult | Ορίζει τον κωδικό κατάστασης απόκρισης HTTP σε 401 (που σημαίνει "μη εξουσιοδοτημένο"), το οποίο κάνει τον μηχανισμό ελέγχου ταυτότητας που βρίσκεται στη θέση του (έλεγχος ταυτότητας φόρμας ή έλεγχος ταυτότητας Windows) να ζητά από τον επισκέπτη να συνδεθεί |
Οχι |
HttpNotFoundResult | Επιστρέφει τον κωδικό σφάλματος HTTP 404 - Δεν βρέθηκε(δεν βρέθηκε) |
HttpNotFound() |
HttpStatusCodeResult | Επιστρέφει τον καθορισμένο κωδικό HTTP |
Οχι |
EmptyResult | Να μην κάνεις τίποτα |
Οχι |
Όλοι αυτοί οι τύποι προέρχονται από την κλάση ActionResult και πολλοί από αυτούς έχουν βολικό βοηθητικές μεθόδουςστην κατηγορία Controller. Θα δείξουμε τη χρήση αυτών των τύπων αποτελεσμάτων σε επόμενα άρθρα.
Αυτό το άρθρο παρέχει μια περίληψη των απαντήσεων που μπορεί να λάβει ένας οργανισμός ή έργο για τη διαχείριση ενός κινδύνου. Ο κίνδυνος μπορεί να οριστεί ως η αβεβαιότητα του αποτελέσματος είτε θετικό (μια ευκαιρία) είτε αρνητικό (μια απειλή). Η διαχείριση του κινδύνου είναι κρίσιμη για την επιτυχία του έργου και είναι καθήκον της διαχείρισης κινδύνου να διαχειριστεί την έκθεση ενός έργου στον κίνδυνο ().Η απόκριση(ες) σε έναν δεδομένο κίνδυνο πρέπει να αντικατοπτρίζει τον τύπο κινδύνου, την εκτίμηση κινδύνου (πιθανότητα, αντίκτυπο, κρισιμότητα) και τη στάση του οργανισμού απέναντι στον κίνδυνο. Υπάρχει ένας αριθμός πιθανών απαντήσεων σε κινδύνους και, καθώς οι κίνδυνοι μπορεί να είναι απειλές ή ευκαιρίες, αυτές περιλαμβάνουν απαντήσεις που είναι κατάλληλες για πιθανές ευκαιρίες. Οι απαντήσεις συνοψίζονται στον παρακάτω πίνακα.
Πίνακας απαντήσεων κινδύνου
Απόκριση κινδύνου | Περιγραφή/παράδειγμα | Κατάλληλο για…. τύποι κινδύνου (αυτές είναι προτάσεις και όχι εξαντλητικές) |
Απειλές | ||
Αποφύγει | Ο κίνδυνος αποφεύγεται με την αλλαγή του έργου με κάποιο τρόπο για να παρακαμφθεί ο κίνδυνος. |
Μερικοί πολιτικοί κίνδυνοι π.χ. αρνητική κοινή γνώμη Ορισμένοι κίνδυνοι τεχνικών/λειτουργικών/υποδομών π.χ. προβλήματα συντήρησης. Νομικοί και ρυθμιστικοί κίνδυνοι π.χ. ρυθμιστικούς ελέγχους, απαιτήσεις αδειοδότησης. |
ΜΕΤΑΦΟΡΑ | Μερικοί στρατηγικοί/εμπορικοί κίνδυνοι π.χ. κατά της κλοπής, της αφερεγγυότητας μπορεί να ασφαλιστεί. Δείτε τους επιχειρηματικούς κινδύνους για περισσότερα παραδείγματα. |
|
Περιορίζω | Λαμβάνονται μέτρα για να μειωθεί είτε η πιθανότητα εμφάνισης του κινδύνου είτε ο αντίκτυπος που θα έχει. |
Η πιο συχνά χρησιμοποιούμενη απάντηση στον κίνδυνο. Ευρέως εφαρμόσιμο - Τεχνικά/Λειτουργικά/Υποδομές π.χ. αμέλεια, αποτυχία απόδοσης, «ερπυσμός» εμβέλειας, ασαφείς προσδοκίες. Οργανωτικοί/διευθυντικοί/ανθρώπινοι παράγοντες π.χ. συγκρούσεις προσωπικότητας, κακή ηγεσία και κακή επιλογή προσωπικού. |
Ορισμένοι πολιτικοί, νομικοί και ρυθμιστικοί κίνδυνοι και οικονομικοί/οικονομικοί κίνδυνοι μπορεί να χρειαστεί να γίνουν αποδεκτοί με ένα ενσωματωμένο π.χ. πόλεμος και αταξία, διακύμανση των ισοτιμιών. |
||
Ενδεχόμενο | Εδώ τίθεται ένα σχέδιο για να ανταποκριθεί εάν ο κίνδυνος πραγματοποιηθεί. | Οικονομική/χρηματοοικονομική/αγοραία Αναμφισβήτητα όλοι οι κίνδυνοι μπορούν και πρέπει να έχουν ένα σχέδιο έκτακτης ανάγκης σε εφαρμογή. |
Ευκαιρίες | ||
Μερίδιο | Μοιράζεται μια ευκαιρία με έναν συνεργάτη ή προμηθευτή για μεγιστοποίηση των οφελών μέσω της χρήσης κοινών πόρων/τεχνολογίας κ.λπ. | Τεχνικά/επιχειρησιακά/υποδομές π.χ. νέα τεχνολογία, βελτιωμένα σχέδια. |
Εκμεταλλεύομαι | Ένα έργο θα μπορούσε να προσαρμοστεί για να επωφεληθεί από μια αλλαγή στην τεχνολογία ή μια νέα αγορά. | Οικονομικό/χρηματοοικονομικό/αγοραίο π.χ. νέες και αναδυόμενες αγορές, θετικές αλλαγές στις συναλλαγματικές ισοτιμίες ή στα επιτόκια. |
Ενισχύω | Λαμβάνονται μέτρα για να αυξηθεί η πιθανότητα εμφάνισης της ευκαιρίας ή ο θετικός αντίκτυπος που θα μπορούσε να έχει. | Στρατηγικές/εμπορικές ευκαιρίες όπως νέες συνεργασίες, νέες επενδύσεις κεφαλαίου, νέοι φορείς προώθησης. |
Απορρίπτω | Εδώ δεν γίνεται καμία ενέργεια και η ευκαιρία να κερδίσετε από την ευκαιρία απορρίπτεται. μπορεί να τεθεί σε εφαρμογή εάν παρουσιαστεί η ευκαιρία. | Πολιτικά ή περιβαλλοντικά π.χ. νέες συγκοινωνιακές συνδέσεις, αλλαγή κυβέρνησης που φέρνει θετικές αλλαγές στην πολιτική/ευκαιρίες για λόμπι κ.λπ. |
Σχέδια έκτακτης ανάγκηςθα πρέπει να προσδιορίσει τις ενέργειες που θα αναληφθούν σε περίπτωση κινδύνου. Οι ενδεχόμενες ενέργειες θα έχουν συχνά ένα σχετικό κόστος και θα πρέπει να διατεθεί ένας προϋπολογισμός στην επιχειρηματική υπόθεση για την κάλυψη αυτού.
Οι κορυφαίοι 50 επιχειρηματικοί κίνδυνοι και πώς να τους διαχειριστείτε!
20 Κοινοί κίνδυνοι έργου - παράδειγμα μητρώου κινδύνου
Λίστα ελέγχου 30 κατασκευαστικών κινδύνων
Αντιδράσεις κινδύνου - παραπομπές
Office of Government Commerce (2002), Managing Successful Projects with PRINCE2, Λονδίνο: TSO.The Projects Group PLC, 2006, Επισκόπηση Διαχείρισης Κινδύνων, Sutton: The Projects Group plc.
Το περιγραφόμενο αντικείμενο είναι πολύ χρήσιμο και ισχυρό εργαλείο. Αυτό το αντικείμενο έχει πολλές μεθόδους, η περιγραφή τους δίνεται παρακάτω:
Συλλογές:
Μέθοδοι:
Ιδιότητες:
Απάντηση.Συλλογή cookies
Η συλλογή Cookies ορίζει τιμές για τα cookies. Εάν τα καθορισμένα cookies δεν υπάρχουν, τα δημιουργεί. Εάν το cookie υπάρχει, παίρνει μια νέα τιμή και καταστρέφει την παλιά.
Απάντηση.Cookies(cookie) [(κλειδί) | . ιδιότητες ] = τιμή
Επιλογές:
- κουλουράκι- Όνομα cookie
- κλειδί- Προαιρετική παράμετρος. Εάν έχει καθοριστεί, τότε το cookie είναι ένας κατάλογος (ένθετος) και το κλειδί είναι ένα σύνολο τιμών.
- γνωρίσματα- Καθορισμένες πληροφορίες σχετικά με τα ίδια τα cookies. Αυτή η παράμετρος μπορεί να είναι μία από τις ακόλουθες:
- έννοια- Υποδεικνύει την τιμή που θα εκχωρηθεί αυτό το κλειδίή χαρακτηριστικό.
Ονομα | Περιγραφή |
Τομέα | Μόνο ηχογράφηση. Εάν ορίζεται, τα cookies αποστέλλονται μόνο κατόπιν αιτήματος από αυτόν τον τομέα. |
Λήγει | Μόνο ηχογράφηση. Η ημερομηνία λήξης του cookie. Αυτή η ημερομηνία πρέπει να οριστεί προκειμένου τα cookies να εγγράφονται στον πελάτη HDDμετά το τέλος της συνεδρίας. Εάν αυτό το χαρακτηριστικό δεν έχει οριστεί, τότε η ημερομηνία λήξης του cookie θεωρείται ότι είναι η τρέχουσα ημερομηνία. Τα cookies θα λήξουν αμέσως μετά το τέλος της συνεδρίας. |
HasKey | Μόνο διάβασμα. Υποδεικνύει εάν το cookie περιέχει το δεδομένο κλειδί. |
Μονοπάτι | Μόνο ηχογράφηση. Εάν ορίζεται, τα cookies αποστέλλονται μόνο κατόπιν αιτήματος από αυτήν τη διαδρομή. Εάν η παράμετρος δεν έχει οριστεί, χρησιμοποιείται η διαδρομή προς την εφαρμογή. |
Ασφαλής | Μόνο ηχογράφηση. Υποδεικνύει εάν τα cookies θα προστατεύονται ή όχι. |
Σχόλιο:
Εάν το cookie κλειδιού έχει δημιουργηθεί όπως φαίνεται στο παρακάτω σενάριο,
<% Response.Cookies("mycookie")("type1") = "сахар" Response.Cookies("mycookie")("type2") = "печенье" %>
τότε θα σταλεί η ακόλουθη κεφαλίδα:
Set-Cookie:MYCOOKIE=TYPE1=ζάχαρη&TYPE2=cookies
Εάν εκχωρήσετε μια τιμή στο mycookie χωρίς να χρησιμοποιήσετε κλειδιά, τότε αυτή η ενέργεια θα καταστρέψει τα κλειδιά τύπου1 και τύπου2. Π.χ:<% Response.Cookies("myCookie") = "шоколадный зефир" %>
Στο προηγούμενο παράδειγμα, τα κλειδιά type1 και type2 θα καταστραφούν και οι τιμές τους θα χαθούν. Το Mycookie θα περιέχει τώρα την αξία marshmallow σοκολάτας.
Μπορείτε επίσης να ελέγξετε την ύπαρξη συγκεκριμένου κλειδιού με τον ακόλουθο τρόπο:
<% = Response.Cookies("myCookie").HasKeys %>
Εάν εμφανίζεται η ένδειξη TRUE, τότε υπάρχει τέτοιο κλειδί, ενώ εάν FALSE, δεν υπάρχει.
Απόκριση. Μέθοδος εγγραφής
Response.Write variable_or_value
Επιλογές:
- μεταβλητή_ή_τιμή- Δεδομένα που θα εμφανίζονται στην οθόνη του προγράμματος περιήγησης μέσω HTML. Αυτή η παράμετρος μπορεί να είναι οποιουδήποτε τύπου που υποστηρίζεται από τη VisualBasic Scripting Edition. Δηλαδή, τα δεδομένα μπορεί να είναι των εξής τύπων: ημερομηνία, συμβολοσειρά, χαρακτήρας, αριθμητικές τιμές. Η τιμή αυτής της παραμέτρου δεν μπορεί να περιέχει τον συνδυασμό %>. Αντίθετα, μπορείτε να χρησιμοποιήσετε τον ισοδύναμο συνδυασμό %\>. Ο διακομιστής web θα μετατρέψει αυτήν την ακολουθία στην απαιτούμενη κατά την εκτέλεση του σεναρίου.
Το ακόλουθο παράδειγμα δείχνει πώς λειτουργεί η μέθοδος Response.write για την έξοδο ενός μηνύματος στον πελάτη.
Θα σου πω μόνο:<%Response.write "Привет всем!!!"%>Και το όνομά σου<%Response.write(Request.Form("name"))%>
Το παρακάτω παράδειγμα προσθέτει μια ετικέτα HTML σε μια ιστοσελίδα. Επειδή αυτή η μέθοδος δεν μπορεί να περιέχει τον συνδυασμό %>, χρησιμοποιούμε την ακολουθία %\>. Λοιπόν ένα παράδειγμα σεναρίου:
<% Response.write "
Σ.Ν. | Κωδικός και Περιγραφή |
---|---|
1 | 1xx: Ενημερωτικό Σημαίνει ότι το αίτημα ελήφθη και η διαδικασία συνεχίζεται. |
2 | 2xx: Επιτυχία Σημαίνει ότι η ενέργεια παραλήφθηκε με επιτυχία, έγινε κατανοητή και αποδεκτή. |
3 | 3xx: Ανακατεύθυνση Σημαίνει ότι πρέπει να ληφθούν περαιτέρω μέτρα προκειμένου να ολοκληρωθεί το αίτημα. |
4 | 4xx: Σφάλμα πελάτη Σημαίνει ότι το αίτημα περιέχει λανθασμένη σύνταξη ή δεν μπορεί να εκπληρωθεί. |
5 | 5xx: Σφάλμα διακομιστή Σημαίνει ότι ο διακομιστής απέτυχε να εκπληρώσει ένα φαινομενικά έγκυρο αίτημα. |
Οι κωδικοί κατάστασης HTTP είναι επεκτάσιμοι και οι εφαρμογές HTTP δεν απαιτείται να κατανοούν την έννοια όλων των καταχωρημένων κωδικών κατάστασης. Μια λίστα με όλους τους κωδικούς κατάστασης έχει δοθεί σε ξεχωριστό κεφάλαιο για αναφορά.
Πεδία κεφαλίδας απόκρισης
Θα μελετήσουμε το General-header και το Entity-header σε ξεχωριστό κεφάλαιο όταν θα μάθουμε τα πεδία κεφαλίδας HTTP. Προς το παρόν, ας ελέγξουμε ποια είναι τα πεδία κεφαλίδας απόκρισης.
Τα πεδία κεφαλίδας απάντησης επιτρέπουν στον διακομιστή να μεταβιβάσει πρόσθετες πληροφορίες σχετικά με την απόκριση που δεν μπορούν να τοποθετηθούν στη Γραμμή κατάστασης. Αυτά τα πεδία κεφαλίδας παρέχουν πληροφορίες για τον διακομιστή και για περαιτέρω πρόσβαση στον πόρο που προσδιορίζεται από το Request-URI.
-
Proxy-Authenticate
-
WWW-Authenticate
Μπορείτε να εισαγάγετε τα προσαρμοσμένα πεδία σας σε περίπτωση που πρόκειται να γράψετε τον δικό σας προσαρμοσμένο πελάτη και διακομιστή Web.
Παραδείγματα μηνυμάτων απάντησης
Τώρα ας τα συγκεντρώσουμε όλα μαζί για να σχηματίσουμε μια απάντηση HTTP για ένα αίτημα ανάκτησης του γεια.htmσελίδα από τον διακομιστή web που εκτελείται στον ιστότοπο
HTTP/1.1 200 OK Ημερομηνία: Δευτ., 27 Ιουλίου 2009 12:28:53 GMT Διακομιστής: Apache/2.2.14 (Win32) Τελευταία τροποποίηση: Τετ, 22 Ιουλίου 2009 19:15:56 GMT Περιεχόμενο-Μήκος: Τύπος: text/html Σύνδεση: Κλειστό
Γειά σου Κόσμε!
Το ακόλουθο παράδειγμα δείχνει ένα μήνυμα απόκρισης HTTP που εμφανίζει κατάσταση σφάλματος όταν ο διακομιστής web δεν μπορούσε να βρει τη σελίδα που ζητήθηκε:
HTTP/1.1 404 Δεν βρέθηκε Ημερομηνία: Κυριακή, 18 Οκτ 2012 10:36:20 GMT Διακομιστής: Apache/2.2.14 (Win32) Περιεχόμενο-Μήκος: 230 Σύνδεση: Κλειστό Περιεχόμενο-Τύπος: text/html; charset=iso-8859-1
Δεν βρέθηκε
Η διεύθυνση URL /t.html που ζητήθηκε δεν βρέθηκε σε αυτόν τον διακομιστή.
Το παρακάτω είναι ένα παράδειγμα μηνύματος απόκρισης HTTP που δείχνει κατάσταση σφάλματος όταν ο διακομιστής Ιστού αντιμετώπισε λάθος έκδοση HTTP στο δεδομένο αίτημα HTTP:
HTTP/1.1 400 Κακή ημερομηνία αίτησης: Κυριακή, 18 Οκτ 2012 10:36:20 GMT Διακομιστής: Apache/2.2.14 (Win32) Μήκος περιεχομένου: 230 Τύπος περιεχομένου: text/html; charset=iso-8859-1 Σύνδεση: Κλειστό
Κακό αίτημα
Το πρόγραμμα περιήγησής σας έστειλε ένα αίτημα που αυτός ο διακομιστής δεν μπορούσε να κατανοήσει.
Η γραμμή αιτήματος περιείχε μη έγκυρους χαρακτήρες μετά τη συμβολοσειρά πρωτοκόλλου.
Αυτό το mod δείχνει την αποτελεσματικότητά σας στη μάχη τις τελευταίες 24 ώρες. Υπάρχει μια ρύθμιση παραμέτρων για τη ρύθμιση ορισμένων παραμέτρων. Στατιστικά συνεδρίας Το mod βασίζεται σε, προσθέτει...