栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

期末web组件开发复习稳过不挂指南(更新中)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

期末web组件开发复习稳过不挂指南(更新中)

JSP语法 jsp页面的基本结构

变量和方法的声明
<%! %>

可以给jsp翻译出的java类定义属性、方法、静态代码块、内部类

在整个jsp页面有效

页面的方法需定义在 <%! %> 中,因为jsp页面所有的东西都包含在一个方法中,而方法中是不能有方法的

java程序片
<% %>

局部变量,但在后续的java程序片和表达式内都有效

synchronized关键字,方法 -> 同步方法

java表达式
<%= %>

中间不能有空格

jsp中的注释


<%-- jsp --%>
<%-- 客户端中不能看到 --%>
jsp指令标记

jsp指令标记 在 jsp编译阶段被处理

page指令标记

定义整个jsp页面的一些属性和对应的值

<%@page 属性1="" 属性2="" %>

(也可以分成多个写)

  1. contentType
    jsp页面相应的MIME类型
    “text/html” “application/msword”
    也可以为contentType的附加属性 charset 指定一个值
    <%@page contentType="text/html; charset=GB2312" %>

  2. language
    jsp页面使用的脚本语言,目前只有java

  3. import
    为jsp页面引入java运行环境提供的包中的类
    <%@page import="java.io.*, java.util.Date" %>

  4. buffer
    内置输出流对象out 将服务器的基础信息或运行结果发送到客户端显示,buffer属性用来指定out设置的缓冲区的大小或者不使用缓冲区
    <%@page buffer="24kb" %>
    默认为8kb,buffer可取值"none"设置out不使用缓冲区

  5. autoFlush
    指定out的缓冲区被填满时,缓冲区是否自动刷新

  6. session
    是否需使用内置的session对象,true(默认)/ false

  7. isThreadSafe
    用来设置JSP页面是否可多线程访问
    false时,该JSP页面 同一时刻 只能响应一个用户的请求,其他用户须排队等待

  8. Info
    用来准备一个常用且可能需要经常修改的字符,可通过getServletInfo()方法获取

include指令标记

在JSP页面内某处整体嵌入一个文件

<%@include file="文件的url"%>

如果该文件和当前JSP页面在同一Web服务目录中,那么“文件的URL”就是文件的名字;
如果该文件在JSP页面所在目录的子目录中,那么“文件的URL”就是“fileDir/文件的名字”

静态插入,就是当前JSP页面和插入的文件合并成一个新的JSP页面,然后JSP引擎再将这个新的JSP页面转译成Java文件

jsp动作标记 include 动作标记

include动作标记:告诉JSP页面动态包含一个文件,即JSP页面运行时才将文件加入


或


   param子标记

include动作标记与指令标记的比较 :

<%@ include file= "文件的URL " %>

Include指令标记是静态插入文件,在编译阶段包含,被处理的文件在逻辑和语法上依赖于当前的JSP页面,优点是执行速度快


Include动作标记在JSP页面运行时才处理文件,被处理的文件在逻辑和语法上独立于当前JSP页面,优点是可以使用param子标记灵活地处理.

param动作标记

以“名字—值”对的形式为其它标记提供附加信息

param标记不能独立使用,需作为jsp:include、jsp:forward、jsp:plugin标记的子标记来使用


    

当该标记与jsp:include动作标记一起使用时,可以将param标记中的值传递到include动作标记要加载的文件中去,被加载的JSP文件可以使用request对象获取

forward 动作标记

从该指令处停止当前页面的继续执行,而转向执行page属性指定的JSP页面


或


   param子标记
 
Plugin动作标记

可用于加载applet


     
        Plugin tag OBJECT or EMBED not supported by browser. 
     

useBean动作标记

用来创建并使用一个Javabean

Sun公司的倡导是:用HTML完成JSP页面的静态部分,用Javabean完成动态部分

getProperty标记 setProperty标记 JSP内置对象

有些成员变量不用声明就可以在JSP页面的脚本(Java程序片和Java表达式)中使用,这就是所谓的内置对象

内置对象有:resquest、response、session、application、out

request对象

内置对象request封装了用户提交的信息,该对象调用相应的方法可以获取封装的信息

