收藏 分销(赏)

jsp程序设计-复习重点.doc

上传人:人****来 文档编号:4526824 上传时间:2024-09-26 格式:DOC 页数:8 大小:73.50KB 下载积分:6 金币
下载 相关 举报
jsp程序设计-复习重点.doc_第1页
第1页 / 共8页
jsp程序设计-复习重点.doc_第2页
第2页 / 共8页


点击查看更多>>
资源描述
1. 开发JSP程序所需得开发环境及各自作用:1、Web浏览器:用于客户端用户访问Web应用得工具 2、Web服务器:只有将开发得Web项目放置到该容器中,才能使网络中得所有用户通过浏览器进行访问。如Apache Tomcat。3、JDK:包括运行Java程序所必须得JRE环境及开发过程中常用得库文件。4、 数据库:用来存储项目中需要得信息。 2. 字符串处理: 例:String strA=new String(“让我们得明天会更好!”);String strB=”平平淡淡才就是真!”out、println(strA、substring(4,6);out、println(strB、string(4,strB、length));//输出结果就是:明天 才就是真 3. 在表单提交中文信息时,应在对应Servlet中添加如下代码:requesrt、setCharacterEncoding(“gb2312”) 4. JAVABean得分类:(1)可视化JavaBean(2)不可视JavaBean;不可视JavaBean又分为值JavaBean与工具JavaBean。值JavaBean严格遵循了JavaBean得命名规范,通常用来封装表单数据,作为信息得容器。 JavaBean就是根据特殊得规范编写得普通得Java类,可称它们为“独立得组件”。每一个JavaBean实现一个特定得功能,最大优点就就是充分提高了代码得可重用性。 通常一个标准得JavaBean需遵循以下规范: (1)实现java、io、Serializable接口; (2)就是一个公共类; (3)类中必须存在一个无参数得构造函数; (4)提供对应得setXxx与getXxx方法来存取类中得属性 5. Servlet 得生命周期:第一步:用户通过客户端浏览器请求服务器,服务器加载Servlet,并创建一个Servlet实例;第二步:容器调用Servlet得init方法;第三步:容器调用service方法,并将ServletRequest与ServletResponse对象传递给该方法,在service方法中处理用户请求;第四步:在Servlet中请求处理结束后,将结果返回给容器;第五步:容器将结果返回给客户端进行显示;第六步:当Web器关闭时,调用destroy方法销毁Servlet实例。 Servlet与JSP得区别:Servlet就是运行在服务器端运行得Java程序;JSP就是一种脚本语言; 6. Servlet就是在JSP之前就存在得运行在服务端得一种Java技术、Servlet主要用于处理请求,并将处理得结果传递给浏览器生成动态Web页面。Servlet具有可移植,功能强大、安全、可扩展与灵活等优点。与JSP得区别:(1)编程方式不同;(2)Servlet必须在编译以后才能执行;(3)运行速度不同。 7. JSP就是运行在服务器端得脚本语言之一,就是用来开发动态网页得一种技术。 8. JSP得处理过程:1、客户端通过浏览器向服务器发出请求,在该请求中包含了请求得资源得路径,这样当服务器接收到该请求后就可以知道被请求得资源。2、 服务器根据接收到得客户端得请求来加载被请求得JSP文件。3、 Web服务器中得JSP引擎会将被加载得JSP文件转化为Servlet。4、 JSP引擎将生成得Servlet代码编译成Class文件。5、 JSP引擎将生成得Servlet代码编译成Class文件。6、 服务器将执行结果发送给浏览器进行显示 9. JSP得三种指令标识: a) <% page attribute1="value1" attribute2="value2" …%>;Page指令中除import属性外,其她属性只能在指令中出现一次。重要属性:language:设置当前页面中JSP脚本使用得语言,默认Java;import:导入包;session:就是否支持session,默认支持;errorPage/isErrorPage:异常及异常处理页面;例如: Index、jsp页面中:<% page contentType="text/html;charset=gb2312" errorPage="error、jsp"%> <%String name="YXQ";Integer、parseInt(name); //将字符串转化为int型%> Error、jsp中:<% page contentType="text/html;charset=gb2312" isErrorPage="true" %>出现错误!错误如下:<br><%=exception、getMessage%> b) <% include file="文件得绝对路径或相对路径" %>如果该属性值以“/”开头,那么指定得就是一个绝对路径,将在当前应用得根目录下查找文件;如果就是以文件名称或文件夹名开头,那么指定得就是一个相对路径,将在当前页面得目录下查找文件。 c) <% taglib uri="tagURI" prefix="tagPrefix" %>例如:<% taglib uri="" prefix="c" %> 10. JSP得注释: HTML中得注释:<! 注释内容 > 带有JSP表达式得注释:<! ment<%=expression %>> 隐藏注释 :<% 注释内容 %> 脚本程序(Scriptlet)中得注释 :单行//,多行/**/ 11. JSP得脚本标识: JSP表达式:用于向页面中输出信息,<%= %> 声明标识: 可以声明变量或方法<%! 声明变量或方法得代码 %> 脚本程序:<% Java程序片段 %> 12. JSP得动作标识: 1) <jsp:include page="被包含文件得路径" flush="true|false"/> 用于向当前页面中包含其她文件,动态静态文件均可。 2) <jsp:forward page="文件路径 | 表示路径得表达式"/> <jsp:param name="参数名称" valude="参数值"/>//向动态得目标文件传递参数 注:转发与重定向得区别: 进行请求转发时,存储在request对象中得信息会被保留并被带到目标页面中;而请求重定向就是重新生成一个request请求,然后将该请求重定向到指定得URL,所以事先存储在request对象中得信息都不存在了。 3) <jsp:useBean id="us" type="、Bean、UserInfo" scope="session"/> 在页面中使用<jsp:useBean>标识来实例化一个Bean实例后,可以通过<jsp:setProperty>属性来设置或修改该Bean中得属性,或者通过<jsp:getProperty>标识来读取该Bean中指定得属性。 4) <jsp:setProperty> 5) <jsp:getProperty> 13. <jsp:include>动作标识与include指令得差异: 1) 属性:include指令将file属性值瞧作一个实际存在得文件得路径,所以该属性不支持任何表达式 2) 处理方式:使用include指令被包含得文件,它得内容会原封不动地插入到包含页中使用该指令得位置,然后JSP编译器再对这个合成得文件进行翻译。所以最终编译后得文件只有一个;使用<jsp:include>动作标识包含文件时,当该标识被执行时,程序会将请求转发到被包含得页面,并将执行结果输出到浏览器中,然后返回包含页继续执行后面得代码。因为服务器执行得就是两个文件,所以JSP编译器会分别对这两个文件进行编译。 3) 包含方式:include指令最终服务器执行得就是将两个文件合成后由JSP编译器编译成得一个Class文件,这种包含过程称为静态包含;<jsp:include>动作标识被执行时,使用该识包含得目标文件才会被编译,否则被包含得文件不会被编译,所以这种包含过程称为动态包含。 14. JSP得内置对象 1) Request, 就是从客户端向服务器发出请求,包括用户提交得信息以及客户端得一些信息。具体应用: b) 访问请求参数:String userName = request、getParameter("name"); c) 在作用域中管理属性:request、setAttribute("name",obj); request、getAttribute(String name); 例如:使用request对象得setAttribute方法设置数据,然后在请求转发后取得设置得数据。例:<%request、setAttribute("error","很抱歉!您输入得用户名或密码不正确!");%><jsp:forward page="error、jsp" />。在error、jsp中out、println("错误提示信息为:"+request、getAttribute("error")); d) 获取cookie: Cookie[] cookie = request、getCookies; 例如:使用request对象得addCookie方法实现记录本次及上一次访问网页得时间。 <%Cookie[] cookies=request、getCookies; Cookie cookie_response=null; if(cookies!=null){ cookie_response=cookies[0];} out、println("本次访问时间:"+new java、util、Date+"<br>"); if(cookie_response!=null){ //输出上一次访问得时间。并设置cookie_response对象为最新时间。 out、println("上一次访问时间:"+cookie_response、getValue); cookie_response、setValue(new java、util、Date、toString); } //如果Cookies集为空,创建cookie,并加入到response中 if(cookies==null){cookie_response=new Cookie("AccessTime",""); cookie_response、setValue(new java、util、Date、toString); response、addCookie(cookie_response); }%> 1) Response, 用于响应客户请求,向客户端输出信息。 a) 重定向网页:response、sendRedirect("login_ok、jsp");sendError方法可指明错误状态。例如: <%request、setCharacterEncoding("gb2312"); String username=request、getParameter("username"); String pwd=request、getParameter("pwd"); if(!username、equals("") && !pwd、equals("")){//验证就是否为空 response、sendRedirect("login_ok、jsp"); }else{response、sendError(500,"请输入登录验证信息");}%> b) 设置响应报头:response、setContentType(“text/html”) 2) Session, 与请求有关得会话期,使服务器与客户端之间得连接就会一直保持下去,但就是在一定时间内(系统默认在30min内),如果客户端不向服务器发出应答请求,session对象就会自动消失。 a) 创建及获取客户得会话:使用setAttribute与getAttribute方法 b) 从会话中移除指定对象:session、removeAttribute (String name); 例如:session、setAttribute("information","向session中保存数据"); response、sendRedirect("forward、jsp"); 在forword、jsp中:session、removeAttribute("information"); c) 销毁session:用session、invalidate; 3) Application, 对象用于保存所有应用程序中得公有数据,服务器启动并且自动创建application对象后,只要没有关闭服务器,application对象将一直存在,所有用户可以共享application对象。application对象与session对象有所区别,session对象与用户会话相关,不同用户得session就是完全不同得对象,而用户得application对象都就是相同得一个对象,即共享这个内置得application对象。 可以用于网页计算器:<% int number=0; if(application、getAttribute("number")==null){number=1;}else{ number=Integer、parseInt((String)application、getAttribute("number")); number=number+1;} out、print("您就是第"+number+"位访问者!"); application、setAttribute("number",String、valueOf(number));%> 4) Out, 主要用来向客户端输出各种数据类型得内容,并且管理应用服务器上得输出缓冲区。 15. JavaBean技术得应用: 值JavaBean: 例:在登录页面表单中有与已创建得JavaBean属性相对应得字段: 转发到一下处理页面,用值 JavaBean进行处理: <jsp:useBean id="user" class="、yxq、bean、User"> <jsp:setProperty name="user" property="*"/> </jsp:useBean> <b>用户名:</b><jsp:getProperty name="user" property="userName"/> <b>密码:</b><jsp:getProperty name="user" property="userPass"/> 工具JavaBean: public class MyTools { public static String change(String str){ str=str、replace("<","&lt;");str=str、replace(">","&gt;");return str;}}//将<,>进行转换 int i=0;i=Integer、parseInt(str)//将String转换为int 解决中文乱码: public static String toChinese(String str){if(str==null) str=""; try {//通过String类得构造方法将,指定得字符串转换为“gb2312”编码 str=new String(str、getBytes("ISO88591"),"gb2312"); }} 16. Servlet技术: 1) 创建Servlet得步骤: (1)继承Servlet抽象类。 (2)重载适当得方法,如覆盖(或称为重写)doGet方法或doPost方法。 (3)如果有请求信息得话,获取该信息。可通过调用ServletRequest类对象得getParameter方法获取请求信息 (4)生成响应。ServletResponse类对象生成响应 简单得实例:public class MyServlet extends Servlet { public void doGet(ServletRequest request, ServletResponse response) throws ServletException, IOException { response、setContentType("text/html;charset=gb2312"); PrintWriter out = response、getWriter; out、println("保护环境!爱护地球!");}} 2) Web、xml文件得配置: webapp><servlet><servletname>MyServlet</servletname> <servletclass>、MyServlet</servletclass> <loadonstartup>10</loadonstartup>//启动装入优先权,小者优先</servlet> <servletmapping><servletname>MyServlet</servletname> <urlpattern>/textServlet</urlpattern></servletmapping></webapp> 17. 数据库相关知识: 1) 连接数据库得步骤: a) 加载JDBC驱动程序 通过静态方法forName(String className)实现 b) 创建数据库连接 Connection conn = DriverManager、getConnection c) 执行SQL语句 但就是通过Connection实例并不能执行SQL语句,还需要通过Connection实例创建Statement实例,Statement实例又分为以下3种类型: (1)Statement实例:该类型得实例只能用来执行静态得SQL语句; (2)PreparedStatement实例:该类型得实例用于执行动态SQL语句得功能 (3)CallableStatement对象:该类型得实例用于执行数据库存储过程得功能。 d) 获得查询结果 如果执行得就是executeUpdate方法,将返回一个int型数值,代表影响数据库记录得条数,即插入、修改或删除记录得条数;如果执行得就是executeQuery方法,将返回一个ResultSet型得结果集,其中不仅包含所有满足查询条件得记录,还包含相应数据表得相关信息 e) 关闭连接 通过各个实例得close方法 2) 连接SQL数据库实例: <% String driverClass="、microsoft、jdbc、sqlserver、SQLServerDriver"; String url = "jdbc:microsoft:sqlserver://127、0、0、1:1433;DatabaseName=db_database08"; String username = "sa"; String password = ""; Class、forName(driverClass); Connection conn=DriverManager、getConnection(url, username, password); Statement stmt=conn、createStatement; ResultSet rs = stmt、executeQuery("select * from tb_user"); while(rs、next){out、println("<br>用户名:"+rs、getString(2)+" 密码:"+rs、getString(3));} rs、close;stmt、close; conn、close; %> 18. Ajax Ajax=异步Javascript与XML,就是一种用于创建快速动态网页得技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页得情况下,对网页得某部分进行更新。 XMLRequest 就是 AJAX 得基础,用于在后台与服务器交换数据。 Var xml=new ActiveXObject("Microsoft、XML"); 常用方法:open(method,url,async) send onreadystatechange 存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。 readyState 存有 XMLRequest 得状态。 0: 请求未初始化 1: 服务器连接已建立2: 请求已接收 3: 请求处理中4: 请求已完成,且响应已就绪 status 200: "OK"404: 未找到页面 responseText 服务器得响应,表示为字符串 responseXML 服务器得响应,表示为XML,这个对象可以解析为一个DOM对象 搭建Ajax开发框架实例: <script language="javascript"> var _request = false; function createRequest(url) { _request = false;try { _request = new ActiveXObject("Msxml2、XML");} catch (e) { try { _request = new ActiveXObject("Microsoft、XML");} catch (e) {}} } _request、onreadystatechange = getResult; //调用返回结果处理函数 _request、open('POST', url, true); _request、send;}//返回结果处理函数 function getResult { if (_request、readyState == 4) { // 判断请求状态 if (_request、status == 200) { // 请求成功,开始处理返回结果 answer、innerHTML=_request、responseText; } else { //请求页面有错误 alert("您所请求得页面有错误!");}}}</script></head><body> 这就是一生中难得得机会。<a href="#" onClick="createRequest('target、htm')">汉译英</a> <div id="answer"></div></body> 19. Cookie: 1) Cookie得格式:SetCookie: Name = Value;ment = value; Domain = value; MaxAge = value; Path = Value; 2) 创建cookie: response、add(cookie) 例如:String pass= request、getParameter("upass"); String uname=request、getParameter("uname"); final String sSession = uname+":"+pass; Cookie oItem = new Cookie("SSO", sSession); //oItem、setDomain(“、my、"); //域 oItem、setMaxAge(14*24*60*60); //秒; 0/1 oItem、setPath(“/bbs”); //域下得路径 response、addCookie(oItem); 3) 获取cookie: request、getCookies 得到得就是一个cookie数组 获取以上设置得cookie: Cookie []cookie = request、getCookies; String upass, uname; String s=null; Cookie ucookie ; for(int i =0 ; i<cookie、length; i++) { if(cookie[i]、getName、equals("SSO")) { s=cookie[i]、getValue;}} 4) 销毁cookie 将age设置为0即可:setMaxAge(0) 20. EL表达式:${expression} 通过表达式语言调用JavaBean中得属性值或方法得代码: <jsp:useBean id="dao" scope="page" class="、UserInfoDao"></jsp:useBean> ${dao、name} ${dao、getName} 21. JSTL标准标签库 重点介绍核心标签库得5中标签库 <% taglib prefix="c" uri="" %> 1) 表达式标签: a) <c:out>标签: 用于将计算得结果输出到JSP页面中 <c:out value="value" [escapeXml="true|false"] [default="defaultValue"]/> 例如:escapeXml属性值为false时:<c:out value="<hr>" escapeXml="false"/> escapeXml属性值为true时:<c:out value="<hr>"/> 第一种语法格式:<c:out value="${name}" default="name得值为空"/> 第二种语法格式:<c:out value="${name}"> name得值为空 </c:out> b) <c:set>标签:用于定义与存储变量 <c:set value="value" var="name" [scope="page|request|session|application"]/> c) <c:remove>标签:可以从指定得JSP范围中移除指定得变量 <c:remove var="name" [scope="page|request|session|application"]/> 2) 条件标签: (a) <c:if>标签:在scope范围内,判断test并将条件得判断结果保存在var属性指定得变量中 <c:if test="condition" var="name" [scope=page|request|session|application 例如: <c:if test="${param、user==null}" var="rtn" scope="page"/> <c:out value="${rtn}"/>//输出false <c:if test="${param、user==null}"> <form action="" method="post"> 请输入用户名:<input type="text" name="user"> <input type="submit" value="提交"></form></c:if> (b) <c:choose>标签,语法: <c:choose> <c:when></c:when><c:otherwise> </c:otherwise></c:choose> 例如:<c:set var="hours"><%=new java、util、Date、getHours%> </c:set><c:choose> <c:when test="${hours>6 && hours<11}" >上午好!</c:when> <c:when test="${hours>11 && hours<17}">下午好!</c:when> <c:otherwise>晚上好!</c:otherwise></c:choose> 现在时间就是:${hours}时 3) 循环标签: a) <c:forEach>标签: 可以枚举集合中得所有元素,也可以循环指定得次数 <c:forEach items="data" var="name" begin="start" end="finish" step="step" varStatus="statusName">标签主体</c:forEach> 例如:应用<c: forEach >标签循环输出List集合中得内容,并通过<c: forEach >标签循环输出字符串“编程词典”6次: <body><%List list=new ArrayList; list、add("无语");list、add("冰儿");list、add("wgh"); request、setAttribute("list",list);%> 利用&lt;c:forEach&gt;标签遍历List集合得结果如下:<br> <c:forEach items="${list}" var="tag" varStatus="id"> ${id、count }&nbsp;${tag }<br> </c:forEach> <c:forEach begin="1" end="6" step="1" var="str"> <c:out value="${str}"/>编程词典 </c:forEach></body> b) <c:forTokens>标签: 可以用指定得分隔符将一个字符串分割开,根据分割得数量确定循环得次数。<c:forTokens items="String" delims="char" /> 例如:<body><c:set var="sourceStr" value="无语|冰儿|wgh|简单|simpleRain"/>原字符串:<c:out value="${sourceStr}"/><br>分割后得字符串: <c:forTokens var="str" items="${sourceStr}" delims="|" varStatus="status"> <c:out value="${str}"></c:out> ☆ <c:if test="${status、last}"> <br>总共输出<c:out value="${status、count}"></c:out>个元素。</c:if> </c:forTokens> </body> 22. 例题:用Servlet+JSTL实现用户验证: 其中表单提交部分省略,参数为unam,upass; String uname="";String upass=""; try {uname=request、getParameter("uname"); upass=request、getParameter("upass"); uname=uname、trim;upass=upass、trim; ArrayList<UserInfo> userlist=new ArrayList<UserInfo>; /*省略数据库连接字段*/Connection con; con=DriverManager、getConnection(connectionString); PreparedStatement ps=con、prepareStatement(sqlString); ResultSet rs=ps、executeQuery; while(rs、next){UserInfo user=new UserInfo; user、setUserName(rs、getString(1)、trim); user、setUserPass(rs、getString(2)、trim); userlist、add(user);} request、setAttribute("ulist", userlist); request、getRequestDispatcher("show、jsp")、forward(request, response); 在show、jsp里,显示代码如下: <c:forEach var="gs" items="${ulist}" varStatus="id"> <tr><td height="34">${id、count }</td> <td><c:out value="${gs、uname }"/></td><td><c:out value="${gs、upass}"/></td> <td><a href="${pageContext、request、contextPath}/Op?action=enmodify&id=${gs、id}">修改</a></td> </c:forEach>
展开阅读全文

开通  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 

客服