J2EE学习笔记_第1页
J2EE学习笔记_第2页
J2EE学习笔记_第3页
J2EE学习笔记_第4页
J2EE学习笔记_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

J2EE 学习笔记学习笔记 李杰李杰 J2EEJ2EE 基础基础 Servlet Servlet 和和 JSPJSP 一 Web 服务器 Tomcat 的基本配置 a JavaEE 应用常用的 Web 服务器有 WebLogic WebSphere Jboss Resin Tomcat 等 b JavaEE 开发过程中通常使用的 Tomcat 对 web 应用进行测试 c Tomcat 的目录结构 webapps 存放 web 应用程序的目录 bin Tomcat 的运行的常用可执行文件和批处理文件 包括启动和停止 Tomcat 的命令 conf 存放 Tomcat 配置文件的目录 work Tomcat 的工作目录 d Tomcat 的配置文件 server xml 文件是 Tomcat 的服务器的基本配置文件 可以配置端口号 和虚拟目录 tomcat users xml 文件是 Tomcat 的用户配置文件 可以为 Tomcat 添 加用户和角色 e 使用 Tomcat 的 manage apps 部署 web 应用程序 f 注意 在安装完 Tomcat 后要为配置 JAVAHOME 的系统环境变量 如果 Tomcat 服务不能正常启动 请检查 8009 和 8080 端口是否被其他进程 占用 8080 和 8009 是 Tomcat 的默认端口 如果被占用可以停止其他 进程后重新启动 Tomcat 当然也可以通过修改 server xml 配置文件更 改 Tomcat 的服务端口 二 Java 数据库访问技术 JDBC JDBC Java Database Connectivity Java 连接数据库可以使用 ODBC Open Database Connectivity 由微软提 供的一种数据库访问技术 也可以使用厂商驱动 JDBC 本章主要介绍使用 厂商驱动的方式连接数据库 稍后还会介绍数据库连接池的使用 针对不同的数据库 JDBC 提出了驱动程序的概念 由 JDBC 提供一个接口 各个数据库厂商在提供可以连接该接口的数据库驱动程序 a JDBC 连接数据库的一般步骤 以 MySQL 为例 1 导入厂商驱动的 jar 文件 2 使用 Class forName com mysql jdbc Driver 加载厂商驱动 com mysql jdbc Driver 为 MySQL 的厂商驱动的名字 3 使用 DriverManager 类的静态方法 getConnection url username password MySQL 的 url 是 jdbc mysql localhost 3306 dbname 其中 dbname 为数据库的 名字 3306 为 mysql 数据库的服务端口默认为 3306 如果是 3306 也可省略不写 4 使用获取的 Connection 对象创建 Statement PreparedStatement CallableStatement 对象来执行 sql 语句 b JDBC 的常用 API JDBC 的常用的 API 在 Java sql 下 1 Connection 对象 代表数据库连接的对象 通过该对象可以创建 Statement PreparedStatement 和 CallableStatement 对象对数 据库进行 CRUD create retrieve update delete 操作 增删改查 操作 Connection 对象用来开启事务 2 Statement 对象 主要用来执行不带参数的 sql 语句 不常用 3 PreparedStatement 对象 可以执行带参数和不带参数的 sql 语句 常用 4 CallableStatement 对象 主要用来执行存储过程 目前一般不使 用 5 需要注意的是执行增删改语句时使用的方法与执行查询操作时使用 的方法是不同的 执行增删改操作时使用 executeUpdate 方法 返回值是整型 代表对数据库操作时影响了几行 执行查询操作时 使用 executeQuery 方法 返回值是 ResultSet 类型 其中存放 着从数据库中查询出来的数据 6 JDBC 的事务 数据库中的事务管理是为了保证数据的完整性约束 在数据库中事务具有 ACID Atomicity 原子性 Consistency 一致性 Isolation 隔离性 Durability 持久 性 使用 Connection 对象开启事务 具体操作请参照实例程序 c 使用连接池访问数据库 注意 配置数据库连接池时 使用 javaEE 的 JNDI Java Naming Directory Interface java 命名与目录接口 技 术 以 Tomcat7 为例 首先将数据库驱动导入到 Tomcat 的 lib 目录下 1 在 Tomcat 的配置文件 context xml 中添加信息 2 在 web 项目下的 WEB INF 文件夹下的 web xml 中配置以下代码 DBConnection jdbc DBSource javax sql DataSource Container 3 在程序中获取数据库连接 Context jndiInit new InitialContext DataSource db DataSource jndiInit lookup java comp env jdbc DBSource Connection conn db getConnection 具体参照数据库连接池的配置文件 三 JSP 基础编程 a JSP 的注释 1 HTML 注释 客户端查看源码时能够看到 2 JSP 注释 不被解释和编译 不会被发送 到客户端 客户端不能看到 3 Java 代码注释 和 Javase 的使用一样 注释内容 或 注释内容 b JSP 表达式 程序段和声明 1 JSP 表达式 作用是将表达式 变量或返回值的运算结果输出到客户端的页面上 2 JSP 程序段 注意不能在 JSP 程序段中定义方法 3 JSP 声明 JSP 程序段的变量只能先声明后使用 而 JSP 声明定义的变量优先 级高 会优先执行 所以可以使用 JSP 声明在页面的任何地方定义 变量 而不用考虑在 JSP 程序段中使用时的先后顺序 c JSP 指令和动作 JSP 的指令有 page include 和 taglib 使用方法 1 page 指令用来指定字符集 编码类别 导入包 设定错误页面 2 include 指令用来在 JSP 页面中插入多个外部文件 3 taglib 指令用来指定新的标签库 d JSP 的表单传值和 url 传值 1 url 传值 格式 http websitename arg1 abc resquest getParameter 获取客户端传给服务器的参数 resquest getParameterValues 以字符串的形式返回指点参数的所有 值 response 对象的常用方法 response sendRedirect 重定向页面 本节结束时将分析该方法与 JSP 动作指令的区别 response addCookie 向客户端写入 Cookie 稍后会详细讲解 Cookie 的操作 session 对象常用方法 session setAttribute String name Object obj 通过该方法将一个 对象放入购物车 session getAttribute String name 通过该方法从 session 中取出一 个对象 session removeAttribute String name 移除 session 中的某一个对 象 session invalidate 移除 session 中的全部内容 session getId 获取 session 的 id 注意 session 的功能非常强大 例如可以利用 session 实现购物车 保 存登录信息等等 application 对象的常用方法 application setAttribute application getAttribute application removeAttribute 各方法的作用同 session 注意 1 session 和 application 的区别 session 是会话级别的 只有当前客户端能访问 application 是应用 程序级别的 所有访问该应用程序的客户端都能访问 注意 2 response sendRedirect 和都能将页面跳转到另一个页 面 但两者有本质的区别 response sendRedirect 重定向到一个新的页面时 会刷新地址栏 且 request 对象不会与原来的页面共享 该方式不仅可以跳转到本地服务 器资源 还可以跳转到其他服务器资源 跳转到新的页面时 不会刷新地址栏 与原来的页面共 享 request 对象 该方式只能在同一 web 应用程序中转发请求 属于服务 器内部跳转 五 认识 JavaBean a JavaBean 规范规定 a 属性名首字母必须小写 b 为属性定义 setter 和 getter 方法 写法为 set 属性名 属性名的 首字母要大写 和 get 属性名 属性名的首字母要大写 c boolean 类型的 getter 方法的写法为 is 属性名 属性名的首字母 要大写 b JSP 中使用 JavaBean 1 使用 JSP 代码段直接实例化 JavaBean 对象 该方式和在 java 类中实例化一个对象的方法相同 不在讲解 2 使用 其中 id 是该对象的实例名 class 为该 JavaBean 的完整类名 scope 为该 JavaBean 的作用范围 取值为 page 当前页有效 request 一次请求的作用域 范围内有效 session 当前会话范围内有效 和 application 所有用户可见 c 使用该标签设置 JavaBean 的属性值 property 的值为属性名 name 为 JavaBean 的实例名 param 的值为参 数名 该参数的值将为 JavaBean 的属性赋值 可以使用 value 取代 param 但是 value 的值是常量 d 使用 该标签可以获取 JavaBean 的某个属性的值 e DAO 数据访问对象 和 VO 值对象 DAO 封装了对数据的操作 所有对数据的操作都被封装在了该对象内 VO 是对从业务层中抽离出来的数据的封装 可以与数据库表对应也可 以不与表对应 关于 DAO 和 VO 涉及到了 Java 涉及模式中的 DAO 模式 六 Servlet 基础 a Servlet 和 JSP 的关系 1 Servlet 是一个运行在服务器端的 Java 程序 它可以动态地生成 web 页面 是属于客户和服务器响应的中间层 可以说 JSP 就是一 个 Servlet 2 Servlet 是 JSP 的底层实现 实际上 在运行 JSP 时 服务器底层 将 JSP 编译成一个 Servlet 3 Servlet 适合纯编程 和 Servlet 相比 编写 JSP 成本更低 b Servlet 的编写 1 继承 javax servlethttp HttpServlet 2 重写 HttpServlet 的 doGet 和 doPost 方法 doGet 和 doPost 方法使用来处理业务逻辑上 3 在 web xml 中配置 Servlet Servlet 名 Servlet 类路径 Servlet 名 映射路径 和中配置的要一致才 能制定此两项配置是同一个 Servlet 4 部署 Servlet c Servlet 的运行机制 初次运行 Servlet 时实例化 Servlet Servlet 采用多线程机制 首次执行时实例化 当有多个用户请求时创 建多个线程 每次请求时执行 doGet 或 doPost 方法 d Servlet 的生命周期 init 方法 Servlet 实例化过程中将会调用此方法 doGet doPost service 方法 当用户请求 Servlet 时会调用 service 方法 service 方法会根据请求类型去调用 doGet 或 doPost 方 法 destroy 方法 Servlet 实例消亡时自动调用此方法 e Servlet 与 JSP 内置对象 1 JSP 的 request 对象 HttpServletRequest 2 JSP 的 response 对象 HttpServletResponse 3 JSP 的 out 对象 Servlet 的 PrintWriter response getWriter 4 JSP 的 session 对象 Servlet 的 HttpSession resquest getSession 5 JSP 的 application 对象 Servlet 的 ServletContext this getServletContext f Servlet 参数读取和 web xml 的参数配置 1 web xml 文件参数配置 a 全局参数配置 所有的 Servlet 都能访问 全局参数配置在 web xml 的最上面 格式为 参数名 参数值 b 局部参数配置 只有相应的 Servlet 才能访问 配置格式为 Servlet 名称 Servlet 类路径 参数名 参数值 2 Servlet 获取参数 a 获取全局参数 ServletContext application this getServletContext Application getInitParameter 参数名 b 获取局部参数 this getInitParameter 参数名 七 Servlet 高级 a Servlet 页面跳转 1 Servlet 重定向 使用 response sendRedirect url 页面重定向到一个新的页面 同 JSP 中的 response sendRedirect 2 Servlet 服务器跳转 ServletContext application this getServletContext RequestDispatcher rd application getRequestDispatcher url rd forword request response 该方式同 JSP 中的 b ServletContext 高级功能 application 对象 获取当前项目资源的绝对路径信息 使用 getRealPath 八 Filter 和 Listener a Filter 过滤器 过滤器可以对用户请求进行过滤和拦截 查看和操 作客户端和服务器交换的数据 编写过滤器 实现 javax servlet Filter 实现三个方法 init destroy 和 doFilter ServletRequest request ServletResponse response FilterChain chain 配置 web xml 文件 参数名 参数值 Filter 的参数一般通过 FilterConfig getInitParameter 获 取 b Listener 监听器 1 监听器简介及作用 2 事件类与监听器接口 3 在 Eclipse 中自定义监听器类 4 综合案例 监听器简介及作用 监听器是 Servlet2 4 新增的一个技术 要使用 Listener 必须确 保 Web 服务器支持该技术 例如 Tomcat 5 5 以上支持 Listener 故名思议 监听器主要是监听 Web 会话中的一些事件 你还如上下文 事件 请求属性事件 会话绑定事件等 通过 Listener 来监听这些 事件 Servlet 中提供了 8 个 Listener 以监听不同的相应事件 定 义了 6 个事件 事件类与监听器接口 六个事件 ServletContextEvent ServletContextAttributeEvent ServletRequestEvent ServletRequestAttributeEvent HttpSessionEvent HttpSessionBindingEvent 八个监听器 ServletContextListener contextDestroyed contextInitialized ServletContextAttributeListener ServletRequestListener ServletRequestAttributeListener HttpSessionListener sessionCreated sessionDestroyed HttpSessionActivationListener HttpSessionAttributeListener HttpSessionBindingListener 使用 Eclipse 创建一个 Listener 类 定义监听器类之后 实现对应的方法 然后在 web xml 文件中配 置该监听器类 实现在线人数计数 FirstListener app listener FirstListener 定义一个在线人数统计的监听器 原理 当用户打开一个页面时 将触发 HttpSessionEvent 事件的会话 创建方法 即调用 HttpSessionListener 的 sessionCreated 方法 当关闭一个页面时 将触发 HttpSessionEvent 事件的会话销毁方法 即调用 HttpSessionListener 的 sessionDestroyed 方法 c 异常处理 通过创建一个 JSP 页面 并设置该页面的 isErrorPage 属 性为 true 在 web xml 中注册该页面 异常类型 错误页面位置 当该 web 应用发生某种异常时 会自动跳转到该页面 九 EL 和 JSTL a EL Expression Language 表达式语言 变量 表达式 直接将大括号内的值输出到页面上 request Scope 变量名 从 request 范围中取出变量的值 sessionScope 变量名 从 session 范围中取得变量的值 applicationScope 变量名 从 application 范围中取得变量的值 b JSTL JSP Standard Tags Library JSP 标准标签库 使用 JSTL 时必须导入相应 jar 包并且在页面中使用 taglib 指令引入 标签库 JSTL 包含 core fmt I18N sql xml 和 functions 等标签库 使用哪一个就要引入哪一个 格式为 掌握常用标签的使用方法 详见课本 十 J2EE 中文乱码问题 a Tomcat 服务器的默认字符编码为 ISO 8859 1 该编码方式不支持中文 JSP 页面的字符编码可以指定为 gbk 或 UTF 8 等支持中文的编码格式 当数据提交到服务器是因为服务器端的编码不支持中文 所以造成中 文乱码 b 数据库乱码问题 数据库的字符编码方式不支持中文 可以设置为支 持中文的 gbk 或 UTF 8 从 web 服务器提交的数据是乱码也会造成数 据库乱码 解决乱码问题的方法大体上有三种 1 通过在 servlet 中通过 request 和 response 的 setCharacterEncoding 为请求和响应指定字符编码格式 2 编写一个专门处理中文乱码的过滤器 3 编写一个字符编码转换的方法 对获取的参数进行转换 String charStr request getParameter chartest byte bt charStr getBytes ISO 8859 1 charStr new String bt UTF 8 十一 Ajax 技术 Ajax Asynchronous JavaScript and XML 异步 JavaScript 和 XML 技术 技术是一种异步的与服务器通信的技术 可以为客户提供更好的用户体验 减轻服务器负担 a Ajax 的核心代码 此为 W3C 提供的 Ajax 的基础框架 var xmlhttp function loadXMLDoc url cfunc if window XMLHttpRequest code for IE7 Firefox Chrome Opera Safari xmlhttp new XMLHttpRequest else code for IE6 IE5 xmlhttp ne

温馨提示

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

评论

0/150

提交评论