实验三.docx
《实验三.docx》由会员分享,可在线阅读,更多相关《实验三.docx(8页珍藏版)》请在冰豆网上搜索。
![实验三.docx](https://file1.bdocx.com/fileroot1/2022-11/25/df3178f1-6637-4a71-9ba8-0e01ede95640/df3178f1-6637-4a71-9ba8-0e01ede956401.gif)
实验三
实验三Servlet会话及Servlet协作
一、实验目的
1、掌握会话的概念和作用。
2、掌握Cookie、URL重写和HttpSession对象等常见会话跟踪技术。
3、会使用RequestDispatcher对象实现Servlet间协作。
二、实验类型
设计型
三、实验内容
1、首先运行教材或实验指导书上的一些例子程序,然后设计一个进行网络购物的订购页面,让用户选择自己喜欢的2种商品放入购物车,然后使用一种会话管理方式,将用户在订购页面所选购的商品在
购物车页面中显示出来,并能返回订购页面再次选购其它商品。
2、设计一个进行乘法运算的页面,生成两个运算数让用户填写相乘结果并提交。
当用户填写和提交的结果正确时,显示“计算正确”的提示信息页面。
结果错误时,显示“计算错误”的提示信息页面,
以此演示通过RequestDispatcher对象实现Servlet之间请求的传递和协作。
1.input.jsp
<%@pagecontentType="text/html"pageEncoding="UTF-8"%>
<%@pageimport="java.util.*"%>
DOCTYPEhtml>
JSPPage<%!
intnumber1,number2;%>
<%
Randoma=newRandom();
number1=a.nextInt()%10;
number2=a.nextInt()%10;
%>
随机数一:
">
随机数二:
">
请输入结果:
2.result.java
packagecom.servlert;
importjava.io.*;
importjava.io.PrintWriter;
importjavax.servlet.*;
importjavax.servlet.annotation.WebServlet;
importjavax.servlet.http.*;
@WebServlet(name="result",urlPatterns={"/result"})
publicclassresultextendsHttpServlet{
protectedvoidprocessRequest(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
response.setContentType("text/html;charset=UTF-8");
PrintWriterout=response.getWriter();
try{
intnumOne=Integer.parseInt(request.getParameter("NumOne"));
intnumTwo=Integer.parseInt(request.getParameter("NumTwo"));
intresult=Integer.parseInt(request.getParameter("result"));
intmyResult=numOne+numTwo;
if(result==myResult)
{
RequestDispatcherdispatcher=request.getRequestDispatcher("correct");
dispatcher.forward(request,response);
}
else{
RequestDispatcherdispatcher=request.getRequestDispatcher("incrrect");
dispatcher.forward(request,response);
}
}finally{
out.close();
}
}
@Override
protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
processRequest(request,response);
}
@Override
protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
processRequest(request,response);
}
@Override
publicStringgetServletInfo(){
return"Shortdescription";
}
}
窗体底端
窗体底端
3.Correct.java
packagecom.servlert;
importjava.io.IOException;
importjava.io.PrintWriter;
importjavax.servlet.ServletException;
importjavax.servlet.annotation.WebServlet;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
@WebServlet(name="correct",urlPatterns={"/correct"})
publicclasscorrectextendsHttpServlet{
protectedvoidprocessRequest(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
response.setContentType("text/html;charset=UTF-8");
PrintWriterout=response.getWriter();
try{
out.println("");
out.println("
");
out.println("
Servletcorrect");
out.println("");
out.println("
");
out.println("
亲,恭喜你答对了!
!
");
out.println("");
out.println("");
}finally{
out.close();
}
}
@Override
protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
processRequest(request,response);
}
@Override
protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
processRequest(request,response);
}
@Override
publicStringgetServletInfo(){
return"Shortdescription";
}//
}
4.incorrect.java
packagecom.servlet;
importjava.io.IOException;
importjava.io.PrintWriter;
importjavax.servlet.ServletException;
importjavax.servlet.annotation.WebServlet;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
/**
*
*@authoradminister
*/
@WebServlet(name="incrrect",urlPatterns={"/incrrect"})
publicclassincrrectextendsHttpServlet{
/**
*ProcessesrequestsforbothHTTPGET
andPOST
methods.
*@paramrequestservletrequest
*@paramresponseservletresponse
*@throwsServletExceptionifaservlet-specificerroroccurs
*@throwsIOExceptionifanI/Oerroroccurs
*/
protectedvoidprocessRequest(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
response.setContentType("text/html;charset=UTF-8");
PrintWriterout=response.getWriter();
try{
intnumOne=Integer.parseInt(request.getParameter("NumOne"));
intnumTwo=Integer.parseInt(request.getParameter("NumTwo"));
intmyResult=numOne+numTwo;
out.println("");
out.println("
");
out.println("
Servletincrrect");
out.println("");
out.println("
");
out.println("
亲,对不起,你答错了
");
out.print("正确答案是"+myResult);
out.println("");
out.println("");
}finally{
out.close();
}
}
//
/**
*HandlestheHTTPGET
method.
*@paramrequestservletrequest
*@paramresponseservletresponse
*@throwsServletExceptionifaservlet-specificerroroccurs
*@throwsIOExceptionifanI/Oerroroccurs
*/
@Override
protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
processRequest(request,response);
}
/**
*HandlestheHTTPPOST
method.
*@paramrequestservletrequest
*@paramresponseservletresponse
*@throwsServletExceptionifaservlet-specificerroroccurs
*@throwsIOExceptionifanI/Oerroroccurs
*/
@Override
protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
processRequest(request,response);
}
@Override
publicStringgetServletInfo(){
return"Shortdescription";
}
}
四、实验总结
通过本次实验掌握了使用RequestDispatcher对象实现Servlet间的协作。
以及会话的使用。