日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JSPServlet学习笔记----第4章

發(fā)布時(shí)間:2025/3/15 javascript 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JSPServlet学习笔记----第4章 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

HTTP是基于請求/響應(yīng)的無狀態(tài)的通信協(xié)議。

使服務(wù)器記得此次請求與之后請求關(guān)系的方式,叫做會(huì)話管理。


隱藏域:由瀏覽器在每次請求時(shí)主動(dòng)告知服務(wù)器多次請求間必要的信息。僅適用于一些簡單的狀態(tài) 管理,如在線問卷。

import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter;/*** Created by N3verL4nd on 2017/2/21.*/ @WebServlet("/questionnaire") public class HiddenFieldServlet extends HttpServlet {private void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{request.setCharacterEncoding("UTF-8");response.setContentType("text/html; charset=UTF-8");//response.setHeader("Content-Type", "text/html; charset=UTF-8");//response.addHeader("Content-Type", "text/html; charset=UTF-8");PrintWriter out = response.getWriter();out.println("<!DOCTYPE html>"+ "<html>"+"<head>"+"<title>問卷調(diào)查</title>"+"</head>"+"<body>");String page = request.getParameter("page");out.println("<form action='questionnaire' method='post'>");if (page == null){out.println("問題一:<input type='text' name='p1q1' /><br />");out.println("問題二:<input type='text' name='p1q2' /><br />");out.println("<input type='submit' name='page' value='下一頁' />");}else if ("下一頁".equals(page)){String p1q1 = request.getParameter("p1q1");String p1q2 = request.getParameter("p1q2");out.println("問題三:<input type='text' name='p2q1' />");out.println("<input type='hidden' name='p1q1' value='" + p1q1 + "' />");out.println("<input type='hidden' name='p1q2' value='" + p1q2 + "' />");out.println("<input type='submit' name='page' value='完成' />");}else if ("完成".equals(page)){out.println(request.getParameter("p1q1") + "<br />");out.println(request.getParameter("p1q2") + "<br />");out.println(request.getParameter("p2q1") + "<br />");}out.println("</form>");out.println("</body>");out.println("</html>");out.close();}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {processRequest(request, response);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {processRequest(request, response);} }

cookie:

import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter;/*** Created by N3verL4nd on 2017/2/23.*/ @WebServlet(name = "SetServlet", urlPatterns = {"/setcookies.do"}) public class SetServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {for (int i = 0; i < 5; i++){Cookie cookie = new Cookie(String.valueOf(i), "xiya");response.addCookie(cookie);}response.setContentType("text/html; charset=UTF-8");PrintWriter out = response.getWriter();out.println("設(shè)置cookies" + "<br />");out.println("<a href='showcookies.do'>showcookies</a>");out.close();} } import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter;/*** Created by N3verL4nd on 2017/2/23.*/ @WebServlet(name = "ShowServlet", urlPatterns = {"/showcookies.do"}) public class ShowServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html; charset=UTF-8");PrintWriter out = response.getWriter();out.println("<!DOCTYPE html>");out.println("<html>");out.println("<head>");out.println("<title>顯示Cookies</title>");out.println("</head>");out.println("<body>");out.println("<body>");out.println("<table>");out.println("<tr>");out.println("<th>Cookie Name</th>");out.println("<th>Cookie Value</th>");out.println("</tr>");Cookie[] cookies = request.getCookies();if(cookies != null){for (Cookie cookie : cookies){String key = cookie.getName();String value = cookie.getValue();out.println("<tr>");out.println("<td>" + key + "</td>");out.println("<td>" + value + "</td>");out.println("</tr>");}}out.println("</table>");out.println("</body>");out.println("</html>");} }
url重寫:其實(shí)就是GET請求參數(shù)的應(yīng)用,當(dāng)服務(wù)器響應(yīng)瀏覽器上一次請求時(shí),將某些相關(guān)信息以超鏈接方式響應(yīng)給瀏覽器,超鏈接中包含參數(shù)信息。
import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter;/*** Created by N3verL4nd on 2017/2/22.*/ @WebServlet(name = "SearchServlet", urlPatterns = {"/search.do"}) public class SearchServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html; charset=UTF-8");PrintWriter out = response.getWriter();out.println("<!DOCTYPE html>");out.println("<html>");out.println("<head>");out.println("<title>調(diào)查</title>");out.println("</head>");out.println("<body>");String start = request.getParameter("start");if (start == null){start = "1";}int count = Integer.parseInt(start);int begin = 10 * count - 9;int end = 10 * count;out.println("第 " + begin + " 到 " + end + " 搜索結(jié)果<br />");out.println("<ul>");for (int i = begin; i <= end; i++){out.println("<li>搜索結(jié)果" + i + "</li>");}out.println("</ul>");for (int i = 1; i < 10; i++){if (i == count){out.println(i);continue;}out.println("<a href='search.do?start=" + i + "'>" + i + "</a>");}out.println("</body>");out.println("</html>");} }

在Servlet/JSP中可以使用HttpSession來進(jìn)行會(huì)話管理。

import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; import java.io.PrintWriter;/*** Created by N3verL4nd on 2017/2/22.*/ @WebServlet(name = "SessionServlet", urlPatterns = {"/session.do"}) public class SessionServlet extends HttpServlet {private void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{request.setCharacterEncoding("UTF-8");response.setContentType("text/html; charset=UTF-8");PrintWriter out = response.getWriter();out.println("<!DOCTYPE html>"+ "<html>"+"<head>"+"<title>問卷調(diào)查</title>"+"</head>"+"<body>");String page = request.getParameter("page");out.println("<form action='session.do' method='post'>");if (page == null){out.println("問題一:<input type='text' name='p1q1' /><br />");out.println("問題二:<input type='text' name='p1q2' /><br />");out.println("<input type='submit' name='page' value='下一頁' />");}else if ("下一頁".equals(page)){String p1q1 = request.getParameter("p1q1");String p1q2 = request.getParameter("p1q2");HttpSession session = request.getSession();System.out.println(session.getId());session.setAttribute("p1q1", p1q1);session.setAttribute("p1q2", p1q2);out.println("問題三:<input type='text' name='p2q1' /><br />");out.println("<input type='submit' name='page' value='完成' />");}else if ("完成".equals(page)){String p2q1 = request.getParameter("p2q1");HttpSession session = request.getSession();System.out.println(session.getId());session.setAttribute("p2q1", p2q1);out.println(session.getAttribute("p1q1") + "<br />");out.println(session.getAttribute("p1q2") + "<br />");out.println(session.getAttribute("p2q1") + "<br />");}out.println("</form>");out.println("</body>");out.println("</html>");out.close();}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {processRequest(request, response);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {processRequest(request, response);} }
如上所示,HttpSession是通過HttpServletRequest獲得的,但是該實(shí)例存在于Web容器內(nèi)。

import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; import java.io.PrintWriter; import java.util.Date;/*** Created by N3verL4nd on 2017/2/23.*/ @WebServlet(name = "SessionInfoServlet", urlPatterns = {"/SessionInfoServlet"}) public class SessionInfoServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html; charset=UTF-8");HttpSession session = request.getSession();//session.setMaxInactiveInterval(10);//多少秒失效PrintWriter out = response.getWriter();out.println("<!DOCTYPE html>");out.println("<html>");out.println("<head>");out.println("<title>SessionInfoServlet</title>");out.println("</head>");out.println("<body>");out.println("New Session:" + session.isNew() + "<br />");out.println("Session ID:" + session.getId() + "<br />");out.println("getCreationTime:" + new Date(session.getCreationTime()) + "<br />");out.println("getLastAccessedTime:" + new Date(session.getLastAccessedTime()) + "<br />");out.println("getRequestedSessionId:" + request.getRequestedSessionId() + "<br />");out.println("isRequestedSessionIdFromURL:" + request.isRequestedSessionIdFromURL() + "<br />");out.println("isRequestedSessionIdFromCookie:" + request.isRequestedSessionIdFromCookie() + "<br />");out.println("isRequestedSessionIdValid:" + request.isRequestedSessionIdValid() + "<br />");out.println("<br /><a href='" + response.encodeURL("SessionInfoServlet") + "'>刷新</a><br />");} }

對于以上程序,我們使用Fiddler抓包觀察下:




第一次調(diào)用該Servlet會(huì)返回Set-Cookie,第二次調(diào)用我們會(huì)向HTTP服務(wù)器發(fā)送該cookie來獲取Web容器內(nèi)對應(yīng)的HttpSession。

轉(zhuǎn)載于:https://www.cnblogs.com/lgh1992314/p/6616233.html

總結(jié)

以上是生活随笔為你收集整理的JSPServlet学习笔记----第4章的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。