内置对象request是实现了ServletRequest接口类的一个实例

客户通常采用表单提交信息

表单的格式:

提交手段

Get与Post方法的区别:提交的信息是否显示在地址栏中

Request对象获取客户提交信息最常用的方法是getParameter(String s)

如果form表单中的action请求的页面是当前页面,可以用双引号"“或单引号代替当前页面,即写成action=”"或action =‘’,注意双引号或单引号中不能含有空格。也可省略action参数,即不显式写出action参数

处理汉字信息

Tomcat中对于post方法提交的表单采用的默认编码为ISO-8859-1

用户提交的信息中如果含有汉字字符或其他非ASCII字符的信息,就必须进行特殊的处理方式,防止出乱码现象

方法一:request.setCharacterEncoding("utf-8");

方法二:

String str =request.getParameter("value");
byte b[] = str. getBytes("ISO-8859-1");
str = new String(b,”UTF-8”);
request对象的常用方法举例


input标记
  1. 文本框text

  2. 单选框radio
    男生

  3. 复选框checkbox
    足球

  4. 口令框password

  5. 隐藏hidden

  6. 提交和重置

select和option标记
  1. 下拉式列表:

  1. 滚动列表:
    与下拉式列表的主要区别为:select中的size属性值取大于1的值,表示在选择栏中直接显示选项的数目
textarea标记

其中行数和列数表示不用滚动条就可看到的部分

table标记
…
         
内容 内容
embed标记

用来播放音视频文件


	描述文字

处理超链接

购买

获取参数:String idStr = request.getParameter("id");

response对象

response对象对客户的请求做出响应,向客户端发送数据

Page指令的contentType属性值可以确定JSP页面响应的MIME类型和JSP页面字符的编码,而response对象调用setContentType(String s)方法可以动态改变contentType的属性值

动态响应contentType

setContentType(s)

s的取值可以为:text/HTML、text/plain、image/gif、image/x-xbitmap、image/jpeg、image/pjpeg、application/x-shockwave-flash

response的HTTP文件头

response对象可以使用如下方法
addHeader(String head,String value);
setHeader(String head,String value)
动态添加新的响应头和头的值

response重定向

sendRedirect()方法:向服务器发送一个重定向的请求

使用该方法同使用jsp:forward的不同:
1. 使用jsp:forward,在转到新的页面后,原页面的request参数是可用的
2. 使用jsp:forward,在转到新的页面后,新页面的地址不会在地址栏中显示出来。而使用sendRedirect方法会出现重定向后页面的URL

当使用sendRedirect(URL url)方法将用户从当前页面重定向另一个页面时,Tomcat服务器还是要把当前JSP页面执行完毕后才实施重定向(跳转)操作,但Tomcat服务器不再给用户看当前页面的执行效果

如果在执行sendRedirect(URL url)方法后,紧接着执行了return返回语句,那么Tomcat服务器会立刻结束当前JSP页面的执行

session对象

http协议是无状态的协议,无法识别多个连接是否属于同一个客户

session用来分别保存每一个用户的信息,使用session,可以轻易的识别每一个用户,然后针对每个用户的要求,给予正确的响应

内置对象session由Tomcat服务器负责创建,session是实现了包javax.servlet.http 中HttpSession接口的一个实例

session对象的ID

session对象被分配了一个String类型的ID,Tomcat服务器将ID发送到客户端,存放在客户的Cookie中

同一用户在同一Web服务目录中的各个页面的session是相同的,但是在不同的Web服务目录中的session互不相同
不同用户的session对象互不相同,具有不同的ID

session对象与URL重写

如果客户端不支持Cookie,那么可以采用URL重写实现session对象的唯一性

所谓URL重写,就是当客户从一个页面连接到同一Web服务目录的另一个页面时,通过向这个新的URL添加参数,传递session对象的ID
欢迎去third.jsp页面!
改为
"> 欢迎去third.jsp页面!

encodeURL方法的实现机制为:
先判断当前的 Web 组件是否启用 Session,如果没有启用 Session,直接返回参数 url。
再判断客户端浏览器是否支持 Cookie,如果支持 Cookie,直接返回参数 url;如果不支持 Cookie,就在参数 url 中加入 Session ID 信息,然后返回修改后的 url

