中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Servlet和Jsp知識點有哪些

發布時間:2021-10-20 15:59:23 來源:億速云 閱讀:114 作者:柒染 欄目:大數據

這篇文章將為大家詳細講解有關Servlet和Jsp知識點有哪些,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

新建Servlet

        重寫service方法,service方法有兩個參數:req和resp,在jsp中叫做request和response。

編碼設置  

resp.setContentType("text/html;charset=utf-8");
req.setCharacterEncoding("utf-8");

創建Service層對象

UserService us = new UserServiceImpl();

處理請求

        如果一個servlet需要處理多個請求,那servlet就需要識別來的是哪一個請求,可以在jsp的form表單中加一個input標簽

<input type="hidden" name="oper" value="login">

        type屬性值為hidden,這樣不會影響頁面效果,將所有區分請求的標簽的name屬性設成同一個,這里叫'oper',value設成不同的值。

        在service方法中做判斷,分別調用不同的方法

            //獲取操作類型
			String oper = req.getParameter("oper");
			if("login".equals(oper)) {
				//調用登錄校驗方法
				CheckUserLogin(req,resp);
			}else if("reg".equals(oper)){
				//調用注冊功能
				userReg(req,resp);
			}else if("out".equals(oper)){
				//調用退出功能
				userOut(req,resp);
			}else if("pwd".equals(oper)){
				//調用密碼修改功能
				userChangePwd(req,resp);
			}else if("showAll".equals(oper)){
				//調用查看所有用戶信息功能
				userShowAll(req,resp);
			}else {
				System.out.println("沒有找到相應操作"+oper);
			}

        req.getParameter(“屬性名”)方法可以獲取form表單中提交的數據。

        那form表單如何知道要提交給哪個servlet處理呢?

        通過設置form標簽的action屬性就可以,將action屬性值設成servlet的別名。

        那如果沒有form表單,比如我只是在頁面中點擊一個按鈕,想讓servlet來處理,怎么實現?操作如下:

function tuichu(){
	var flag = window.confirm("是否退出?");
	if (flag) {
	    //利用form表單提交oper
		document.write("<form action='user' method=post name=form1 style='display:none'>");  
	    document.write("<input type='hidden' name='oper' value='out'>");  
	    document.write("</form>");  
	    document.form1.submit(); 
	}
}

請求轉發與重定向

        在servlet中實現頁面跳轉有兩種辦法:請求轉發和重定向

        請求轉發:

req.getRequestDispatcher("login.jsp").forward(req, resp);

        請求轉發還是一次請求,瀏覽器地址欄中的url不會改變,req中的數據仍然在。

        重定向:

resp.sendRedirect("main.jsp");

        重定向是兩次請求,url改變,req中的數據沒了。

Cookie和Session

        不同請求見的數據流通如何完成?

        req里的數據沒了,是不能實現的。

        有兩種辦法:cookie和session

        cookie:將一些數據存在瀏覽器中,數據量較小。

        基本使用方法:

//創建cookie
 Cookie c = new Cookie("uname", "zhangsan");
 Cookie c2 = new Cookie("color","red");
//設置cookie有效期,參數的單位是秒
 c2.setMaxAge(3600);
//設置路徑
c2.setPath("/Servlet03/gc");
    		
//添加到瀏覽器
resp.addCookie(c);//臨時存儲
resp.addCookie(c2);//通過上面設置的有效期,實現了cookie紀錄一個小時的定長存儲
		//獲取cookie
		Cookie[] cks = req.getCookies();
		if(cks!=null) {
			for(Cookie c:cks) {
				System.out.println(c.getName()+":"+c.getValue());
			}
		}

        Session:將數據存在瀏覽器中,在cookie中存一個session的id連接到服務器端的session對象

        基本使用方法:

			String name = "張三";
			
			//創建session對象
			HttpSession hs = req.getSession();
			//這行代碼既是創建又是獲取session
			
			
			//設置session時效
			hs.setMaxInactiveInterval(5);//設置時間為5秒
			
			hs.invalidate();//強制失效
			
			//存儲數據
			hs.setAttribute("name", name);

關于Servlet和Jsp知識點有哪些就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

崇州市| 潞城市| 光泽县| 平安县| 新营市| 东乡族自治县| 昌图县| 贵溪市| 惠安县| 会宁县| 砚山县| 桦甸市| 巴青县| 海安县| 永顺县| 凤翔县| 通河县| 溆浦县| 田阳县| 沁源县| 白山市| 缙云县| 封丘县| 衡阳市| 吴川市| 会同县| 莲花县| 海宁市| 襄汾县| 灵寿县| 宜兰县| 保山市| 驻马店市| 望城县| 永康市| 昌邑市| 乐清市| 葵青区| 兴国县| 玛曲县| 松阳县|