JSP复习纲要.doc_第1页
JSP复习纲要.doc_第2页
JSP复习纲要.doc_第3页
JSP复习纲要.doc_第4页
JSP复习纲要.doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

Web程序设计复习资料第1章 JSP概述 JSP(Java Server Page)由Sun Microsystems公司倡导、许多公司参与建立的一种动态网络技术标准。由Java语言作为脚本语言。为整个服务器端Java单元提供了一个接口服务于HTTP应用程序。 Java语言最大的特点是与运行平台无关;面向对象、高安全性和健壮性、分布式、多线程 Web简介:Web定义了Web客户端和Web服务端如何通信 HTTP简介:Hyper Text Transfer Protocol,超文本传输协议。用于传输超文本标记语言(Hyper Text Markup Language HTML)编写的网页文件。具有支持B/S结构,简单快速,灵活,无连接,无状态的特点。HTMLHTTP浏览器Web服务器数据库 B/S结构:(Browser/Server)B/S结构是三层体系结构,B/S结构要求客户端只需要安装一个浏览器(Browser),客户端通过浏览器将请求发送给Web服务器,Web服务器负责与后端数据库服务器进行数据通信。 C/S结构:C/S是Client/Server的缩写,C/S结构是二层结构平台模式。C/S结构要求客户端要安装指定的软件,客户端负责执行前端的数据处理,服务端进行后端的服务处理。目前大多数的网络游戏都是采用C/S结构。C/S结构如图所示。 B/S结构与C/S结构比较比较项B/SC/S服务器负荷量大小维护费用小大升级方便性容易困难选择性多少安全性高低JSP、ASP、PHP等语言都是基于B/S结构开发系统软件的技术。B/S为主流 网站的构成网站结构一般分为3层:用户界面交互层、应用程序层、数据库层用户界面交互层通常采用JSP或者HTML来创建界面,利用JavaScript和CSS来丰富界面效果。应用程序层主要使用Java语言来处理各种不同的业务需求,在数据库层可以通过一些存储过程来处理数据的存储和检索。 Servlet和JSP技术Servlet和JSP技术都是属于Web层的技术。这两项技术都可以解决动态网页的生成问题,但最好的方式是取两项技术各自的长处:JSP负责网页表现设计,Servlet负责跳转控制。每一个JSP文件在执行之前都会被转化成Servlet文件。 Servlet简介Servlet是用Java编写的服务端程序,它与协议和平台无关。Servlet运行在Java Web Server上,并采用了请求响应的模式提供服务。 Servlet的生命周期:Servlet的生命周期可以分为4个阶段:载入、初始化init()、执行 service()-doGet()或doPost()、删除 destory(); JSP简介在传统的网页文件HTML中加入Java程序片段和JSP标记,就构成了JSP网页。 第一个Servletsuper.init() /初始化方法;super.destory() /销毁时调用的方法;doGet和doPost是常用的处理请求方式:比较如下:doGetdoPost请求提交方式通过URL地址提交通过表单提交提交长度受限制不受安全性低相对doGet安全性稍好些 第一个JSP程序JSP页面主要由HTML和Java代码构成。Java代码是通过符号加入到HTML代码中间的。. 其他 HTML 语言 其他 HTML 语言 l JSP指令,描述页面基本信息。由“”结束。l JSP声明,相当于Java类中的变量声明。由“”结束。l JSP表达式,用于将jsp生成的数值嵌入HTML中。“”。l 位于“”之间的代码块是描述JSP页面逻辑处理的Java代码。习题1-8:简述JSP技术和Servlet技术的区别和联系JSP第一次运行的时候会编译成servlet。jsp是web开发技术,servelt是服务器端运用的小程序,我们访问一个jsp页面时,服务器会将这个jsp页面转变成servelt小程序运行得到结果后,反馈给用户端的浏览器。servlet相当于一个控制层再去调用相应的javabean处理数据,最后把结果返回给jsp。servlet主要用于转向,将请求转向到相应的jsp页面。 Jsp更多的是进行页面显示,Servlet更多的是处理业务,即jsp是页面,servlet是实现jsp的方法。 实验三、1+1=第2章 JSP实现网站计数器 JSP中读取文本文件内容l JSP中读取文本文件内容主要是通过Java的读取文件类,由JSP通过浏览器显示结果。这样的文本读取需要使用JDK中的BufferedReader类和FileReader类。l BufferedReader类用来从字符输入流中读取文本并将字符存入缓冲区以便能提供字符、数组的高效读取。常用方法如下:方法名说明Int read(char cbuf)读字符放入数组中,返回所读的字符Int read(char cbuf,int offset,int legnth)读字符放入数组中的指定位置,返回所读的字符数String readLine()读取一文本行Void close()关闭流l FileReader类用来读取字符文件,常用方法如下:方法名说明Int read()读一个字符作为方法的返回值。如果返回值-1,表示文件结束Int read(char cbuf,int offset,int length)读字符放入数组中的指定位置,返回所读的字符数Void close()关闭流 JSP向文本文件中写入内容l JSP向文本文件中写入内容主要是通过Java写入文件类。这样的文本写入需要使用JDK中的FileOutputStream类和PrintWriter类。l FileOutputStream类是用来向File或FileDescriptor输出数据的一个输出流。 完整网站计数器的实现网站计数器 您是第位访问者。/也可以写成 本章习题2-5:在动态Web项目中创建名为test的jsp文件,在test.jsp中声明变量String content=你好,小明!,然后在test.jsp中输出content的内容。关键代码: 2-6:利用JSP技术实现在网页中显示当前系统时间。关键代码:或:本章实验:一、向文本文件中写入“Java 你好”String record=“Java 你好”;String FilePath=“c:count.txt” ; PrintWriter pw=null; pw=new PrintWriter(new FileOutputStream(FilePath); pw.write(record);pw.close();2、 读取文本文件中的内容并在页面中显示String record=null;String FilePath=“c:count.txt ; BufferedReader br=null;br=new BufferedReader(new FileReader(FilePath); record=br.readLine();out.println(record);pw.close();3、 向已有数据的文本中追加数据(1)从文本文件中读取已存在内容(2)record+=“ 不错的技术”; /追加方法(3)处理后保存到文本文件参考代码如下:向已有数据的文本追加数据显示内容为:.第3章 JSP实现用户注册 HTML表单元素回顾Form表单元素名称说明所属标签所属属性Name输入域的名称Input,textarea,select无Value输入域的值Input,textarea 无Text建立一个单行输入文本框inputTypePassword同“text”,星号InputTypeCheckbox建立一个复选框InputTypeRadio建立一个单选框InputTypeSubmit建立一个提交按钮InputTypeReset建立复位按钮InputTypeHidden建立一个不被用户代理器所渲染的元素,即JSP页面对用户不可见InputTypeTextarea建立一个多行输入文本域Textarea无Select建立一个列表选择Select无用法示例:电脑网络影视娱乐男女本科专科 JSP处理请求数据l JSP对象作用域:application、session、page、requestl 内建对象:out、applicationout.print(String name)和out.println(String name)void setAttribute(String name,Object value)和void getAttribute(String name)前者用于以键/值的方式保存对象到application对象中;后者根据名称去攻取application对象中的值。l request对象处理用户请求信息request对象实现的是javax.servlet.http.HttpServletRequest接口,表示客户端对网页的请求,并使用HTTP协议处理客户端的请求。request对象的常用方法有String getParameter(String name),根据页面表单组件名称获取请求页面提交数据,返回值为String类型,参数与请求页面标签内的“name”值相对应。例如,String name=(String)request.getParameter(username),表示把“username”(请求页面的值)赋给“name”(本页面中的值)。String getParameterValues(String name),用来获取页面请求中一个表单组件对应多个值时的用户请求数据,返回值为String类型的数组,同样,参数与请求页面标签内的“name”值相对应,注意,这个“name”在请求页面要对应多个值,如String channels=request.getParameterValues(channel)。l response对象处理用户请求响应response对象实现的同样是javax.servlet.http.HttpServletRequest接口,用于处理JSP生成的响应并将响应发送给客户端,同样的也是通过HTTP将响应发送给客户端。response对象的常用方法有void setContentType(String name),设置作为响应生成内容的类型和字符编码,无返回值,“name”为类型和字符编码,如response.setContentType(text/html;charset=GBK),其中“charset”是字符编码;void sendRedirect(String name),发送一个响应给浏览器,指示其应请求另一个URL,无返回值,“name”为要请求的URL,如response.sendRedirect(response2.jsp)。response.setIntHeader(Refresh,10)/网页10秒刷新一次response.setIntHeader(Refresh,10;URL=)/刷新跳转l 字符转换 存储用户信息到数据库l 创建JDBC连接JDBC是一种为常用数据库提供无缝连接的技术,是一种用于执行SQL的Java API,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发提供了一个标准的API,使它们能用Java API来编写数据库应用程序。ODBC(Open DataBase Connectivity)称为开放式数据库互连技术,是由Microsoft公司倡导并得到业界普遍响应的一种数据库连接技术。JDBC是由Sun公司制定的,JDBC不是ODBC规则派生的,JDBC完全用Java编写,而ODBC是C语言接口。但是JDBC和ODBC都是基于X/OPENSQL的命令层接口(CLI),相同的概念性基础使API工作进展更快,使API的接受更加容易。Sun公司提供了将JDBC变为ODBC的JDBC-ODBC桥,这个用本地方法完成的版本虽然小但很有效。l JDBC的4种驱动模式:JDBC-ODBC桥、本地接口与Java程序相结合、面向数据库中间件、直接连接l JDBC常用接口Driver :Class.forName(sun.jdbc.odbc.JdbcOdbcDriver)/用于加载JDBC-ODBC桥驱动程序;使用前导入import java.sql.*DriverManager:JDBC管理层,作用于用户和驱动程序之间Connection:代表与数据库的连接,即已经加载的Driver和数据库之间建立连接例:Connection conn=DriverManager.getConnection(jdbc:odbc:DBname,loginName,password);Statement:用于将SQL语句发送到数据库中。掌握Statement和PreparedStatement对象的使用;及SQL执行方法:ResultSet executeQuery(String sql)、int executeUpdate(String sql)、Boolean execute(String sql)。Statement stmt=conn.createStatement();/由数据库连接对象conn生成数据库语句对象stmtResultSet:包含符合SQL语句条件的所有行,即结果集。掌握next()方法。 格式一:执行基本SQL语句 Class.forName(JDBC驱动程序);Connection conn=DriverManager.getConnection(相应JDBC驱动程序的连接串);Statement stmt=conn.createStatement();ResultSet rs=stmt.executeQuery(“SQL语句);/如果是数据查询stmt.executeUpdate(SQL语句);/如果是数据操作 格式二:执行带参数的SQL语句 Class.forName(JDBC驱动程序);Connection conn=DriverManager.getConnection(相应JDBC驱动程序的连接串);PreparedStatement stmt = connect.PreparedStatement (带参数的SQL语句);stmt.setInt(设置参数的值);ResultSet rs = stmt.executeQuery(); /如果是数据查询stmt.executeUpdate(); /如果是数据操作u 完整用户注册实现:(本章实验内容) 用户注册 请完成以下表格 姓名: 请在此处填写姓名,字符最长为4个汉字,或8个英文字母。 密码: 姓别: 男女 电子邮箱地址: 职业: 传播/媒体IT/互联网销售/市场学生其它 个人爱好: 电脑网络 影视娱乐 棋牌娱乐 读书读报 美酒佳肴 绘画书法 在此选择兴趣爱好,可以选择一个以上选项 留言: 填写完成后请点击下面的提交按钮提交 /信息检查及向数据库中添加信息页面check.jsp验证并提交信息页面 % /获取表单数据 String name=(String)request.getParameter(name);String password=(String)request.getParameter(password);String sex=(String)request.getParameter(sex);String mail=(String)request.getParameter(email);String pro=(String)request.getParameter(pro); String lover=(String)request.getParameterValues(lover);String line=(String)request.getParameter(line);String strLover=;for(int i=0;i/以下是request对象的使用,获取用户注册及其它信息注册信息 % String name=(String)request.getParameter(name);String password=(String)request.getParameter(password);String sex=(String)request.getParameter(sex);String mail=(String)request.getParameter(email);String pro=(String)request.getParameter(pro); String lover=(String)request.getParameterValues(lover);String line=(String)request.getParameter(line);String strLover=;String method=(String)request.getMethod(); /得到客户端向服务器传送数据的方式Integer cport=(Integer)request.getRemotePort();/得到客户端口 Integer sport=(Integer)request.getServerPort();/得到服务器端口String servername=(String)request.getServerName();/得到服务器名称StringBuffer curl=(StringBuffer)request.getRequestURL();/得到请求的客户端地址for(int i=0;i请牢记您的注册信息: 用户名: 密码: 性别: 电子邮件: 职业: 个人爱好: 留言: 您的请求信息: 传送数据方式为: 客户端口: 服务哭端口: 服务器名称: 请求客户端地址: 本章习题:JSP的9个内建对象:pageContext、 request 、response 、session、 application、 out、 config、 page 、exception过滤器是 特殊的Servlet第4章 JSP与Servelet实现用户登录 JSP是将逻辑混合到显示中,Servlert是将显示混合到逻辑中,即JSP比较适合处理显示的部分,而不善于处理逻辑,Servlet则恰恰相反。通俗地讲,就是JSP向HTML中嵌入Java代码,Servlet是向Java代码中写入HTML元素。 实现用户登录页面:关键在于form表单中的action属性设置“servlet/Login”,以及Web.xml中的配置: Servlet中调用JDBC进行用户合法性验证当用户提交完登录信息后,由Servlet处理请求,所以form表单提交的路径也要配成Servlet能识别的路径。在Servlet中跳转的请求都要在web.xml中描述后才能生效,否则系统将找不到请求资源。 Login com.jsp.servlet.LoginServlet中的4种常用方法:方法名称说明doGet()用来处理HTTP的GET请求。doPost()用来处理HTTP的POST请求。init()当Servlet被加载后执行一些初始化工作destory()卸载Servlet的方法。如下Login.java参考代码:package com.jsp.servlet; /创建包com.jsp.servletimport java.io.IOException;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.sql.*;import javax.servlet.http.HttpSession;public class Login extends HttpServlet private static final long serialVersionUID = 1L; public Login() super(); /* * init初始化方法 */public void init(ServletConfig config) throws ServletExceptiontry Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch (ClassNotFoundException e) e.printStackTrace(); /* * see Servlet#destroy()方法 */public void destroy() super.destroy();protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException / TODO Auto-generated method stubprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOExceptionString username=(String)request.getParameter(username);/获取用户名String password=(String)request.getParameter(password);/获取密码HttpSession sessionn=request.getSession();/获得session try Connection conn=DriverManager.getConnection(jdbc:odbc:userdb,sa,);ResultSet rs=conn.prepareStatement(select count(*) from users where username=+username+ and password=+password+).executeQuery(); if (rs.next() /结果集判断 if(rs.getInt(1)=1) sessionn.setAttribute(message,用户验证正确,登录成功!); sessionn.setAttribute(username,username); sessionn.setAttribute(password,password); request.getRequestDispatcher(success.jsp).forward(request, response); else sessionn.setAttribute(message,用户验证失败,请检查登录信息!); sessionn.setAttribute(username,username); sessionn.setAttribute(password,password); request.getRequestDispatcher(error.jsp).forward(request, response); catch (Exception e)e.printStackTrace(); Servlet实现页面跳转使用Servlet实现页面跳转的方法有两种:一种是使用response.sendRedirect()进行重定位;一种是使用上一小节中的request.getRequestDispatchetr(URL).forward(requ

温馨提示

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

评论

0/150

提交评论