day10_web_j17.rar

  • 001h
    了解作者
  • Java
    开发工具
  • 3MB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 1
    下载次数
  • 2019-01-23 15:42
    上传日期
新闻发布系统 ,jspWeb相关的详细知识,增删改除。
day10_web_j17.rar
内容介绍
1 WEB项目结构 项目名 -src(java源码) -build(字节码) -WebContent(页面相关) --WEB-INF --lib(存储Jar) web.xml(web项目的核心配置文件) 2 在WebContent下创建JSP页面 JSP-Java Server Page(java 服务器端页面),在html静态页中加入Java代码,使得页面具有处理业务数据的能力,也称之为动态网页技术。 jsp页面需要在服务器端编译解析运行 3 服务器-tomcat(免费开源的web服务器) 1 解压 apache-tomcat-8.0.30-windows-x64.zip 2 运行:bin/startup.bat 3 访问服务器:http://IP:端口号 本机: http://localhost:8080 4 JSP页面的构成: 4.1 html css js 4.2 jsp指令:<%@ 指令名%> 三种指令: page(必须) include(包含) taglib(标签库) 4.3 java代码块: <% java代码 %> 一般写在页面的头部 4.4 JSP隐式对象(不需要实例化,直接在页面使用)-9个 out对象-输出信息到页面 request对象-请求(访问一个页面) response对象-响应(返回相应的页面给客户端) session对象-会话 ... 4.5 表达式: <%=表达式 %> -输出表达式内容 4.6 声明: <%! 声明方法或全局变量 %> 4.7 JSP标签(基本不用) 5 转发和重定向 转发会共享同一个request对象 request.getRequestDispatcher("index.jsp").forward(request, response); 地址保持不变 重定向重新请求了一次,request对象清空 response.sendRedirect("index.jsp"); 地址改为重定向后的地址 如需要传递参数则通地址拼接方式 index.jsp?参数名=参数值[&参数名=参数值] 6 JSP四大对象范围:把数据存储在一个对象中,数据的保留的周期叫有效范围 从小到大范围:page -> request ->session ->application page:本页有效 request:请求页有效 session:一次会话(连接)有效-访问一次就是一次会话,不同的访问有不同的session对象 什么情况下session失效(自动清空) 1 当浏览器关闭 2 超过30分钟不进行任何操作 3 手动清空 一般session存储的是个人数据 application:应用范围有效(只要服务器不关闭,一直有效),整个应用只有一个application对象 一般存储公共数据 存储数据方法:xx.setAttribute(变量名, 变量值); 获取数据方法:xx.getAttribute(变量名); 7 解决路径问题 路径:相对路径和绝对路径 使用绝对路径 在JSP中获得当前地址 <% //获得当前项目的绝对地址:http://localhost:8080/day04_web_j17 String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <base href="<%=basePath%>"/> 8 Servlet技术-Servlet本身就是一个特殊的类,它可以处理页面相关的处理。 使用: 1 创建一个类,extends HttpServlet 2 重写doGet-处理get方式提交的请求,doPost-处理post方式提交的请求 3 在web.xml中配置Servlet 如: <!-- 定义Servlet --> <servlet> <servlet-name>loginServlet</servlet-name> <servlet-class>com.bdqn.news.servlet.LoginServlet</servlet-class> </servlet> <!-- 配置Servlet访问路径 --> <servlet-mapping> <servlet-name>loginServlet</servlet-name> <!-- 访问路径,必须加/ --> <url-pattern>/login</url-pattern> </servlet-mapping> 或使用注解 @WebServlet("/login") 访问:http://localhost/day04_web_j17/login 注:修改了web.xml文件,需要重启服务器 9 Servlet生命周期 四个阶段: 1 创建/实例化(new)-由容器(服务器)完成 2 初始化-调用init方法(第一次运行时会自动调用,以后不会再次调用) 3 服务-调用service方法(每次请求都会被调用) 4 销毁-调用destroy方法(关闭服务器时被调用) 初始化-一般情况下用于加载参数,完成参数的初始化工作 销毁-一般情况下用于释放内存,完成清理工作 10 PreparedStatement * 1 安全,防SQL注入 * 2 可读性好,无需拼接SQL * 3 预编译,速度快 11 分页 显示分页的数据 [x/y] 首页 上一页 下一页 末页 共z条 每页显示p条 x(int):当前页 y(int):总页数 z(int):总记录数 p(int):每页显示的记录数 思想: 1 sql语句: limit 开始行,显示条数 2 计算 x:默认为1 首页 x=1 上一页 x-1 下一页 x+1 末页 x=y y: y=Math.ceil(z.0/p) 例如:z=8 p=5 2=Math.ceil(8.0/5) z:sql语句-count() p:固定(5 10 15 20...) 3 把分页相关的数据封装成一个JavaBean-PageUtils 12 三层架构 项目分层(视图层 业务层 控制层) 不同层做不同的处理,结构清晰 视图层-显示/展现数据(jsp html...) 业务层-实现业务逻辑(service dao...) 控制层-视图层和业务层的中间层(桥梁)(servlet) jsp->servlet->service->dao =>service=>servlet=>jsp 13 文件上传-第三方组件commons-fileupload-1.2.2 1 jsp 表单 method="post" enctype="multipart/form-data" 2 编写Servlet 2.1 创建FileItemFactory(缓存大小,缓存的路径); 2.2 创建ServletFileUpload(FileItemFactory fif) 2.3 判断表单是否有文件:isMultipartContent(request) 2.4 解析sfu.parseRequest(request),获得List<FileItem> 2.5 循环List<FileItem>,判断FileItem是否为普通表单域 2.6 普通表单域:fi.getString("utf-8")-获得内容 文件表单域:fi.write(File file)-写入(复制) 2.7 异常处理(1 文件过大 2 文件类型受限 3 写入异常) 14 乱码解决方法 1 jsp提交乱码(只针对post提交方式) 解决:request.setCharacterEncoding("utf-8"); 2 返回jsp乱码 解决:response.setCharacterEncoding("utf-8"); 采用tomcat server.xml统一配置编码格式(只针对get提交方式) <Connector connectionTimeout="20000" URLEncoding="utf-8" port="80" protocol="HTTP/1.1" redirectPort="8443"/> 也可以采用硬编码方式: String str=new String(需要编码字符串.getBytes("ISO8859-1"),"utf-8"); 15 EL-表达式语言(主要用来获得值) 语法:${表达式} 使用: 1 获取变量(依次从小到大范围-page request session application查找变量,都没有则返回null):${变量名 } 2 获取变量(指定范围-pageScope requestScope sessionScope applicationScope):${requestScope.name } 3 获取对象属性:${对象名.name}或${对象名['属性名']} 4 获取对象集合(数组 List Set Map): list 数组-${集合[下标].属性名 } map-${集合[key].属性名 } 5 运算:${1+1>3 } 6 获得参数:${param.参数名} 7 获得JSP隐式对象:项目名=${pageContext.request.contextPath} 8 empty判断是否为空(返回boolean):${empty 变量 } 9 三目运算符:${empty name?'无名氏':name } 16 JSTL-JSP Standard Tag Library ,JSP标准标签库 简化JSP Java代码块<% %> 五大类标签组成:Core标签库、XML标签库、国际化与格式化标签库和SQL标签库 常用:核心标签库和格式化标签库 使用步骤 1 下载 jakarta-taglibs-standard-current.zip 2 导入jar到项目:\jakarta-taglibs-standard-1.1.2\lib\*.jar(2个) 3 编写JSP 引入JSTL标签库(参考WEB-INF\lib\standard.jar\META-INF\*.tld文件): <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> 4 在JSP使用标签 17 过滤器(Filter)-对地址进行拦截处理,与Servlet用法相似 1 创建一个类implements Filter 2 编写doFilter方法处理 3 配置Filter(web.xml或使用注解) 18 监听器-Listener 监听器是Web应用程序事件模型的一部分,Web应用中
评论
    相关推荐
    • N0PE-Bot.rar
      Bot For make a botnet, Include Compiled version and source code from server and builder.
    • winring0.zip
      API RING 0级调用,是一个非常好的例子,我真的是佩服了!
    • 0-1package.rar
      0-1背包问题的分支限界算法实现,有详细的函数功能说明
    • gh0st3.6_Src.rar
      gh0st源码 在common中包含所需要的sdk文件, vc6直接可以编辑通过, 已经去除硬盘锁.
    • MVT_v1_0.rar
      水下无人航行器(AUV)simulink仿真工具箱,安装后即可用里面给出的各种AUV模型进行仿真,是挪威科技大学的学生做的,很不错。
    • 0-9(Speech-Recogenition).zip
      用matlab仿真0到9十个数字的语音识别 1、对语音的WAV文件和LAB文件进行处理,产生十个文件,每个文件对应于一个数字,存贮着该数字的波形文件。(shujuzhengli.m) 2、分别利用上面十个文件训练出十个HMM模板,...
    • WinRing0Test.rar
      获取CPU、硬盘温度。 CPU的温度是通过 rsmgr。 硬盘温度是通过WMI
    • GPIB0.rar
      GPIB仪器控制技术PPT文件,供从事测试的人员学习
    • gh0st.rar
      翔子远控的ghost,已做过面纱处理,可以过所有已知杀软
    • gles2_0.rar
      S3C6410 SMDK6410 WinCE6.0 OpenGL ES 2.0 库