Java Servlet基础.ppt
文本预览下载声明
图5.4b 向servlet传递参数及值 返回 5.3 通过JSP页面访问servlet 用户除了可以在浏览器的地址栏中直接键入servlet的请求格式来请求运行一个servlet外,也可以通过JSP页面来请求一个servlet。也就是说,可以让JSP页面负责数据的显示,而让一个servlet去做和处理数据有关的事情。 需要特别注意的是,如果web.xml文件中servlet-mapping标记的子标记url-pattern指定的请求servlet的格式是“/lookHello”,那么JSP页面请求servlet时,必须要写成 “lookHello”(不包含/符号),不可以写成“/lookHello”,否则将变成请求root服务目录下的某个servlet。 5.3.1 通过表单向servlet提交数据 如果web.xml文件中url-pattern指定的请求servlet的格式是/computeBill,那么form表单中action给出的值就是computeBill ,如下所示意: form action= computeBill … … /form 当请求一个servlet时,可以加入参数及其值,格式是: servlet名?参数1=值1参数2=值…参数n=值 例如: form action= computeBill?sideA=10.66sideB=23.9sideC=897 … … /form 例5_2:JSP页面example5_2.jsp通过表单请求名字为computeBill的servlet,并向所请求的servlet提交一个账单明细,例如:“洗衣粉:12.8圆,可乐:12圆,泡菜:0.8圆”,computeBill负责计算账单的消费额。example5_2.jsp的效果如图5.5(a)所示, 名字为computeBill的servlet运行效果如图5.5(b)所示。 参考代码——页面 form action=computerBill method=post 输入账单:br textArea name=billMess rows=5 cols=30 白菜12.8圆,可乐:12圆,泡菜:0.8圆 /textArea brinput type=submit value=提交 /form protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding(gb2312); response.setContentType(text/html;charset=utf-8); PrintWriter out=response.getWriter(); String info=request.getParameter(billMess); if(info==null||info.length()==0){ return; } String[] money=info.split([^0123456789.]+); double sum=0; for(int i=0;imoney.length;i++){ if(money[i].length()=1) sum+=Double.parseDouble(money[i]); } out.print(htmlbody); out.print(info+br+的总消费额是+sum); out.print(/body/html); } 5.3.2 通过超链接访问servlet 如果web.xml文件中url-pattern指定的请求servlet的格式是/triangle,那么a超链接标记中href的值是 triangle ,如下所示意: a href=triangle/a 例5_3使用超链接请求servlet,并向所请求的servlet传递值。JSP页面example5_3.jsp中单击一个超链接,请求一个名字为triangle的servlet,并将三角形的三个边的长度提交给所请求的servlet,servlet负责计算三角形的面积。 example5_3.jsp中单击一个超链接,请求一个名字为triangle的servlet,并将三角形的三个边的长度提交给所请求的servlet,servlet负责计算三角形的面积。example5_3.jsp的效果如图5.6(a)所示
显示全部