收藏 分销(赏)

J2EE期末复习LS版本.doc

上传人:天**** 文档编号:4675341 上传时间:2024-10-09 格式:DOC 页数:7 大小:69.01KB 下载积分:6 金币
下载 相关 举报
J2EE期末复习LS版本.doc_第1页
第1页 / 共7页
J2EE期末复习LS版本.doc_第2页
第2页 / 共7页


点击查看更多>>
资源描述
1. 声明段声明变量和脚本段声明变量区别: 利用 <%!%>声明的变量,在JSP容器转换JSP页面为Servlet类时,将作该类的实例变量或者类变量(声明时使用了static关键字),在多用户并发访问时,将导致线程安全的问题,除非你确认是单用户访问或者变量是只读的。 而 <%%>,在JSP容器转换JSP页面为Servlet类时,页面中的代码会按照代码段中出现的次序, 依次被转换为_jspService()方法中的代码,在脚本段生命的变量,将作为_jspService()方法中的本地变量,因此脚本段中的变量是线程安全的。 2. “宝贝类”该list内容输出一个html表格 List list ; try{ list=(List)session.getAttribute("list"); }catch(Exception e){ list = new ArrayList(); } //迭代输出 if (list.size()==0){ out.println("没有商品"); } %> <table> <% List list = (List)request.getAttribute(“list”); for(Baobei u:list){ out.println(“<tr>”+”<td>”); out.println(Baobei.getName()); out.println(”</td>”+”<td>”); out.println(Baobei.getPrice()); out.println(“</td>”+”</tr>”); } %> </table> <a href="buy.jsp?name=order2.getSpmc()”>购买<a> 3. 关于分页写代码包括javabean至少一个jsp文件 Show.jsp <script type="text/javascript"> function nextPage() { var pageCode = parseInt(document.show.pageCode.value); var totalPage = parseInt(document.show.totalPage.value); if(pageCode<totalPage && pageCode>=1){ pageCode=pageCode+1; }else if(pageCode==totalPage || pageCode<1){ pageCode=1; } document.show.pageCode.value = pageCode.toString(); document.show.submit(); } function previousPage(){ var pageCode = parseInt(document.show.pageCode.value); var totalPage = parseInt(document.show.totalPage.value); if(pageCode<=totalPage && pageCode>=2){ pageCode=pageCode-1; }else if(pageCode==1 || pageCode<2){ pageCode=totalPage; } document.show.pageCode.value = pageCode.toString(); document.show.submit(); } </script> <% try{ List<String> list = (List<String>)request.getAttribute("BeanList"); if(list!=null){ out.println("<table>"); for(String u:list){ out.println("<tr>"+"<td>"); out.println(u); out.println("</td>"+"</tr>"); } out.println("</table>"); } }catch(Exception e){} %> <form name="show" action="Controller.jsp" method="post"> <input type="hidden" name="pageCode" value='<%=request.getAttribute("pageCode")%>'/> <input type="hidden" name="totalPage" value='<%=request.getAttribute("totalPage")%>'/> <input type="button" value="next" onClick="nextPage()"/> <input type="button" value="previous" onClick="previousPage()"/> </form> Controller.jsp <% int pageCode=1,pageRecord=3,totalPage=0; try{ pageCode = Integer.parseInt(request.getParameter("pageCode")); }catch(Exception e){pageCode = 1;} List<String> record = (List<String>)session.getAttribute("record"); if (record == null||record.isEmpty()){ record=new ArrayList<String>(); for (int i=0;i<10;i++) { record.add("这里是某条记录"+i); } session.setAttribute("record",record); } int totalRecord = record.size(); if(totalRecord % pageRecord == 0) totalPage=totalRecord/pageRecord; else totalPage=(int)(totalRecord/pageRecord)+1; int start = (pageCode-1)*pageRecord; List<String> BeanList= new ArrayList<String>(); for (int i=0;i<pageRecord&&(start+i<totalRecord);i++){ BeanList.add(record.get(start+i)); } request.setAttribute("pageCode",pageCode); request.setAttribute("BeanList",BeanList); request.setAttribute("totalPage",totalPage); request.setAttribute("pageRecord",pageRecord); request.getRequestDispatcher("/show.jsp").forward(request, response); %> 4. 基于Tomcat的jsp,打开页面自动出题. question.jsp <% String num_1 =(String)session.getAttribute("num_1"); String num_2 =(String)session.getAttribute("num_2"); if(num_1!=null&&num_2!=null){ out.print(num_1+" + "+num_2+" = "); %> <form action="/hh/control.jsp" method="post"> <input type="text" name="sum"/> <input type="submit" value="submit"> </form> <% }else{ response.sendRedirect("/hh/control.jsp"); } %> control.jsp <% String sum= request.getParameter("sum"); String num_1 =(String)session.getAttribute("num_1"); String num_2 =(String)session.getAttribute("num_2"); if(num_1==null||num_2==null){ num_1 = Integer.toString((int)(Math.random()*100)); num_2 = Integer.toString((int)(Math.random()*100)); session.setAttribute("num_1", num_1); session.setAttribute("num_2", num_2); response.sendRedirect("/hh/question.jsp"); }else if(Integer.parseInt(num_1)+Integer.parseInt(num_2)== Integer.parseInt(sum) ){ request.setAttribute("msg", "<a href='/hh/question.jsp'>回答正确请进行下一题!</a>"); num_1 = Integer.toString((int)(Math.random()*100)); num_2 = Integer.toString((int)(Math.random()*100)); session.setAttribute("num_1", num_1); session.setAttribute("num_2", num_2); request.getRequestDispatcher("/status.jsp").forward(request, response); }else{ request.setAttribute("msg", "<a href='/hh/question.jsp'>重新回答!</a>"); request.getRequestDispatcher("/status.jsp").forward(request, response); } %> status.jsp <% String msg =(String)request.getAttribute("msg"); if(msg!=null) out.println(msg); %> 5. 如何在页面中判断用户是已登录的合法用户,至少2个组件。(每个组件为jsp或者servlet)<%@ include file = “checkLog.jsp ”> loginCheck.jsp <%@ page language="java" pageEncoding="UTF-8"%> <% //登录检查 String userUUid=(String)session.getAttribute("userUUid"); if(userUUid==null) //没有经过登录验证 { response.sendRedirect("login.jsp");//重定向到登录页 return; } %> userInfo.jsp <%@ include file="loginCheck.jsp" %> 6. 说明如何用Cookie保存用户登录的信息,使用户在Cookie有效期间不需要登陆 Cookie cookie1 = new Cookie("username", username);//创建Cookie Cookie cookie2 = new Cookie("password",password); cookie1.setMaxAge(60*60*24);//设置cookie1命长为1天 response.addCookie(cookie1);//保存cookie1 cookie2.setMaxAge(60*60*24);//设置cookie2命长为1天 response.addCookie(cookie2);//保存cookie2 Cookie[] cookies = request.getCookies(); if(cookies!=null){ for(Cookie u:cookies){ if(u.getName().equals("username")) username = u.getValue(); if(u.getName().equals("password")) password = u.getValue(); } } 7. 类包含的方法:request.getAttribute( ); request.getPrimeter( ); (1)HttpServletRequest类有setAttribute()方法,而没有setParameter()方法 (2)当两个Web组件之间为链接关系时,被链接的组件通过getParameter()方法来获得请求参数 (3)当两个Web组件之间为转发关系时,转发目标组件通过getAttribute()方法来和转发源组件共享request范围内的数据。 (4)request.setAttribute()和getAttribute()方法传递的数据只会存在于Web容器内部,在具有转发关系的Web组件之间共享。这两个方法能够设置Object类型的共享数据。 (5) request.getParameter()取得是通过容器的实现来取得通过类似post,get等方式传入的数据。request.getAttribute 必须先request.setAttribute. (6)request.setAttribute()和getAttribute()只是在web容器内部流转,仅仅是请求处理阶段。 (7) getAttribute是返回对象,getParameter返回字符串,request.getParameter() 方法, 总的来说:request.getAttribute()方法返回request范围内存在的对象,而request.getParameter()方法传递的数据会从Web客户端传到Web服务器端,代表HTTP请求数据。 8. Web请求的响应的流程 1.客户端输入URL之后向服务器发送请求(Request) 2.服务器通过端口监听此请求,解析Request的头文件。 3.服务器根据头信息来选择资源作为响应(Response)返回给客户端 4.客户端接受响应将数据显示在浏览器上 9. 提交请求的途径有哪些? l 地址栏输入网址 l 表单的提交 l 超链接的点击 10. 设计一个小程序javabean怎么使用? <jsp:useBean id="simple" scope="page" class="blog.csdn.joywy.SimpleBean"> <jsp:setProperty name=“simple“ property=“*“/> </jsp:useBean> 11. 加法测试器 javaBean: package td; public class Plus { private String num_1 = "0"; private String num_2 = "0"; public Plus(String num_1, String num_2) { super(); this.num_1 = num_1; this.num_2 = num_2; } public Plus(){ super(); } public String getNum_1() { return num_1; } public void setNum_1(String num_1) { this.num_1 = num_1; } public String getNum_2() { return num_2; } public void setNum_2(String num_2) { this.num_2 = num_2; } public int getSum( ){ int sum =Integer.parseInt(num_1)+Integer.parseInt(num_2); return sum; } } 加法器:<br/> <form action="doAdd.jsp" name="plus" method="post"> <input type="text" id="num_1" name="num_1"/> + <input type="text" id="num_2" name="num_2"/> <br> <input name="submit" type="submit" value="Sum?"> </form> <body> <jsp:useBean id="plus" scope="request" class= "td.Plus"/> <jsp:setProperty name="plus" property="*"/> 计算结果是:<% out.println(plus.getSum( ) ); %></body> 12. JSP中两种include的区别 <%@ include file=”relativeURI”%> 可以叫作静态include(静态包含),是jsp指令中的一种,(JSP指令控制JSP编译器如何去生成servlet(servlet是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。 <jsp:include page=”relativeURI” flush=”true” />叫作动态include(动态包含),是jsp动作的一种,(JSP动作是一系列可以调用内建于网络服务器中的功能的XML标签) 执行时间上:    <%@ include file=”relativeURI”%> 是在翻译阶段执行    <jsp:include page=”relativeURI” flush=”true” /> 在请求处理阶段执行. 引入内容的不同:   <%@ include file=”relativeURI”%>引入静态文本,在JSP页面被转化成servlet之前和它融和到一起,先包含后编译,不会检查所含文件的变化,适用于包含静态页面,可以理解为纯粹是把代码写在外面的一种共享方法,所有的变量都是可以和include它的主文件共享, 两者高度紧密结合,不能有变量同名的冲突.而页面设置也可以借用主文件的。  <jsp:include page=”relativeURI” flush=”true” />引入执行页面或servlet所生成的应答文本. 被包含的文件先编译,后包含进来,然后显示。 13. JSP中get和post的区别 Get:是以实体的方式得到由请求URI所指定资源的信息,如果请求URI只是一个数据产生过程,那么最终要在响应实体中返回的是处理过程的结果所指向的资源,而不是处理过程的描述。 Post:用来向目的服务器发出请求,要求它接受被附在请求后的实体,并把它当作请求队列中请求URI所指定资源的附加新子项 14. request.getParameter和request.getParameterValues的异同 request.getParameterValues(String name)是获得如如checkobx类型(名字相同,但值有多个)的数据。接收数组变量 request.getParameter(String name)是获得相应名的数据,如果有重复的名,则返回第一个的值,接收一般变量,如text类型.
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服