实验12 Servlet会话管理 一、实验目的 1.了解servlet技术、servlet的应用。 21的生命周期和常用的类接口。 3.掌握Servlet的结构、接口方法和生命周期等概念,学会使用Servlet进行编程,与表单交互、控制 会话等。 二、实验要求 1,上机调试运行课上所讲JSP页面。 2.编写一个简单的猜字母游戏。 三、实验内容 (一)调试所给程序 Boy.java import javax.servlet. public voidtServetonf)throws ServletException (super.init(config); public void doPost(HttpServletReq est request.HttpServletResponse response) throws Se eption out.print("<html>body) se sion-request.getSessi n(true) ∥获取客户的会话对象 对象是gSe vletName()+",您的会话的id:"方 out.println("<BR>"+se getIdO): out.printn(("<BR>单击超链接请求另 个servlet:"h, out.println("<A href=-servlet/Look>i请求另一个servlet</A>"方 out.print("</body></html>"); public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException.IOException
实验 12 Servlet 会话管理 一、实验目的 1.了解 servlet 技术、servlet 的应用。 2.掌握 servlet 的生命周期和常用的类接口。 3.掌握 Servlet 的结构、接口方法和生命周期等概念,学会使用 Servlet 进行编程,与表单交互、控制 会话等 。 二、 实验要求 1. 上机调试运行课上所讲 JSP 页面。 2. 编写一个简单的猜字母游戏。 三、 实验内容 (一) 调试所给程序 Boy.java package star.moon; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Boy extends HttpServlet { public void init(ServletConfig config) throws ServletException {super.init(config); } public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { response.setContentType("text/html;charset=GB2312"); PrintWriter out=response.getWriter(); out.print("<html><body>"); HttpSession session=request.getSession(true); //获取客户的会话对象 session.setAttribute("number",new Integer(668)); out.println("您请求的 servlet 对象是:"+getServletName()+",您的会话的 id:"); out.println("<BR>"+session.getId()); out.println("<BR>单击超链接请求另一个 servlet:"); out.println("<A href=servlet/Look >请求另一个 servlet</A>"); out.print("</body></html>"); } public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
doPosrusn). Look.java package star.moon; impor ava.io import javax.servlet.http. public eutpservle nng co super.init(config) nfig)throws ServletExceptior public void doPost(HttpS tion esponse response ∥获取客户的会话对象 Integer number-(Integer)session.getAttribute("number'")/获取会话中存储的数据 int n=number.intValue(); out nr int("您请求的servlet对象是:"+getServletName()+",您的会话的id:"方 out.println("<BR>” on.getld()): out.printn("<BR>您的会话中存储的整数:"+n: out.printin(BR- out.print("</body></html>"): t request,HttpServletResponse response) doPost(request,respo se): (二)编写一个简单的猜字母游戏。 getLetter.jsp content Type-"text/html:charse-G <HTML><BODY ><Font size=3> <%session.setAttribute("message",请您猜字母"方 char al]=new char[26]; int m=0: for(charc-a.c<-Z.c++) a[m]=c; m++: int randomIndex=(int)(Math.random(a.length): char ch=arandomIndex]; 获取一个英文字母
{ doPost(request,response); } } Look.java package star.moon; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Look extends HttpServlet { public void init(ServletConfig config) throws ServletException {super.init(config); } public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { response.setContentType("text/html;charset=GB2312"); PrintWriter out=response.getWriter(); out.print("<html><body>"); HttpSession session=request.getSession(true); //获取客户的会话对象 Integer number=(Integer)session.getAttribute("number");//获取会话中存储的数据 int n=number.intValue(); int m=n*n*n; out.println("您请求的 servlet 对象是:"+getServletName()+",您的会话的 id:"); out.println("<BR>"+session.getId()); out.println("<BR>您的会话中存储的整数:"+n); out.println("<BR>"+n+"的立方:"+m); out.print("</body></html>"); } public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { doPost(request,response); } } (二)编写一个简单的猜字母游戏。 getLetter.jsp <%@ page contentType="text/html;charset=GB2312" %> <HTML><BODY ><Font size=3> <% session.setAttribute("message","请您猜字母"); char a[]=new char[26]; int m=0; for(char c='a';c<='z';c++) { a[m]=c; m++; } int randomIndex=(int)(Math.random()*a.length); char ch=a[randomIndex]; //获取一个英文字母
session setattributer"savedletter"new Character(ch)): 访问或刷新该页面可以随机得到一个英文字母 <BR>单击超链接去猜出这个字母:<A href-"inputLetter.jsp">去猜字母<A> </Font-></BODY></HTML> inputLetter.jsp <%@page contentType="text/html;charset=GB2312"%> <HTML><BODY ><Font size=2> <%String message-(String)session.getAttribute("message"),/获取会话中的信息 <Table border=1> <FORM action="handleGuess"method=post> <><d心输入您的猜测(a2之间的字母):<hd <td><Input Type=text name=clientGuessLetter size=4><Input Type=submit value=""></td> <tr><td提示信息:<td 小<%=message?%><hd </FORM <FORM action="getLetter.jsp"method=post> <r>d心单击按钮重新开始:<d <td><Input Type=submit value="随机得到一个字母"><hd </tr> </FORM </Font-></BODY></HTML HandIeGuess.java package star moon import java.io. importjavax.servlet. importjavax.servlet.http.* public class HandleGuess extends HttpServlet public void init(ServletConfig config)throws ServletException (super.init(config) public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException.IOException {HttpSession session=-request.getSession(true):∥获取客户的会话对象 String str-request.getParameter(" ientGu Character guessLetter=str.trim().charAt(0); 获取客户猜测所提交的字母 Character savedLetter-(Character)session.getAttribute("savedLetter"); char realLetter=savedLetter.charValue():
session.setAttribute("savedLetter",new Character(ch)); %> 访问或刷新该页面可以随机得到一个英文字母. <BR>单击超链接去猜出这个字母:<A href="inputLetter.jsp">去猜字母</A> </Font></BODY></HTML> inputLetter.jsp <%@ page contentType="text/html;charset=GB2312" %> <HTML><BODY ><Font size=2> <% String message=(String)session.getAttribute("message"); //获取会话中的信息 %> <Table border=1> <FORM action="handleGuess" method=post> <tr><td> 输入您的猜测(a~z 之间的字母):</td> <td><Input Type=text name=clientGuessLetter size=4><Input Type=submit value="提交"></td> </tr><td> 提示信息:</td> <td> <%= message%></td> </FORM> <FORM action="getLetter.jsp" method=post> <tr><td>单击按钮重新开始: </td> <td><Input Type=submit value="随机得到一个字母"></td> </tr> </FORM> </Font></BODY></HTML> HandleGuess.java package star.moon; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HandleGuess extends HttpServlet { public void init(ServletConfig config) throws ServletException {super.init(config); } public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { HttpSession session=request.getSession(true); //获取客户的会话对象 String str=request.getParameter("clientGuessLetter"); Character guessLetter=str.trim().charAt(0); //获取客户猜测所提交的字母 Character savedLetter=(Character)session.getAttribute("savedLetter"); char realLetter=savedLetter.charValue();
if(Character.isUpperCase(guessLetter)) guessLetter-Character.toLowerCase(guessLetter) if(guessLetter<realLetter) {session setAttribute("message"."您猜小了"): response.sendRedirect("inputLetter.isp"): session.setAttribute(message","您猜大了"为 response.sendRedirect("inputLetter.isp"): ifiguessLetter=realLetter) public void doGet(HttpServletRequest request.HttpServletResponse response) throws ServletEx ception.IOException {doPost(request,response);
if(Character.isUpperCase(guessLetter)) { guessLetter=Character.toLowerCase(guessLetter); } if(guessLetter<realLetter) { session.setAttribute("message","您猜小了"); response.sendRedirect("inputLetter.jsp"); } if(guessLetter>realLetter) { session.setAttribute("message","您猜大了"); response.sendRedirect("inputLetter.jsp"); } if(guessLetter==realLetter) { session.setAttribute("message","您猜对了"); response.sendRedirect("inputLetter.jsp"); } } public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { doPost(request,response); } }