ASP.NET Dynamic Styles Response and Request Objects
Built-in ASP Objects • Response Object • Send text, data and cookies to the browser and control each stage of transmitting the page • Server Object • Overall scripting control, set the timeout variable for the script • Request Object • Read submitted form data, cookies and server variables
Built-in ASP Objects • Session Object • Allows to attach data to a specific user browsing the site that is isolated and invisible to other users (user session is identifiable by the cookie that is sent every time a user makes a request) (stay active by default until 20 minutes after the user’s last request or until the session is explicitly abandoned through the code) • Application Object • Allows to manipulate global data in the script that will be visible to all users browsing the site (ASP application itself)
RESPONSE OBJECT • Gives control over what data and data types sent to the client in the headers of HTTP response • Gives control over what data and data types sent to the client in the body of HTTP response • Gives control over when and how data is sent
RESPONSE OBJECT – Write (ASP) • Writes information directly to the HTTP response body. <% Response.Write “<table border=1>” Response.Write “<tr>” Response.Write “<td>” Response.Write “Hello” Response.Write “</td>” Response.Write “</tr>” Response.Write “</table>” %>
RESPONSE OBJECT – Write (.NET) • Response.Write() statements are placed throughout a script to trace the processing sequence and to write the contents of a variable. <SCRIPT runat="server">Sub ProcessThis (Src As Object, Args As EventArgs) Response.Write("Start of ProcessThis" & "<br>") ... ... Response.Write("End of ProcessThis" & "<br>") ProcessThatEnd Sub
RESPONSE OBJECT – Write (.NET) Sub ProcessThat Response.Write("Start of ProcessThat" & "<br>") Dim VarA = "Howdy" ... ... Response.Write("Value of VarA = " & VarA & "<br>") Response.Write("End of ProcessThat" & "<br>")End Sub </SCRIPT>
RESPONSE OBJECT – Write (.NET) <asp:Button Text="Trace" OnClick="ProcessThis" runat="server" /> Result: Start of ProcessThisEnd of ProcessThisStart of ProcessThatValue of VarA = HowdyEnd of ProcessThat
RESPONSE OBJECT - Redirect • Redirects the client’s request to another URL. Response.Redirect “http://www.mis.boun.edu.tr” Response.Redirect “x.asp” x.asp resides in the same folder as the requested page If the script has written any content to the HTTP response body, that content is ignored by the script once the call to the Redirect method is executed.
Response.Redirect (ASP) <% Response.Redirect "http://www.mis.boun.edu.tr" %> <HTML> <BODY> xx </BODY> </HTML>
Response.Redirect (.NET) <SCRIPT runat="server">Sub GoBack (Src As Object, Args As EventArgs) Response.Redirect("aspnet02-06.aspx")End Sub</SCRIPT><asp:Button Text="Go Back" OnClick="GoBack" runat="server" />
RESPONSE OBJECT - IsClientConnected • The Response.IsClientConnected property is useful when you need to make sure that the visitor is still connected to your Web site. • This issue arises when, say, you are conducting e-commerce with a customer. If you have just completed processing a set of transactions for a purchase being made, you might wish to check that the customer has not abandoned your site before finalizing those transactions.
RESPONSE OBJECT - Buffer • Determines whether the content created by the script is delivered to the client browser as a whole or send immediately to the client browser as each line is created and entered into the HTML stream • If set to TRUE, then all script on the page is run before the results of that script are sent to the client browser <% Response.Buffer = True %>
RESPONSE OBJECT - Clear • Empties the current contents of the Response buffer. • It does so without sending any of the buffered response to the client.
RESPONSE OBJECT - End • Ends all storage of information in the response buffer and sends the current contents of the buffer immediately to the client. • Any code present after the call to the End method is not processed.
Response.Buffer/Clear/End <% Response.Buffer = True %> <HTML> <BODY> <% Dim err err = 1 If Err <> 0 Then Response.Clear Response.Write "Error Created" Response.End End If %>
<% LANGUAGE=“VBSCRIPT” %> <html> <body> <% If Minute(Now) < 30 Then %> Before Half <% Else %> After Half <% End If %> of <% response.write (Hour(Now)) %> </body> </html> Screen: After half of 9 Source: <html> <body> After Half of 9 </body> </html> Example: Get System Time (ASP)
<% when=now() twoweekslater=dateadd("w",2,when) monthlater=dateadd("m",1,when) sixminuteslater=dateadd("n",6,when) sixhourslater=dateadd("h",6,when) response.write "Now <b>" & when & "</b><br>" response.write "1 month from Now <b>" & monthlater & "</b><br>" response.write "2 weeks from Now <b>" & twoweekslater & "</b><br>" %> six minutes from now <b> <%=sixminuteslater%> </b><br> six hours from now <b> <%=sixhourslater%> </b><br> Example: System Time
ASP - REQUEST OBJECT Collections Form (POST) Server Variables QueryString (GET) Cookies ClientCertificate Method BinaryRead Properties TotalBytes
REQUEST OBJECT- HttpRequest Class HttpRequest class provides a Request object that contains information about a URL request issued for a Web page. In general, the Request object pertains to Web page input, with a set of properties that provide information about the URL request received by the page
REQUEST OBJECT- ServerVariables Contain several predefined environment variables in the context of the client’s specific HTTP request of the web server.
REQUEST OBJECT- ServerVariables <SCRIPT runat="server">Sub Page_Load Browser.Text = Request.Browser.Browser BrowserVersion.Text = Request.Browser.Version BrowserPlatform.Text = Request.Browser.PlatformEnd Sub </SCRIPT>
REQUEST OBJECT- ServerVariables <html><body><h3>Properties of your request for this page:</h3><b>Browser Type: </b><asp:Label id="Browser" runat="server"/><br><b>Browser Version: </b><asp:Label id="BrowserVersion" runat="server"/><br><b>Browser Platform: </b><asp:Label id="BrowserPlatform" runat="server"/><br> </body></html>
REQUEST OBJECT- ServerVariables Output of the script is shown below: Properties of your request for this page: Browser Type: IEBrowser Version: 6.0Browser Platform: WinXP
REQUEST OBJECT- ServerVariables Possible Keys: • REMOTE_ADDR: TCP/IP of the client • REMOTE_HOST: The IP address from which the web server receives the request • REQUEST_METHOD: Get, Post, etc. • SERVER_NAME: Web server’s TCP/IP • HTTPS: “ON” if the client’s request is using SSL. • ALL_HTTP: One long string containing al the HTTP headers send by the client’s browser.
REQUEST OBJECT- ServerVariables Possible Keys: • LOGON_USER: Windows NT account with which the user has logged onto the system • URL: The base URL requested by the client in its HTTP request. • SERVER_PORT: The server port to which the client’s HTTP request is sent. <% Dim strUserName strUserName=Request.ServerVariables(“LOGON_USER”) %>
Get IP <HTML> <BODY> <% Dim strUserName strUserName=Request.ServerVariables ("REMOTE_ADDR") Response.Write strUserName %> merhaba </BODY> </HTML>
GET vs. POST • GET can be used to retrieve any document, POST cannot • GET and POST can be used to pass data to the object indicated by the URL • When POST is used, the data is passed to the server in the body of the request message • When GET is used, the data is included in the URL as argument string and needs to be parsed
REQUEST OBJECT- Form (POST) • User enters input into the fields of a form • When form is submitted, data in each field is transferred to the server, and then to ASP • Data is sent in the format: name = value name (attribute of <INPUT>)
HTTP Request Header Create the form: <html> <body> <h2> Sample Order </h2> <form method=“post” action=“response.asp”> <p> First Name: <input name = “fname” size=“48”> <p> Last Name: <input name = “lname” size=“48”>
HTTP Request Header <p> Title: <input name=“title” type=radio value=“mr”> Mr. <input name=“title” type=radio value=“ms”> Ms. <p> <input type=submit> <input type=reset> </form> </body> </html>
Response.asp * You should use the Form collection of the Request object to manipulate information <% title = request.form(“title”) lastname = request.form(“lname”) If title= “mr” Then%> Mr. <% = lastname %> <% ElseIf title = “ms” Then %> Ms. <% = lastname %> <% Else %> <% = request.form (“fname”) & “ “ & lastname %> <% End If %>
REQUEST OBJECT-TotalBytes TotalBytes property is a read-only value that specifies the total number of bytes posted to the web server by the client in the HTTP request body. Var = Request.TotalBytes
REQUEST OBJECT-Client Certificate Provides access to the certification fields of the client’s digital certificate. Client certificates are sent to the web server when a client’s browser supports the Secure Sockets Layer and that browser is connected to a web server running the SSL (https://). Request.ClientCertificate
REQUEST OBJECT-Client Certificate Subject: A list of comma-delimited strings that provide information about the owner of the digital certificate. Issuer: Information about the issuer. ValidFrom and ValidUntil: Validation dates SerialNumber: An ASCII representation Ex: 0A-B7-34-23 Certificate: A string value that contains the entire binary stream from the certificate content. Flags: Provide additional information such as presence of certificate.
REQUEST OBJECT-Client Certificate Request.ClientCertificate (“IssuerC”) Retrieve the country of origin for the Issuer. Request.ClientCertificate (“SubjectO”) Retrieve the organization of the Subject.
Session Tracking • HTTP is a stateless protocol that does not support persistent connections that would enable Web servers to maintain state information regarding clients. • A session ID represents a unique client on the Internet. If the client leaves a site and returns later, the client will still be recognized as the same user. • To help the server distinguish among clients, each client must identify itself to the server. • The tracking of each individual clients, known as session tracking, can be achieved in a number of ways.
Session Tracking Session tracking ways: • Use of input form elements of type hidden and sending them to the form handler on the Web server. • Use of HttpSessionState object • Cookies