encodeRedirectURL: sendRedirect方法使用的指定URL进行编码

String originalURL = someURL;
String encodeUrl = response.encodeRedirectURL(originalURL);
response.sendRedirect(encodeUrl);
session对象存储数据
  1. void setAttribute(String key, Object obj)
    session对象可以调用该方法将参数Object指定的对象obj添加到session对象中,并为添加的对象指定了一个索引关键字,如果添加的两个对象的关键字相同,则先前添加的对象被清除
  2. Object getAttibute(String key)
    获取session对象含有的关键字是key的对象。由于任何对象都可以添加到session对象中,因此用该方法取回对象时,应强制转化为原来的类型
  3. public Enumeration getAttributeNames()
    session对象调用该方法产生一个枚举对象,该枚举对象使用nextElemets()遍历session中的各个对象所对应的关键字
  4. public void removeAttribute(String name)
    session对象调用该方法移掉关键字key对应的对象
session对象的生存期限

一个用户在某个Web服务目录的session对象的生存期限依赖于客户是否关闭浏览器、session对象是否调用invalidate()方法使得session无效或session对象达到了设置的最长的“发呆”时间

web.xml

       30 
     

session对象中与生存期限有关的方法 :

application对象

每个Web服务目录下的application对象被访问该服务目录的所有的用户共享,不同Web服务目录下的application对象不同

application对象的常用方法

out对象

内置对象out是一个输出流,用来向客户端输出数据,是JspWriterout类的一个实例

out对象可调用如下的方法用于各种数据的输出 :

JSP与Javabean JSP与Javabean

Javabean是一个可重复使用的软件组件,实际上是一种Java类,通过封装属性和方法成为具有某种功能或者处理某个业务的对象,简称bean

引入Javabean的原因

可有效的分离静态工作部分和动态工作部分

Javabean的编写

本质上是Java类,因此按照编写类的方法写,但是需要注意以下四点:
如果类的成员变量为xxx,那么获取和更改属性的方法必须为getXxx和setXxx
对于boolean类型的成员变量,还可以使用isXxx获得这个属性
类中声明的方法的访问属性都必须是public的
类中声明的构造方法必须是public、无参数的

保存bean的字节码

Tomcat服务器使用字节码文件创建bean,字节码文件必须保存在特定的目录中

在Web服务目录的子目录WEB-INFclasses中

Classes中还必须有与包对应的子目录结构,比如类的包名为tom.jiafei,那么在classes下应该建立子目录结构tomjiafei

创建与使用bean
  

或


bean的创建机制

当某个含有useBean动作标记的JSP页面被加载执行时,JSP引擎首先查找JSP引擎内置pageContext对象中是否含有相同名字和作用域的对象:
(1)如果存在,则将此对象的副本分配给JSP页面
(2)否则,就根据指定的字节码创建一个对象,添加到pageContext对象中,同时分配给客户

bean的作用域

获取和修改bean的属性

获取和修改属性除调用函数外,还可以使用以下动作标记:

  1. getProperty动作标记获取属性
  2. setProperty动作标记设置属性
getProperty动作标记

使用该标记可以获得bean的属性值,并用串的形式发送给浏览器

该指令相当于表达式:<%=bean.getXxx()%>

setProperty动作标记

使用该标记可以设置bean的属性值:
(1)设置bean的属性为一个表达式的值的格式如下:

(2)设置bean的属性为一个字符串的格式如下:

字符串会自动转化为bean的属性的类型

(3)通过HTTP表单的参数的值来设置bean属性的值:

(4)通过表单的某个参数的值来设置bean的相应属性的值,其格式如下:

表单中可能输入汉字,要避免出现乱码

request.setCharacterEncoding("utf-8");
public void setXxx(String s){
    xxx=s;
    byte b[]=xxx.getBytes(“ISO-8859-1”);
    xxx=new String(b,”utf-8”);
}
bean的辅助类

在写bean的时候,可能需要一些自己编写的类,此时只要将这些类和创建bean的类写在一个java源文件中即可,但必须将源文件编译后产生的全部字节码文件复制到相应的目录中

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/962127.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号