61、簡述使用Cookie進行會話跟蹤的過程。(寫出主要步驟,即存取數據的步驟)
//從登錄驗證頁面表單中獲取用戶名
String
username=reqeust.getParameter("username");
//創建Cookie
Cookie uname=new Cookie("uname",
username);
response.addCookie(uname);
//獲取請求中的Cookie,以數組方式保存
Cookie cookies[ ]=request.getCookies();
//循環遍歷數組,得到key=uname的Cookie
for(int i=0;i<cookies.length;i++){
Cookie ucookie=cookies[i];
if(ucookie.getName().equals("uname”))
{
System.out.print(“歡迎你:”+ucookie.getValue());
}
62、簡述JSP的9大內置對象
out 向客戶端輸出數據
request 向客戶端請求數據
response 封裝了jsp產生的響應,然後被髮送到客戶端以響應客戶的請求
application 服務器和應用程序的信息
config 表示Servlet的配置
page Jsp實現類的實例,它是jsp本身,通過這個可以對它進行訪問
pagecontext 爲JSP頁面包裝頁面的上下文。管理對屬於JSP中特殊可見部分中己經命名對象的訪問
session 用來保存每個用戶的會話信息
exception 反映運行的異常
63、什麼是application對象,application對象與session對象的區別?
Application的數據信息保存在服務器內存中,服務器關閉信息丟失,Session 用於保存每個用戶的專用信息,退出網站或瀏覽器時信息丟失,application作用於整個服務器而session作用於會話,當打開一個瀏覽器會話開始,關閉瀏覽器會話結束,主要用來保存用戶的會話信息等。
64、簡述Jsp的執行過程。
首先,由客戶端瀏覽器向Web服務器提出訪問JSP頁面的請求(Request),然後由JSP引擎負責將JSP轉成Servlet,產生的Servlet經過編譯後生產類文件,然後再把類文件加載到內存執行。最後,由Web服務器將執行結果即響應 (Response)給客戶端瀏覽器。
65、JSP和 Servlet有哪些相同點和不同點,他們之間的聯繫是什麼
JSP是Servlet技術的擴展,本質上是Servlet的簡易方式,更強調應用的外表表達。JSP編譯後是"類servlet"。
Servlet和JSP最主要的不同點在於,Servlet的應用邏輯是在Java文件中,並且完全從表示層中的HTML裏分離開來。而JSP的情況是Java和HTML可以組合成一個擴展名爲.jsp的文件。
JSP側重於視圖,Servlet主要用於控制邏輯。
創建一個用戶登錄界面的
servlet。要求:
)用戶界面包括用戶名、密碼、提交按鈕、重置按鈕
)表單提交給自己。
)獲取表單裏面的所有參數,並在頁面上顯示出來。
)要求有中文的處理
)寫出該 servlet相應的 web.xml配置。
public class Servlet_test1 extends
HttpServlet
{
public
String getString(String str) //中文處理方法
{
try
{
if(str==null)
{ str=""; }
else
{
byte
b[]=str.getBytes("ISO-8859-1");
str=new
String(b);
}
}
catch(Exception
e)
{
System.out.println(e.toString());
}
return
str;
}
public
void service(HttpServletRequest request,HttpServletResponse response)
throws
ServletException,IOException
{
response.setContentType("text/html;charset=gb2312");
PrintWriter
out=response.getWriter();
//打印出一個表單
out.println("<form
action='Servlet_test1' >");
out.println("<center>");
out.println("用戶登錄界面");
out.println("<p>用戶名:<input type='text'
name='username'>");
out.println("<p>密
碼:<input
type='password' name='password'>");
out.println("<p><input
type='submit' value='提交' name='submit'>");
out.println("<input
type='reset' value='重置' name='reset'>");
out.println("</center>");
//取出所有參數
Enumeration
e=request.getParameterNames();
if(e!=null)
{
while(e.hasMoreElements())
{
String name=(String)e.nextElement();
String value=request.getParameter(name);
//中文處理
name=getString(name);
value=getString(value);
//顯示所有的參數名和參數信息
out.println(name+":"+value);
out.println("<br>");
}
}
}
}
web.xml配置爲:
<servlet>
<servlet-name>Servlet_test1</servlet-name>
servlet-class>Servlet_test1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Servlet_test1</servlet-name>
<url-pattern>/Servlet_test1</url-pattern>
</servlet-mapping>
66、編寫一個文件 userLogin.java,定義了一個用戶 Bean,包含姓名、密碼和電子郵件
3個屬性,通過 EL的存取運算符訪問其屬性,並將取值的結果顯示在 JSP頁面
java類:
package bean;
public class userLogin {
private
String userName;
private String password;
private String email;
public userLogin() {
userName = "李平";
password = "123";
email = "[email protected] ";
}
public void setuserName(String userName) {
this.userName = userName;
}
public String getuserName() {
return this.userName;
}
public void setpassword(String password) {
this.password = password;
}
public
String getpassword() {
return this.password;
}
public void setemail(String email) {
this.email = email;
}
public String getemail() {
return this.email;
}
}
jsp頁面(假設信息被保存在session中):
<%@ page
language="java" import="java.util.*" pageEncoding="GBK"%>
<html>
<head><title></title> </head>
<body>
用戶名:${sessionScope.user.userName}
<br>
密碼:${sessionScope.user.password}
<br>
電子郵箱:${sessionScope.user.email}
<br>
</body>
</html>