JSP教案:第五章 JSP内置对象_第1页
JSP教案:第五章 JSP内置对象_第2页
JSP教案:第五章 JSP内置对象_第3页
JSP教案:第五章 JSP内置对象_第4页
JSP教案:第五章 JSP内置对象_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JSP内置对象第五章预习检查什么是JSP内置对象?本章目标掌握JSP基本语法内置对象的使用什么是JSP内置对象JSP内置对象是Web容器创建的一组对象JSP内置对象的名称是JSP的保留字JSP内置对象是可以直接在JSP页面使用的对象,无需使用“new”获取实例<%

request.setCharacterEncoding("GBK"); StringtitleName=

request.getParameter("titlename");%>没有出现new关键字,但却可以使用request对象JSP内置对象常用的JSP内置对象常用内置对象requestresponseoutapplicationsessionconfigpagepagecontextexceptionJSP内置对象request6-1request对象主要用于处理客户端请求JSP页面request对象客户端请求请求信息JSP内置对象request6-2方法名称

说明StringgetParameter(Stringname)根据页面表单组件名称获取页面提交数据String[]getParameterValues(Stringname)获取一个页面表单组件对应多个值时的用户的请求数据voidsetCharacterEncoding(Stringcharset)指定每个请求的编码,在调用getParameter()之前进行设定,可以解决中文乱码问题StringgetRemoterAddr()返回提交请求的客户机的IP地址request对象常用方法JSP内置对象request6-3编程实现学员的注册功能注册信息包括:用户名、密码、你从哪里知道ACCP页面提交后,显示学员输入的数据12JSP内置对象request6-4学员注册页面

<formname="form1"method="post"action="reginfo.jsp"><tableborder="0"align="center"><tr><td>用户名</td><td><inputtype="text"name="name"></td></tr><tr><td>密码</td><td><inputtype="password"name="pwd"></td></tr><tr><td>你从哪里知道ACCP</td><td><inputtype="checkbox"name="channel"value="报刊">报刊

<inputtype="checkbox"name="channel"value="网络">网络

<inputtype="checkbox"name="channel"value="朋友推荐">朋友推荐

<inputtype="checkbox"name="channel"value="电视">电视

</td></tr><!--以下是提交、取消按钮--></table></form>JSP内置对象request6-5信息读取显示页面<% //读取用户名和密码 Stringname=request.getParameter("name"); Stringpwd=request.getParameter("pwd");

…HTML页面代码… //读取复选框选择项 String[]channels=request.getParameterValues("channel"); if(channels!=null){ for(inti=0;i<channels.length;i++){ out.println(channels[i]); } }%>为什么我们输入的中文都是乱码显示?JSP内置对象request6-6在进行页面开发时,存在多种字符集编码设置,我们只需要在页面设置支持中文字符的字符集就可以了<% 以GET方式提交数据时 //读取用户名和密码 Stringname=request.getParameter("name"); //对请求数据进行字符编码

name=newString(name.getBytes("ISO-8859-1"),"GBK");%><% 以POST方式提交数据时 //设置读取请求信息的字符编码为GBK或者GB2312

request.setCharacterEncoding("GBK"); //读取用户名和密码 Stringname=request.getParameter("name"); Stringpwd=request.getParameter("pwd");%>JSP内置对象response3-1response对象用于响应客户请求并向客户端输出信息response对象常用方法voidsendRedirect(Stringlocation):将请求重新定位到一个不同的URL,即页面重定向JSP页面response对象客户端响应从服务器中检索的信息存储信息,以在响应客户端请求时发送此信息<formname="form1"method=postaction="control.jsp">用户名:<inputtype="text"name="userName">密码:<inputtype="password"name="pwd"><inputtype="submit"value="登录"><form>JSP内置对象response3-2根据业务逻辑实现页面跳转input.jsp客户端重新建立链接<%request.setCharacterEncoding("GBK");Stringname=request.getParameter("userName");Stringpwd=request.getParameter("pwd");if(name.equals("sa")&&pwd.equals("sa")) response.sendRedirect("welcome.jsp");%>跳转至欢迎页面control.jspJSP内置对象response3-3页面实现跳转了,请求的信息是否也一起转移呢?那么如何才能实现页面跳转后,请求信息不丢失呢?使用转发取代重定向实现页面跳转页面的转发转发的作用:在多个页面交互过程中实现请求数据的共享转发的实现:RequestDispatcher对象forward()方法<%RequestDispatcherrd=request.getRequestDispatcher("welcome.jsp");rd.forward(request,response);%>将当前接收的用户请求,发送给服务器的其他资源使用转发与重定向的比较转发是在服务器端发挥作用,通过forward方法将提交信息在多个页面间进行传递。转发是在服务器内部控制权的转移,客户端浏览器的地址栏不会显示出转向后的地址重定向是在客户端发挥作用,通过请求新的地址实现页面转向重定向是通过浏览器重新请求地址,在地址栏中可以显示转向后的地址JSP访问数据库<%@pageimport=“java.sql.*"%><%try{Class.forName(JDBC驱动类);Connectioncon=DriverManager.getConnection(JDBCURL,数据库用户名,密码);Statementstmt=con.createStatement();ResultSetrs=stmt.executeQuery("SELECTa,b,cFROMTable1");while(rs.next()){intx=rs.getInt("a");Strings=rs.getString("b");floatf=rs.getFloat("c");}con.close();}catch(Exceptione){e.printStackTrace();}%>获得数据库连接发送Sql语句处理结果注册JDBC驱动释放资源必须处理的异常JSP中实现数据库访问就是将数据库访问代码以小脚本的方式体现在JSP页面当中注意:需要使用page指令导入相应的类库导入类库JSP访问数据库应用4-1用户注册功能实现,要求如下:从页面上添加用户注册信息如果保存成功,返回登录页面保存失败,返回失败页面control.jsp

1、获得用户输入2、插入数据库3、根据保存结果返回不同页面成功页面失败页面保存成功保存失败123JSP访问数据库应用4-2创建表users字段名称字段说明数据类型大小uid序号number4uname用户名称varchar250upwd密码varchar250JSP访问数据库应用4-3创建注册页面<formname="form1"method="post"action="control.jsp"><table><tr><td>用户名</td><td><inputtype="text"name="userName"></td></tr><tr><td>输入登录密码</td><td><inputtype="password"name="pwd"></td></tr>…省略余下的代码<td>提交:</td><td><inputtype="submit"value="注册"></td></tr></table></form>JSP访问数据库应用4-4创建业务处理页面try{Class.forName("oracle.jdbc.driver.OracleDriver");con=DriverManager.getConnection("连接字符串","用户名","密码");stmt=con.createStatement();Stringstr="selectmax(id)fromloguser";intmaxid=0;rs=stmt.executeQuery(str);if(rs.next())maxid=rs.getInt(1)+1; //获取新的用户编号Stringsql="insertintologuservalues("+maxid+",'"+name+"','"+pwd+"')";validate=stmt.executeUpdate(sql);}catch(Exceptione){ e.printStackTrace();}

JavaScript页面验证与JSP的集成代码片断<scriptlanguage="JavaScript"type="">functioncheckUserInfo(){if(document.myform.username.value==""){ alert("用户名不能为空"); returnfalse;}}</script>在JSP页面中增加JavaScript验证:如果用户输入的信息为空,表单不能提交<inputtype="submit"name="Submit“value="确定"

onClick="returncheckUserInfo()"/>通过onClick事件触发checkOneTitle()方法生活中的Cookie浏览购物网站查看不同商品时,系统会自动记录已经浏览过的商品什么是CookieCookie是Web服务器保存在客户端的一系列文本信息Cookie的作用对特定对象的追踪统计网页浏览次数简化登录安全性能容易信息泄露Cookie的语法2-1导入包创建Cookieparameter:用于代表cookie的名称(key)value:用于表示当前key名称所对应的值写入CookieCookienewCookie=newCookie("parameter","value");response.addCookie(newCookie)import="javax.servlet.http.Cookie"Cookie的语法2-2设置Cookie属性的常用方法类型方法名称说明voidsetMaxAge(intexpiry)设置Cookie的有效期,以秒为单位voidsetValue(Stringvalue)在Cookie创建后,对Cookie进行赋值StringgetName()获取Cookie的名称StringgetValue()获取Cookie的值StringgetMaxAge()获取Cookie的有效时间,以秒为单位JSP中应用Cookie2-1用户登录成功后,将用户信息保存到Cookie中,在页面读取Cookie并显示JSP中应用Cookie2-2从登录验证页面表单中获取用户名<%Stringusername=reqeust.getParameter("username");//以key/value的形式创建CookieCookieuname=newCookie("uname",username);

response.addCookie(uname);......%>在显示页面显示用户名<%//获取请求中的Cookie,以数组方式保存Cookiecookies[]=request.getCookies();//循环遍历数组,得到key=uname的Cookiefor(inti=0;i<cookies.length;i++){Cookieucookie=cookies[i];if(ucookie.getName().equals("uname”));//判断Cookie的名称

%>

欢迎你:<%=ucookie.getValue()%>//获取key对应的value,输出显示<%}%>创建Cookie,使用response的addCookie方法保存Cookie使用reqeust获取Cookie数组,通过cookie的名称获取对应的内容生活中的访问控制下载电子书时,系统会提示用户登录网站点击下载,系统转入登录页面每次下载之前,系统如何判断用户是否已经登录?如何实现访问控制系统如何保存不同用户的登录信息?使用JSP会话跟踪机制,可以维持每个用户的会话信息,也就是为不同的用户保存不同的数据12用户登录进入用户注册页面系统保存该用户的登录信息进入欲访问的页面是否是注册用户否是用户直接访问某个页面进入用户登录页面显示该页面内容系统是否保存了该用户登录信息否是访问流程控制分析浏览器关闭,本次会话结束什么是会话一个会话就是浏览器与服务器之间的一次通话,包含浏览器与服务器之间的多次请求、响应过程浏览器session对象请求1浏览器请求2…nsession是JSP内置对象,与浏览器一一对应,允许用户存储和提取会话状态的信息响应1响应2…nsession对象JSP内置对象sessionsession对象用来存储有关用户会话的所有信息session对象常用方法:类型方法名称说明voidsetAttribute(Stringkey,Objectvalue)以key/value的形式保存对象值ObjectgetAttribute(Stringkey)通过key获取对象值intgetMaxInactiveInterval()获取session的有效非活动时间,以秒为单位StringgetId()获取session对象的编号voidinvalidate()设置session对象失效session与窗口的关系一个session对应一个窗口,那么通过超链接打开的窗口是否也是新的session呢?每个session对象都与浏览器一一对应重新开启一个浏览器,相当于重新创建一个session对象重新开启一个IE窗口,直接访问系统首页面通过超链接打开的新窗口,新窗口的session与其父窗口的session相同在系统中,增加访问控制功能,具体要求如下:提供用户登录功能管理员有权对信息实现增删改的操作使用session实现访问控制4-1登录处理页面1、获得登录信息2、查询数据库,判断该用户是否注册3、如果该用户已注册,在session中保存该用户的登录信息4、如果用户时管理员就跳转到管理员界面;否则跳转到新闻发布系统的首页面管理员界面1、从session中提取该用户信息2、如果用户信息存在,显示管理员界面内容4、如果用户信息不存在,跳转到登录页面用户已注册session中无法提取到用户信息123使用session实现访问控制4-2在控制页面获取用户请求的登录信息进行验证登录处理页面的代码片断<%if(rs.next()){//如果是已注册用户session.setAttribute("LOGINED_USER",loginedUser);response.sendRedirect("index.jsp");}else{response.sendRedirect("login.html");}%>在session中存放用户登录信息使用session实现访问控制4-3

在信息管理页面增加登录验证<%Useruser=(User)session.getAttribute("LOGINED_USER");if(user==null){response.sendRedirect("login.jsp");}%>如果session中不存在该用户的登录信息,转入登录页面使用session实现访问控制4-4访问控制效果验证,步骤如下:直接在IE地址栏中输入URL,访问系统首页面通过登录页面进入系统首页面重新开启一个IE窗口,直接访问系统首页面Cookie与session的比较session是在服务器端保存用户信息,Cookie是在客户端保存用户信息session中保存的是对象,Cookie保存的是字符串session随会话结束而关闭,Cookie可以长期保存在客户端Cookie通常用于保存不重要的用户信息,重要的信息使用session保存JSP内置对象applicationapplication类似于系统的“全局变量”,用于实现用户之间的数据共享application对象的常用方法:voidsetAttribute(Stringkey,Objectvalue):以键/值的方式,将一个对象的值存放到application中ObjectgetAttribute(Stringkey):根据键去获取application中存放对象的值application.setAttribute("LOGINED_USER",newArrayList());if(application.getAttribute("LOGINED_USER")!=null){ListloginedUsers=(List)application.getAttribute("LOGINED_USER");}application对象application是JSP内置对象实现服务内数据的共享在服务内值存在一个对象实例application对象的常用方法类型方法名称说明voidsetAttribute(Stringkey,Objectvalue)以key/value的形式保存对象值ObjectgetAttribute(Stringkey)通过key获取对象值StringgetRealPath(Stringpath)返回相对路径的真实路径实现访问人数统计2-1创建登录处理页面登录处理页面代码片断if(rs.next()){Userlogineduser=newUser(name,pass);session.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论